Уровни доступа
Для каждой коллекции и каждого её метода API можно настроить уровень доступа:
| Уровень | Описание |
|---|---|
| Public | Запросы без авторизации. Подходит для публичных данных |
| User | Пользователь видит и изменяет только свои записи |
| Workspace | Пользователь работает с записями в рамках общего пространства совместно с другими пользователями этого пространства |
Важно!
Неправильная настройка доступа может привести к утечке данных или несанкционированному изменению записей. Никогда не используйте Public на методах Create, Update, Delete для данных, которые должны редактироваться только определенными пользователями.
Public / Публичный
Публичный уровень доступа позволяет выполнять запросы без авторизации. Подходит для публичных данных, которые доступны всем.
Когда использовать
- Открытый контент, статьи, FAQ
- Публичные каталоги товаров
- Справочники и сведения о компании
- Любые данные, которые должны быть видны всем
Пример
Коллекция products с уровнем доступа Public для метода View All:
GET https://api.kodzero.pro/v1/:project/productsЗапрос выполняется без токена авторизации.
⚠️ Важно для методов изменения
Никогда не используйте Public для методов Create, Update, Delete, если данные должны редактироваться только определенными пользователями. Это приведет к тому, что любой пользователь сможет изменять или удалять данные.
// ❌ Опасно - кто угодно может создавать товары
POST https://api.kodzero.pro/v1/:project/products
Content-Type: application/json
{ "title": "Товар", "price": 100 }User / Пользователь
User уровень доступа ограничивает доступ пользователя только к своим собственным записям. При использовании этого уровня система автоматически фильтрует данные и пользователь видит только те записи, которые он создал или которые ему принадлежат.
Как это работает
- При создании записи (Create): система автоматически добавляет к записи id пользователя (техническое свойство
_user). - При просмотре записи (View) или записей View All: система автоматически фильтрует записи по текущему пользователю (техническое свойство
_user). - При изменении записи (Update) и удалении записи (Delete): система автоматически применяет фильтр по id пользователя перед операцией (техническое свойство
_user).
Когда использовать
- Личные заметки пользователя
- История заказов конкретного пользователя
- Избранное и закладки
- Профильные данные
- Прочие приватные данные пользователя
Пример
Коллекция notes с уровнем доступа User:
// Требуется авторизация
GET https://api.kodzero.pro/v1/:project/notes
Authorization: Bearer ACCESS_TOKENОтвет будет содержать только заметки текущего пользователя:
{
"ok": true,
"result": {
"page": 1,
"perPage": 25,
"total": 1,
"totalPages": 1,
"found": [
{
"_id": "69c156e129d4e3fab000a241",
"_user": "69d4060864e21c4d68e1c34b",
"title": "Задача пользователя",
"_createdAt": "2025-01-15T10:30:00Z"
}
]
}
}Если другой пользователь (с другим токеном) выполнит точно такой же запрос, он получит свои собственные записи.
Безопасность
- Пользователь не может увидеть чужие записи, т.к. фильтр применяется автоматически
- Если пользователь A запросит запись пользователя B по ID записи, будет возвращена ошибка 404, т.к. у пользователя А нет записи с таким ID.
Workspace / Воркспейс
Workspace уровень доступа предоставляет доступ к записям в рамках общего рабочего пространства. Это позволяет членам одного воркспейса совместно работать с данными.
Как это работает
- При создании записи (Create): система автоматически добавляет к записи id пользователя (техническое свойство
_user) и id воркспейса (свойство_workspace). - При просмотре записи (View) или записей View All: система автоматически фильтрует записи по id воркспейса текущего пользователя (свойство
_workspace). - При изменении записи (Update) и удалении записи (Delete): система автоматически применяет фильтр по id воркспейса текущего пользователя перед операцией (свойство
_workspace).
Когда использовать
- Совместные проекты
- Командные доски и списки задач
- Документы, работающие над которыми команда
- Общие финансовые отчеты команды
- Любые данные, которые должны быть видны всем членам команды
Пример
Коллекция tasks с уровнем доступа Workspace:
// Требуется авторизация
GET https://api.kodzero.pro/v1/:project/tasks
Authorization: Bearer ACCESS_TOKENОтвет будет содержать только задачи воркспейса текущего пользователя:
{
"ok": true,
"result": {
"page": 1,
"perPage": 10,
"total": 42,
"totalPages": 5,
"found": [
{
"_id": "69c156e129d4e3fab000a241",
"_workspace": "69c828d0113d90b497631f3f",
"_user": "69d4060864e21c4d68e1c34b",
"title": "Задача команды",
"_createdAt": "2025-01-15T10:30:00Z"
}
]
}
}Если другой пользователь из того же воркспейса выполнит запрос, он получит те же записи. Если же пользователь из другого воркспейса выполнит запрос, он получит задачи из своего воркспейса.
Один пользователь = один воркспейс
Пользователь не может быть членом нескольких воркспейсов.
Комбинирование уровней доступа
При необходимости, можно настроить более сложные сценарии, когда, например:

