Перейти к содержимому

POST /api/spaces/:spaceId/supervisors — Добавить наблюдателя

Сгенерировано из матриц + кода. Правки вносить в источники (docs/matrices/, server/routes/), не здесь.

ПолеЗначение
HTTPPOST /api/spaces/:spaceId/supervisors
AuthrequireSpacemanOrOrgAdmin — requireSpacemanOrOrgAdmin
Scope токенаread_write
PG-функцииapi.grant_supervisor_scope
Таблицыsupervisor_scope
SRMSRM-056, SRM-304
RP (права)RP-056
Файл роутаserver/routes/spaces.js
Статусdone

Аргументы запроса (best-effort из хендлера; путь-параметры опущены):

АргументГдеОбяз.Заметка
user_idbodyподтвердить

Коды ответов/ошибок (из хендлера): 201 (+ 200) — уточнить причины вручную

Для человека

Как открыть: вкладка «Спейсы» → откройте спейс → «Настройки спейса» → раздел «Наблюдатели» → выберите участника организации и нажмите добавить.

Выдаёт человеку роль наблюдателя в этом спейсе: после этого он сможет смотреть проекты и документы спейса, но без права что-либо менять. Назначить можно только участника той же организации, к которой относится спейс, — постороннего аккаунта наблюдателем сделать нельзя. Запоминается, кто и когда выдал доступ.

Кто может. Менеджер спейса (спейсмен) своего спейса и администратор организации (RP-056, RP-159). Сотрудник и наблюдатель никого не назначают.

Для агента

Запись — нужен токен со scope read_write (см. Конвенции). Назначить наблюдателя сможет только токен спейсмена этого спейса или org_admin его организации; иначе requireSpacemanOrOrgAdmin вернёт 403. Путь в write-allowlist agent-gate как SUPERVISOR_GRANT (server/auth/agentGate.js).

Путь-параметр: :id — UUID спейса.

Тело запроса (JSON):

ПолеТипОбяз.Назначение
user_iduuidдаКого назначить наблюдателем (должен быть участником организации спейса)

Пример запроса:

Окно терминала
curl -X POST https://specbuilder.vnimanie.ai/api/spaces/f9e8d7c6-.../supervisors \
-H "Authorization: Bearer tak_..." \
-H "Content-Type: application/json" \
-d '{"user_id":"aaaa1111-..."}'

Ответ 201:

{ "ok": true }

Коды ошибок: 404 — спейса или пользователя не существует (SPACE_NOT_FOUND / USER_NOT_FOUND); 400 — назначаемый не состоит в организации спейса (бэкенд-проверка против выдачи наблюдения произвольному внешнему аккаунту). Ответ — JSON ({ ok: true }), без Markdown-зеркала и ETag. Проверить результат — список наблюдателей.

Связанные