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
}