Права доступа
Observer использует двухуровневую модель прав доступа. Каждый пользователь имеет роль платформы, которая управляет доступом к административным функциям. Внутри каждого проекта пользователи также имеют роль проекта, которая контролирует, что они могут делать с данными дел. Дополнительно три флага чувствительности ограничивают, какие поля появляются в ответах.
Роли платформы
Роли платформы задаются при создании учётной записи и могут быть изменены только администратором.
| Роль | Что можно делать |
|---|---|
admin | Полный доступ ко всему — пользователи, проекты, справочные данные, все дела |
staff | Управление справочными данными и проектами; не может управлять другими пользователями |
consultant | Работа в назначенных проектах; нет доступа к панели администратора |
guest | Доступ только для чтения в назначенных проектах |
Администраторы платформы автоматически выступают владельцами проекта во всех проектах — они полностью обходят проверки прав на уровне проекта.
Роли проекта
Роли проекта применяются в рамках конкретного проекта. Пользователь должен быть явно назначен в проект для доступа к нему.
| Роль | Ранг | Что можно делать |
|---|---|---|
owner | 4 | Всё, включая удаление проекта |
manager | 3 | Все операции с данными дел + управление членами команды |
consultant | 2 | Создание, чтение, обновление дел и экспорт данных |
viewer | 1 | Доступ только для чтения к данным дел |
Требования к действиям
| Действие | Минимальная роль проекта |
|---|---|
| Чтение данных | viewer |
| Создание записей | consultant |
| Обновление записей | consultant |
| Удаление записей | manager |
| Управление участниками | manager |
| Экспорт данных | consultant |
Флаги чувствительности
Каждое разрешение проекта имеет три независимых булевых флага, задаваемых менеджером или владельцем для каждого пользователя в каждом проекте.
| Флаг | Что контролирует |
|---|---|
can_view_contact | Номера телефонов и адреса электронной почты в записях о людях |
can_view_personal | Полное имя, дата рождения, национальный ID (external_id), данные согласия |
can_view_documents | Доступ к файлам документов и метаданным документов |
Когда флаг отключён, соответствующие поля исключаются из ответов API и CSV-экспорта — данные остаются в базе данных, но не передаются этому пользователю. Консультант с can_view_personal: false не может получить национальные идентификаторы или даты рождения через экспорт, даже если он может создавать записи.
Назначение прав
Только администраторы платформы и владельцы/менеджеры проектов могут назначать права проекта.
Добавить пользователя в проект
POST /admin/projects/:project_id/permissions{
"user_id": "01J...",
"role": "consultant",
"can_view_contact": true,
"can_view_personal": false,
"can_view_documents": false
}Обновить существующее право
PUT /admin/projects/:project_id/permissions/:permission_idУдалить пользователя из проекта
DELETE /admin/projects/:project_id/permissions/:permission_idТипичные настройки
Полевой работник (consultant, ограниченные личные данные)
{
"role": "consultant",
"can_view_contact": true,
"can_view_personal": false,
"can_view_documents": false
}Номера телефонов видны для координации; нет доступа к национальным ID или датам рождения.
Супервизор (manager, полный доступ)
{
"role": "manager",
"can_view_contact": true,
"can_view_personal": true,
"can_view_documents": true
}Внешний аудитор (viewer, без чувствительных данных)
{
"role": "viewer",
"can_view_contact": false,
"can_view_personal": false,
"can_view_documents": false
}