DELETE /api/spaces/:id/edges/:source/:target — Удалить связь
Сгенерировано из матриц + кода. Правки вносить в источники (
docs/matrices/,server/routes/), не здесь.
| Поле | Значение |
|---|---|
| HTTP | DELETE /api/spaces/:id/edges/:source/:target |
| Auth | requireSpacemanOrOrgAdmin — requireSpacemanOrOrgAdmin |
| Scope токена | read_write |
| PG-функции | api.remove_space_edge |
| Таблицы | space_edge_overlay |
| SRM | SRM-262 |
| RP (права) | — |
| Файл роута | server/routes/spaces.js |
| Статус | done |
Аргументы запроса (best-effort из хендлера; путь-параметры опущены):
аргументов не обнаружено (подтвердить вручную по server/routes/spaces.js)
Коды ответов/ошибок (из хендлера): 200 — уточнить причины вручную
Для человека
Как открыть: вкладка «Спейсы» → откройте спейс → «Настройки спейса» → раздел «Связи» → у нужной связи нажмите кнопку удаления.
Убирает связь между двумя блоками в этом спейсе. Действие тоже идёт через оверлей и работает зеркально добавлению: кастомную связь (добавленную в спейсе) удаление просто стирает; связь, унаследованную из коллекции, оно скрывает в спейсе (помечает op=remove), не трогая коллекцию. Скрытую связь всегда можно вернуть — снова добавив её.
Кто может. Только менеджер спейса (спейсмен) и администратор организации (RP-133). Сотрудник и наблюдатель связи не меняют.
Для агента
Запись — нужен токен со scope read_write (см. Конвенции). Удалить связь сможет только токен спейсмена этого спейса или org_admin его организации; иначе requireSpacemanOrOrgAdmin вернёт 403. Путь в write-allowlist agent-gate как SPACE_EDGE_REMOVE (server/auth/agentGate.js).
В отличие от добавления, источник и приёмник передаются в пути, не в теле:
| Параметр | Где | Назначение |
|---|---|---|
:id | path | UUID спейса |
:source | path | id блока-источника |
:target | path | id блока-приёмника |
Тела у запроса нет.
Пример запроса:
curl -X DELETE \ https://specbuilder.vnimanie.ai/api/spaces/f9e8d7c6-.../edges/FEATURE_STORE/MODEL_TRAINING \ -H "Authorization: Bearer tak_..."Ответ 200:
{ "ok": true }Операция идемпотентна по результату: повторное удаление уже скрытой/отсутствующей связи не ошибка. Ответ — всегда JSON ({ ok: true }), без Markdown-зеркала и ETag. Сверить состояние — список связей.