PUT /api/projects/:id — Обновить проект
Сгенерировано из матриц + кода. Правки вносить в источники (
docs/matrices/,server/routes/), не здесь.
| Поле | Значение |
|---|---|
| HTTP | PUT /api/projects/:id |
| Auth | optionalAuth, requireProjectAccess — гость + авторизованный, доступ к проекту (read/write) |
| Scope токена | read_write |
| PG-функции | api.update_project |
| Таблицы | project, space |
| SRM | SRM-003, SRM-004 |
| RP (права) | RP-011, RP-018 |
| Файл роута | server/routes/projects.js |
| Статус | done |
Аргументы запроса (best-effort из хендлера; путь-параметры опущены):
| Аргумент | Где | Обяз. | Заметка |
|---|---|---|---|
clear_space | body | подтвердить | |
prompt | body | подтвердить | |
space_id | body | подтвердить | |
title | body | подтвердить |
Коды ответов/ошибок (из хендлера): 403, 404 (+ 200) — уточнить причины вручную
Для человека
Как открыть: на стартовом экране со списком проектов наведитесь на карточку нужного проекта и нажмите меню «⋯». В открывшемся меню выберите «Редактировать промпт» (поменять название и текст задачи) или «Переместить в другой спейс».
Меняет «обложку» проекта, не затрагивая сам граф: название, текст задачи (промпт) и спейс, в котором проект лежит. Передавайте только то, что хотите изменить — остальное останется как было.
Перемещение между спейсами пригодится, когда проект создали не в той коллекции или хотят перенести его из личного спейса в командный. Чтобы вынуть проект из спейса и оставить «без спейса», очистите выбор спейса.
Кто может. Редактировать проект может тот, у кого есть право на запись в этом спейсе: владелец проекта, менеджер спейса, администратор организации. Наблюдатель видит проект, но изменить его не может — у него режим «только чтение», при попытке вернётся отказ доступа. Гость может править только свой гостевой проект (тот, который создал в этой же сессии).
Если проект уже удалён в корзину или у вас нет прав — придёт ошибка доступа (403); если проекта нет — 404.
Для агента
Запись — нужен токен со scope read_write (см. Конвенции). Вызов идёт под ролью владельца токена с теми же ограничениями, что в UI: для гостевого спейса нужен заголовок-claim X-Guest-Projects, для владельческого проекта — write-уровень доступа. Наблюдатель (supervisor, read-only) получает 403.
Тело запроса (JSON): все поля опциональны — передавайте только изменяемые.
| Поле | Тип | Обяз. | Назначение |
|---|---|---|---|
title | string | нет | Новое название проекта |
prompt | string | нет | Новый текст задачи (промпт) |
space_id | uuid | нет | Перенести проект в указанный спейс |
clear_space | bool | нет | 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 — проект не найден или уже в корзине. Подробнее — Ошибки.
Связанные
- Экраны: Список проектов
- Конвенции · Роли · Ошибки · Глоссарий