GET /api/collections/available — Доступные коллекции
Сгенерировано из матриц + кода. Правки вносить в источники (
docs/matrices/,server/routes/), не здесь.
| Поле | Значение |
|---|---|
| HTTP | GET /api/collections/available |
| Auth | optionalAuth — гость + авторизованный |
| Scope токена | read |
| PG-функции | api.list_available_collections |
| Таблицы | — |
| SRM | — (вне SRM, документировано по коду) |
| RP (права) | — |
| Файл роута | server/routes/collections.js |
| Статус | по коду (вне SRM) |
Аргументы запроса (best-effort из хендлера; путь-параметры опущены):
| Аргумент | Где | Обяз. | Заметка |
|---|---|---|---|
org_id | query | подтвердить |
Коды ответов/ошибок (из хендлера): 200 — уточнить причины вручную
Для человека
Как открыть: на экране создания проекта раскройте выбор «Коллекция» — в выпадающем списке появятся коллекции, доступные именно вам.
Это список коллекций, из которых можно создать проект. Сюда попадают публичные и дефолтная коллекции, коллекции вашей организации, а также те, доступ к которым вашей компании выдан отдельно. В отличие от раздела «Коллекции» (там — управление), здесь — только выбор шаблона под новый проект.
Кто видит. Список доступен всем, в том числе гостям без входа. Гость видит только публичные и дефолтную коллекции. Авторизованный сотрудник видит дополнительно коллекции своей организации и выданные ей.
Для агента
Чтение — достаточно токена со scope read (см. Конвенции). Роут открыт через optionalAuth: ходить можно и без токена (как гость — увидите только публичные и дефолтную коллекции), и под токеном (тогда добавятся коллекции организации владельца и выданные ей).
Параметры запроса (query):
| Поле | Тип | Обяз. | Назначение |
|---|---|---|---|
org_id | uuid | нет | Ограничить выборку конкретной организацией |
Пример запроса:
curl https://specbuilder.vnimanie.ai/api/collections/available \ -H "Authorization: Bearer tak_..." \ -H "Accept: text/markdown"Ответ 200:
[ { "id": "0660b640-86b0-42c5-8e22-93973848bb56", "code": "ml-dev", "name": "ML/AI Development", "is_public": true, "is_default": true }]Cookie-клиент всегда получает JSON; Markdown-зеркало отдаётся только токену с Accept: text/markdown (server/agent/negotiate.js); у ресурса есть ETag (If-None-Match → 304).
Выбрав коллекцию, передайте её id как collection_id в POST /api/projects.