PUT /api/collections/:id/specialties/:specId — Изменить специальность
Сгенерировано из матриц + кода. Правки вносить в источники (
docs/matrices/,server/routes/), не здесь.
| Поле | Значение |
|---|---|
| HTTP | PUT /api/collections/:id/specialties/:specId |
| Auth | — |
| Scope токена | read_write |
| PG-функции | api.upsert_collection_specialty |
| Таблицы | — |
| SRM | — (вне SRM, документировано по коду) |
| RP (права) | — |
| Файл роута | server/routes/collections.js |
| Статус | по коду (вне SRM) |
Аргументы запроса (best-effort из хендлера; путь-параметры опущены):
| Аргумент | Где | Обяз. | Заметка |
|---|---|---|---|
border | body | подтвердить | |
color | body | подтвердить | |
description | body | подтвердить | |
light | body | подтвердить | |
name | body | подтвердить | |
sort_order | body | подтвердить |
Коды ответов/ошибок (из хендлера): 200 — уточнить причины вручную
Для человека
Как открыть: «Коллекции» → откройте коллекцию → в редакторе коллекции в левой панели специальностей выберите специальность и нажмите «Изменить».
Меняет имя, описание, цвета и порядок специальности. Ключ (id) при этом не меняется — он берётся из выбранной специальности; меняется только отображение.
Цвет остаётся обязательным. Коллекция должна быть активной — изменить специальность в коллекции из корзины нельзя (404).
Кто может. Администратор организации-владельца (и администратор площадки).
Для агента
Запись — нужен токен со scope read_write (см. Конвенции). Route-middleware нет; права досматривает PG-функция: править содержимое коллекции может org-admin владеющей организации (или site-admin).
Ключ специальности берётся из пути (:specId), а не из тела — в отличие от POST, где id приходит в теле. Под капотом тот же upsert по (collection_id, :specId): если специальности с таким ключом нет, она будет создана.
Тело запроса (JSON):
| Поле | Тип | Обяз. | Назначение |
|---|---|---|---|
name | string | да | Отображаемое имя |
color | string | да | Основной цвет ноды (hex) |
light | string | нет | Цвет светлого фона; по умолчанию "" |
border | string | нет | Цвет рамки; по умолчанию "" |
description | string | нет | Описание роли; по умолчанию "" |
sort_order | integer | нет | Порядок в списке; по умолчанию 0 |
Пример запроса:
curl -X PUT https://specbuilder.vnimanie.ai/api/collections/0660b640-86b0-42c5-8e22-93973848bb56/specialties/ml-engineer \ -H "Authorization: Bearer tak_..." \ -H "Content-Type: application/json" \ -d '{"name":"ML-инженер (Senior)","color":"#4338ca","sort_order":2}'Ответ 200:
{ "ok": true }Коллекция в корзине → 404 (COLLECTION_NOT_FOUND). Cookie-клиент получает JSON; Markdown-зеркало — только токену с Accept: text/markdown (server/agent/negotiate.js).