Перейти к содержимому

POST /api/site-admin/organizations — Создать организацию

Сгенерировано из матриц + кода. Правки вносить в источники (docs/matrices/, server/routes/), не здесь.

ПолеЗначение
HTTPPOST /api/site-admin/organizations
AuthrequireSiteAdmin — только site-admin
Scope токенаread_write
PG-функцииapi.admin_create_org
Таблицыorganization
SRMSRM-072
RP (права)RP-060, RP-061, RP-062
Файл роутаserver/routes/site-admin.js
Статусdone

Аргументы запроса (best-effort из хендлера; путь-параметры опущены):

АргументГдеОбяз.Заметка
namebodyподтвердить
slugbodyподтвердить

Коды ответов/ошибок (из хендлера): 201, 400 (+ 200) — уточнить причины вручную

Для человека

Как открыть: Admin Panel (пароль → код TOTP) → раздел «Организации» → кнопка «Создать» (или «Добавить»). Заполните название и короткий код, подтвердите.

Заводит новую организацию на платформе. Нужны два поля:

  • Название — как организация будет называться (можно по-человечески, с пробелами).
  • Код (slug) — короткий адресный идентификатор: только строчные латинские буквы, цифры и дефис. Иначе — ошибка 400 с подсказкой про допустимые символы.

Код должен быть уникальным: если такой уже занят другой организацией, создание не пройдёт (409). Оба поля обязательны — без любого из них вернётся 400. Создателем записи отмечается тот администратор платформы, который её завёл. Сразу после создания организация попадает в общий список; дальше ей обычно назначают администратора.

Кто может. Только администратор платформы. Создание новых организаций — операция уровня платформы, у администратора организации её нет.

Для агента

Это операция site-admin, и она недоступна API-токену ни на каком scope (даже read_write). Создание организаций — администраторская операция платформы, доступная только под человеческой cookie-сессией.

Путь /api/site-admin/* закрыт для Bearer-токенов в agent-gate (server/auth/agentGate.js): он не в write-allowlist (закрыто по умолчанию), поэтому POST с Authorization: Bearer tak_... возвращает 403 (Forbidden for token). Markdown-зеркала нет.

Под защитой requireSiteAdmin. Браузер шлёт его с cookie-сессией:

Окно терминала
curl -X POST https://specbuilder.vnimanie.ai/api/site-admin/organizations \
-b admin-cookies.txt \
-H "Content-Type: application/json" \
-d '{"name":"Будущее","slug":"buduschee"}'

Тело запроса (JSON):

ПолеТипОбяз.Назначение
namestringдаОтображаемое название организации
slugstringдаКороткий код; шаблон ^[a-z0-9-]+$, должен быть уникальным

Ответ 201 — возвращается id созданной организации:

"a1b2c3d4-..."

Ошибки: 400 — пустое поле или недопустимый slug; 409 — slug уже занят.

Связанные