PUT /api/collections/:id — Обновить коллекцию
Сгенерировано из матриц + кода. Правки вносить в источники (
docs/matrices/,server/routes/), не здесь.
| Поле | Значение |
|---|---|
| HTTP | PUT /api/collections/:id |
| Auth | — |
| Scope токена | read_write |
| PG-функции | api.update_collection |
| Таблицы | collection |
| SRM | SRM-232 |
| RP (права) | — |
| Файл роута | server/routes/collections.js |
| Статус | done |
Аргументы запроса (best-effort из хендлера; путь-параметры опущены):
| Аргумент | Где | Обяз. | Заметка |
|---|---|---|---|
description | body | подтвердить | |
doc_title | body | подтвердить | |
is_public | body | подтвердить | |
name | body | подтвердить | |
tags | body | подтвердить |
Коды ответов/ошибок (из хендлера): 200 — уточнить причины вручную
Для человека
Как открыть: в навигации «Коллекции» → откройте карточку коллекции → меняйте поля прямо в редакторе (название, описание, заголовок документа, публичность). Теги редактируются чипами прямо на карточке в списке.
Обновляет свойства коллекции. Слои, блоки и роли здесь не трогаются — для них есть отдельные действия внутри редактора; этот запрос меняет только «шапку» коллекции.
Кто может. Менять коллекцию может администратор организации-владельца или администратор платформы. Чужую коллекцию изменить нельзя — ответ 403.
Для агента
Запись — нужен токен со scope read_write (см. Конвенции). У роута нет route-middleware с ролью — владение проверяется внутри: править коллекцию может org-admin организации-владельца (owner_org_id) или site-admin. Глобальные коллекции (owner_org_id пуст) правит только site-admin. Иначе — 403.
Путь-параметр :id — UUID коллекции.
Тело запроса (JSON):
| Поле | Тип | Обяз. | Назначение |
|---|---|---|---|
name | string | нет | Новое название |
description | string | нет | Новое описание |
doc_title | string | нет | Заголовок проектного документа |
is_public | boolean | нет | Публичность |
tags | string[] | нет | Теги; пропустить поле — теги не трогаются, передать [] — очистить |
Пример запроса:
curl -X PUT https://specbuilder.vnimanie.ai/api/collections/0660b640-86b0-42c5-8e22-93973848bb56 \ -H "Authorization: Bearer tak_..." \ -H "Content-Type: application/json" \ -d '{"name":"Точное земледелие v2","tags":["agro","ml","2026"]}'Ответ 200:
{ "id": "0660b640-86b0-42c5-8e22-93973848bb56", "name": "Точное земледелие v2", "tags": ["agro", "ml", "2026"] }Cookie-клиент всегда получает JSON; Markdown-зеркало — токену с Accept: text/markdown (server/agent/negotiate.js).