Observer использует двухуровневую модель прав доступа. Каждый пользователь имеет роль платформы, которая управляет доступом к административным функциям. Внутри каждого проекта пользователи также имеют роль проекта, которая контролирует, что они могут делать с данными дел. Дополнительно три флага чувствительности ограничивают, какие поля появляются в ответах.

Роли платформы

Роли платформы задаются при создании учётной записи и могут быть изменены только администратором.

РольЧто можно делать
adminПолный доступ ко всему — пользователи, проекты, справочные данные, все дела
staffУправление справочными данными и проектами; не может управлять другими пользователями
consultantРабота в назначенных проектах; нет доступа к панели администратора
guestДоступ только для чтения в назначенных проектах

Администраторы платформы автоматически выступают владельцами проекта во всех проектах — они полностью обходят проверки прав на уровне проекта.

Роли проекта

Роли проекта применяются в рамках конкретного проекта. Пользователь должен быть явно назначен в проект для доступа к нему.

РольРангЧто можно делать
owner4Всё, включая удаление проекта
manager3Все операции с данными дел + управление членами команды
consultant2Создание, чтение, обновление дел и экспорт данных
viewer1Доступ только для чтения к данным дел

Требования к действиям

ДействиеМинимальная роль проекта
Чтение данных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
}