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

DELETE /api/collections/:id/specialties/:specId — Удалить специальность

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

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

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

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

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

Для человека

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

Удаляет специальность из коллекции. Главный вопрос — что делать с нодами уже созданных проектов, которым была назначена эта роль:

  • Отвязать (по умолчанию) — роль просто снимается с нод, ноды остаются.
  • Переназначить — все такие ноды получают другую специальность, которую нужно выбрать. Цель обязательна и должна существовать в этой же коллекции.

Удалить можно только существующую специальность; коллекция должна быть активной.

Кто может. Администратор организации-владельца (и администратор площадки).

Для агента

Запись — нужен токен со scope read_write (см. Конвенции). Route-middleware нет; права досматривает PG-функция: править содержимое коллекции может org-admin владеющей организации (или site-admin).

Специальность задаётся путём (:specId). Поведение в отношении назначенных нод управляется query-параметрами:

ПараметрГдеОбяз.Назначение
modequeryнетorphan (по умолчанию) — снять роль с нод; remap — переназначить на target; auto — пока работает как orphan
targetqueryпри 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 }

Ошибки: неизвестный mode400 (INVALID_MODE); специальности нет → 404 (SPECIALTY_NOT_FOUND); remap без target400 (TARGET_SPECIALTY_REQUIRED); приёмника нет в коллекции → 404 (TARGET_SPECIALTY_NOT_FOUND). Cookie-клиент получает JSON; Markdown-зеркало — только токену с Accept: text/markdown (server/agent/negotiate.js).

Связанные