POST /api/orgs/:orgId/spaces — Создать спейс
Сгенерировано из матриц + кода. Правки вносить в источники (
docs/matrices/,server/routes/), не здесь.
| Поле | Значение |
|---|---|
| HTTP | POST /api/orgs/:orgId/spaces |
| Auth | — |
| Scope токена | read_write |
| PG-функции | api.create_space |
| Таблицы | — |
| SRM | — (вне SRM, документировано по коду) |
| RP (права) | — |
| Файл роута | server/routes/spaces.js |
| Статус | по коду (вне SRM) |
Аргументы запроса (best-effort из хендлера; путь-параметры опущены):
| Аргумент | Где | Обяз. | Заметка |
|---|---|---|---|
collection_id | body | подтвердить | |
description | body | подтвердить | |
name | body | подтвердить | |
slug | body | подтвердить |
Коды ответов/ошибок (из хендлера): 201 (+ 200) — уточнить причины вручную
Для человека
Как открыть: вкладка «Спейсы» в шапке → кнопка «Создать спейс» → форма: выбрать коллекцию и задать slug.
Создаёт командный спейс внутри организации на основе выбранной коллекции. Коллекция — это шаблон: её слои, блоки, специальности и связи становятся базой нового спейса. Поверх этой базы спейс потом кладёт оверлей — переопределяет отдельные элементы, не трогая саму коллекцию. По спейсу сотрудники создают проекты.
Что задаёте при создании:
- Коллекция — обязательна, задаёт исходный набор слоёв/блоков/специальностей.
- Название и slug — как спейс будет называться и адресоваться внутри организации.
- Описание — необязательно.
Личные и гостевые спейсы так не создаются — они системные и заводятся автоматически. Этот метод — только про командные спейсы.
Кто может. Только администратор организации (RP-050). Менеджер спейса (спейсмен) спейсы не создаёт — это per-space роль внутри уже существующего спейса; весь жизненный цикл спейса (создание, удаление) — у org_admin.
Для агента
Запись — нужен токен со scope read_write (см. Конвенции). На gate-уровне операция в WRITE_ALLOW как SPACE_CREATE; маршрут защищён requireOrgAdminParam('orgId'), так что фактически создать спейс может только токен владельца-org_admin этой организации — иначе 403 (downstream guard).
Путь:
| Параметр | Где | Назначение |
|---|---|---|
orgId | path | UUID организации, в которой создаётся спейс |
Тело запроса (JSON):
| Поле | Тип | Обяз. | Назначение |
|---|---|---|---|
collection_id | uuid | да | Коллекция-шаблон. Без неё PG вернёт INVALID_INPUT (400) |
name | string | да | Название спейса |
slug | string | да | Короткий адрес спейса внутри организации |
description | string | нет | Описание; по умолчанию пустая строка |
Пример запроса:
curl -X POST https://specbuilder.vnimanie.ai/api/orgs/0011aabb-2233-4455-6677-8899aabbccdd/spaces \ -H "Authorization: Bearer tak_..." \ -H "Content-Type: application/json" \ -d '{"collection_id":"0660b640-86b0-42c5-8e22-93973848bb56","name":"Маркетинг","slug":"marketing"}'Ответ 201:
{ "id": "a1b2c3d4-5678-49ab-8cde-f0123456789a" }Ответ — только id нового спейса (JSON). Детали с полным набором полей и блоком ## Actions потом читаются через Получить спейс. Типичный следующий шаг — добавить участников и назначить менеджера (назначить спейсмена).