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