DELETE /api/collections/:id/specialties/:specId — Удалить специальность
Сгенерировано из матриц + кода. Правки вносить в источники (
docs/matrices/,server/routes/), не здесь.
| Поле | Значение |
|---|---|
| HTTP | DELETE /api/collections/:id/specialties/:specId |
| Auth | — |
| Scope токена | read_write |
| PG-функции | api.delete_collection_specialty |
| Таблицы | — |
| SRM | — (вне SRM, документировано по коду) |
| RP (права) | — |
| Файл роута | server/routes/collections.js |
| Статус | по коду (вне SRM) |
Аргументы запроса (best-effort из хендлера; путь-параметры опущены):
| Аргумент | Где | Обяз. | Заметка |
|---|---|---|---|
mode | query | подтвердить | |
target | query | подтвердить |
Коды ответов/ошибок (из хендлера): 200 — уточнить причины вручную
Для человека
Как открыть: «Коллекции» → откройте коллекцию → в редакторе коллекции в левой панели специальностей выберите специальность и через «…» нажмите «Удалить».
Удаляет специальность из коллекции. Главный вопрос — что делать с нодами уже созданных проектов, которым была назначена эта роль:
- Отвязать (по умолчанию) — роль просто снимается с нод, ноды остаются.
- Переназначить — все такие ноды получают другую специальность, которую нужно выбрать. Цель обязательна и должна существовать в этой же коллекции.
Удалить можно только существующую специальность; коллекция должна быть активной.
Кто может. Администратор организации-владельца (и администратор площадки).
Для агента
Запись — нужен токен со scope read_write (см. Конвенции). Route-middleware нет; права досматривает PG-функция: править содержимое коллекции может org-admin владеющей организации (или site-admin).
Специальность задаётся путём (:specId). Поведение в отношении назначенных нод управляется query-параметрами:
| Параметр | Где | Обяз. | Назначение |
|---|---|---|---|
mode | query | нет | orphan (по умолчанию) — снять роль с нод; remap — переназначить на target; auto — пока работает как orphan |
target | query | при remap | Ключ специальности-приёмника (должна быть в этой же коллекции) |
При remap функция переписывает project_node_role.role_id на target во всех проектах спейсов этой коллекции, затем удаляет специальность.
Пример запроса:
curl -X DELETE "https://specbuilder.vnimanie.ai/api/collections/0660b640-86b0-42c5-8e22-93973848bb56/specialties/ml-engineer?mode=remap&target=data-scientist" \ -H "Authorization: Bearer tak_..."Ответ 200:
{ "ok": true }Ошибки: неизвестный mode → 400 (INVALID_MODE); специальности нет → 404 (SPECIALTY_NOT_FOUND); remap без target → 400 (TARGET_SPECIALTY_REQUIRED); приёмника нет в коллекции → 404 (TARGET_SPECIALTY_NOT_FOUND). Cookie-клиент получает JSON; Markdown-зеркало — только токену с Accept: text/markdown (server/agent/negotiate.js).