DELETE /api/spaces/:spaceId — Удалить спейс (в корзину)
Сгенерировано из матриц + кода. Правки вносить в источники (
docs/matrices/,server/routes/), не здесь.
| Поле | Значение |
|---|---|
| HTTP | DELETE /api/spaces/:spaceId |
| Auth | requireSpaceOrgAdmin — requireSpaceOrgAdmin |
| Scope токена | read_write |
| PG-функции | api.delete_space |
| Таблицы | space |
| SRM | SRM-048, SRM-241 |
| RP (права) | RP-051 |
| Файл роута | server/routes/spaces.js |
| Статус | done |
Аргументы запроса (best-effort из хендлера; путь-параметры опущены):
аргументов не обнаружено (подтвердить вручную по server/routes/spaces.js)
Коды ответов/ошибок (из хендлера): 200 — уточнить причины вручную
Для человека
Как открыть: откройте спейс → «Настройки спейса» → меню «…» в шапке → «Удалить спейс» → подтвердить.
Отправляет командный спейс в корзину. Это мягкое удаление: спейс не исчезает, а помечается удалённым, попадает в корзину и оттуда восстанавливается.
Удалить можно только пустой спейс. Если в нём есть живые проекты — операция отклоняется (код SPACE_HAS_PROJECTS, 409), интерфейс показывает отдельный диалог: сначала разберитесь с проектами. Личные и гостевые спейсы этим методом не удаляются — они системные.
Кто может. Только администратор организации или администратор платформы (requireSpaceOrgAdmin, RP-051). Менеджер спейса (спейсмен) удалить спейс не может.
Для агента
Запись — токен со scope read_write. В WRITE_ALLOW как SPACE_SOFT_DELETE; маршрут защищён requireSpaceOrgAdmin, поэтому удалить спейс может только токен владельца-org_admin его организации (или site-admin, но site-admin-токенов не бывает) — иначе 403.
Путь:
| Параметр | Где | Назначение |
|---|---|---|
id | path | UUID спейса |
Тела у запроса нет.
Пример запроса:
curl -X DELETE https://specbuilder.vnimanie.ai/api/spaces/c0ffee00-1234-4abc-9def-0123456789ab \ -H "Authorization: Bearer tak_..."Ответ 200:
{ "ok": true }Если в спейсе есть проекты — 400 с доменным кодом в теле (PG бросает SPACE_HAS_PROJECTS, который хендлер мапит на 400):
{ "error": "SPACE_HAS_PROJECTS: cannot delete space with 7 active project(s)" }Удаление идемпотентно: повторный вызов на уже удалённый спейс вернёт { "ok": true } без изменений. Достать спейс обратно — восстановить спейс.