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