POST /api/spaces/:id/specialty-assignments — Назначить специальность
Сгенерировано из матриц + кода. Правки вносить в источники (
docs/matrices/,server/routes/), не здесь.
| Поле | Значение |
|---|---|
| HTTP | POST /api/spaces/:id/specialty-assignments |
| Auth | requireSpacemanOrOrgAdmin — requireSpacemanOrOrgAdmin |
| Scope токена | read_write |
| PG-функции | api.assign_specialty |
| Таблицы | — |
| SRM | — (вне SRM, документировано по коду) |
| RP (права) | — |
| Файл роута | server/routes/spaces.js |
| Статус | по коду (вне SRM) |
Аргументы запроса (best-effort из хендлера; путь-параметры опущены):
| Аргумент | Где | Обяз. | Заметка |
|---|---|---|---|
specialty_id | body | подтвердить | |
user_id | body | подтвердить |
Коды ответов/ошибок (из хендлера): 201 (+ 200) — уточнить причины вручную
Для человека
Как открыть: вкладка «Спейсы» → карточка спейса → «Настройки спейса» → выберите участника и закрепите за ним специальность из списка специализаций спейса.
Назначает участнику специальность спейса — то есть создаёт связку «этот человек — ML-инженер в этом спейсе». Так формируется картина «кто за что отвечает». Назначать можно только из специальностей, заведённых в спейсе (см. список специальностей), и только участникам спейса. Одному человеку можно дать несколько специальностей.
Это привязка роли-специализации, не смена системной роли участника (спейсмен/наблюдатель) — для последнего есть Изменить участника.
Кто может. Менеджер спейса (спейсмен) или администратор организации (requireSpacemanOrOrgAdmin). Остальные — 403.
Для агента
Запись — токен со scope read_write. Путь POST /api/spaces/:id/specialty-assignments на write-allowlist’е (server/auth/agentGate.js, операция SPECIALTY_ASSIGN). Под ролью владельца токена: спейсмен спейса или org_admin, иначе 403.
Путь:
| Параметр | Где | Назначение |
|---|---|---|
id | path | UUID спейса |
Тело запроса (JSON):
| Поле | Тип | Обяз. | Назначение |
|---|---|---|---|
specialty_id | string | да | Ключ специальности спейса |
user_id | uuid | да | Участник спейса, которому назначается специальность |
Пример запроса:
curl -X POST https://specbuilder.vnimanie.ai/api/spaces/a1b2c3d4-5678-49ab-8cde-f0123456789a/specialty-assignments \ -H "Authorization: Bearer tak_..." \ -H "Content-Type: application/json" \ -d '{"specialty_id":"ml-engineer","user_id":"7f3a1b22-9c44-4d55-8e66-aa11bb22cc33"}'Ответ 201:
{ "ok": true }Только JSON. Проверить результат — список назначений. Снять назначение — Снять назначение.