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

PUT /api/projects/:id — Обновить проект

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

ПолеЗначение
HTTPPUT /api/projects/:id
AuthoptionalAuth, requireProjectAccess — гость + авторизованный, доступ к проекту (read/write)
Scope токенаread_write
PG-функцииapi.update_project
Таблицыproject, space
SRMSRM-003, SRM-004
RP (права)RP-011, RP-018
Файл роутаserver/routes/projects.js
Статусdone

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

АргументГдеОбяз.Заметка
clear_spacebodyподтвердить
promptbodyподтвердить
space_idbodyподтвердить
titlebodyподтвердить

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

Для человека

Как открыть: на стартовом экране со списком проектов наведитесь на карточку нужного проекта и нажмите меню «⋯». В открывшемся меню выберите «Редактировать промпт» (поменять название и текст задачи) или «Переместить в другой спейс».

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

Перемещение между спейсами пригодится, когда проект создали не в той коллекции или хотят перенести его из личного спейса в командный. Чтобы вынуть проект из спейса и оставить «без спейса», очистите выбор спейса.

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

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

Для агента

Запись — нужен токен со scope read_write (см. Конвенции). Вызов идёт под ролью владельца токена с теми же ограничениями, что в UI: для гостевого спейса нужен заголовок-claim X-Guest-Projects, для владельческого проекта — write-уровень доступа. Наблюдатель (supervisor, read-only) получает 403.

Тело запроса (JSON): все поля опциональны — передавайте только изменяемые.

ПолеТипОбяз.Назначение
titlestringнетНовое название проекта
promptstringнетНовый текст задачи (промпт)
space_iduuidнетПеренести проект в указанный спейс
clear_spaceboolнетtrue — вынуть проект из спейса (оставить без спейса)

Очистить спейс можно тремя способами: clear_space: true, либо space_id: null, либо space_id: "" — все три эквивалентны.

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

Окно терминала
curl -X PUT https://specbuilder.vnimanie.ai/api/projects/a1b2c3d4-... \
-H "Authorization: Bearer tak_..." \
-H "Content-Type: application/json" \
-d '{"prompt":"Сервис аналитики продаж с разбивкой по регионам","space_id":"f9e8d7c6-..."}'

Ответ 200:

{ "id": "a1b2c3d4-...", "title": "Сервис аналитики продаж", "prompt": "Сервис аналитики продаж с разбивкой по регионам", "space_id": "f9e8d7c6-..." }

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

Коды ошибок: 403 — нет прав на редактирование (наблюдатель, отсутствует guest-claim, отказ PG-функции по доступу); 404 — проект не найден или уже в корзине. Подробнее — Ошибки.

Связанные