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

DELETE /api/projects/:id — Удалить проект (в корзину)

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

ПолеЗначение
HTTPDELETE /api/projects/:id
AuthrequireAuth — только авторизованный
Scope токенаread_write
PG-функцииapi.soft_delete_project
Таблицыproject
SRMSRM-005, SRM-006
RP (права)RP-016, RP-017
Файл роутаserver/routes/projects.js
Статусdone

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

аргументов не обнаружено (подтвердить вручную по server/routes/projects.js)

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

Для человека

Как открыть: на стартовом экране со списком проектов наведитесь на карточку проекта, нажмите меню «⋯» и выберите «Удалить».

Удаляет проект в корзину — это обратимое («мягкое») удаление. Проект исчезает из списка, но не пропадает: он и весь его граф сохраняются, просто помечаются как удалённые. Удалённый проект можно найти во вкладке «Корзина» и там вернуть или стереть безвозвратно.

Кто может. Свой проект удаляет его владелец. Чужой проект может удалить администратор (на уровне организации и сайта). Наблюдатель не может удалять проекты.

Если прав нет — придёт ошибка доступа (403).

Для агента

Запись — нужен токен со scope read_write (см. Конвенции). Эндпоинт под requireAuth: гостю недоступен, нужен авторизованный владелец токена. Вызов идёт под его ролью — те же ограничения, что в UI.

Тела у запроса нет — только идентификатор проекта в пути.

Удаление мягкое: проставляется deleted_at, проект и граф остаются в БД и видны в корзине. Операция обратима — см. восстановление. Чтобы стереть безвозвратно, используйте удаление навсегда.

Пример запроса:

Окно терминала
curl -X DELETE https://specbuilder.vnimanie.ai/api/projects/a1b2c3d4-... \
-H "Authorization: Bearer tak_..."

Ответ 200:

{ "ok": true }

Cookie-клиент (браузер) всегда получает JSON; Markdown-зеркало отдаётся только токену с Accept: text/markdown (server/agent/negotiate.js).

Коды ошибок: 403 — нет прав на удаление этого проекта (или проекта не существует — PG-функция не раскрывает разницу). Подробнее — Ошибки.

Связанные