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

POST /api/spaces/:id/specialties/:specId — Переопределить специальность

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

ПолеЗначение
HTTPPOST /api/spaces/:id/specialties/:specId
Auth
Scope токенаread_write
PG-функции
Таблицы
SRM— (вне SRM, документировано по коду)
RP (права)
Файл роутаserver/routes/spaces.js
Статуспо коду (вне SRM)

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

аргументов не обнаружено (подтвердить вручную по server/routes/spaces.js)

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

Для человека

Как открыть: вкладка «Спейсы» → карточка спейса → «Настройки спейса»«Специализации». Дальше либо измените поле у существующей специальности (название, цвет, описание, видимость), либо нажмите «Добавить» и заведите новую — оба действия идут через этот метод.

Это рабочая лошадка оверлея специальностей. Один и тот же метод закрывает два сценария:

  • Переопределить унаследованную специальность коллекции — вы меняете её поле прямо в спейсе, не трогая саму коллекцию. В таблице у поля появляется индикатор «переопределено» и кнопка «Вернуть исходное значение». Снять переопределение и вернуться к значению из коллекции — Снять переопределение.
  • Завести кастомную специальность, которой в коллекции нет вовсе (строка с пометкой «кастомная»).

Передаются только меняемые поля; что не передали — остаётся как было. Изменения видны всем в спейсе, но саму коллекцию и другие спейсы не затрагивают — в этом весь смысл оверлея.

Кто может. Только менеджер этого спейса (спейсмен) или администратор организации (RP-053; на бэкенде — requireSpacemanOrOrgAdmin). Сотрудник, наблюдатель и гость кнопок правки не видят и получают 403.

Для агента

Запись — нужен токен со scope read_write (см. Конвенции). Путь POST /api/spaces/:id/specialties/:specId — на write-allowlist’е (server/auth/agentGate.js, операция SPACE_SPECIALTY_UPSERT). Эта же запись отвечает и за PUT — см. Изменить специальность; хендлер общий (upsertSpecialty). Вызов идёт под ролью владельца токена: пройдёт, только если владелец — спейсмен спейса или org_admin, иначе 403.

Путь:

ПараметрГдеНазначение
idpathUUID спейса
specIdpathКлюч специальности: существующий (переопределение) или новый (кастомная)

Тело запроса (JSON, все поля необязательны — null = не трогать):

ПолеТипНазначение
namestringОтображаемое имя
colorstringОсновной цвет (HEX)
lightstringСветлый оттенок
borderstringЦвет рамки
descriptionstringОписание
sort_ordernumberПорядок сортировки
is_custombooleantrue — кастомная специальность спейса (нет в коллекции)
enabledbooleanВидимость в спейсе

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

Окно терминала
curl -X POST https://specbuilder.vnimanie.ai/api/spaces/a1b2c3d4-5678-49ab-8cde-f0123456789a/specialties/ml-engineer \
-H "Authorization: Bearer tak_..." \
-H "Content-Type: application/json" \
-d '{"color":"#16a34a","description":"Профиль под precision-agriculture"}'

Ответ 200:

{ "ok": true }

Ответ — подтверждение { "ok": true } (JSON в любом случае; отдельного Markdown-зеркала у мутации нет). Чтобы увидеть результат, перечитайте список специальностей.

Связанные