POST /api/orgs/:orgId/invites — Пригласить участника
Сгенерировано из матриц + кода. Правки вносить в источники (
docs/matrices/,server/routes/), не здесь.
| Поле | Значение |
|---|---|
| HTTP | POST /api/orgs/:orgId/invites |
| Auth | — |
| Scope токена | read_write |
| PG-функции | api.create_invite |
| Таблицы | invite, space |
| SRM | SRM-059, SRM-060 |
| RP (права) | RP-063, RP-064 |
| Файл роута | server/routes/orgs.js |
| Статус | done |
Аргументы запроса (best-effort из хендлера; путь-параметры опущены):
| Аргумент | Где | Обяз. | Заметка |
|---|---|---|---|
expiresInDays | body | подтвердить | |
label | body | подтвердить | |
role | body | подтвердить | |
space_id | body | подтвердить |
Коды ответов/ошибок (из хендлера): 201, 400 (+ 200) — уточнить причины вручную
Для человека
Как открыть: на экране организации (вкладка «Организация») откройте раздел «Приглашения» и нажмите «Пригласить участника».
Создаёт приглашение в организацию и возвращает ссылку-приглашение. Пригласить нового участника может только администратор организации (RP-064). Приглашают всегда на роль участника (member): назначение менеджера спейса делается отдельно, на уровне спейса, а не через org-приглашение.
Дальше всё идёт по ссылке: человек переходит по ней, входит или регистрируется и принимает приглашение — только тогда он становится участником организации (либо отклоняет — тогда ничего не меняется). До принятия приглашение лежит в статусе «ожидает» и его можно отозвать. По умолчанию срок жизни ссылки — 7 дней; просроченную принять нельзя.
Для агента
Запись — токен со scope read_write. Операция разрешена токену (agent-gate, ORG_INVITE_CREATE); PG-функция требует, чтобы вызывающий был администратором организации — иначе 403.
Путь-параметр :orgId — UUID организации. Тело — JSON, все поля необязательны (есть дефолты):
| Поле | Тип | Обяз. | Назначение |
|---|---|---|---|
role | string | нет | Роль приглашаемого. Допустимо только member (дефолт); иное → 400 (INVALID_ROLE) |
label | string | нет | Произвольная метка для списка приглашений (по умолчанию пусто) |
expiresInDays | number | нет | Срок жизни ссылки в днях (по умолчанию 7) |
space_id | uuid | null | нет | Привязать приглашение к спейсу организации (опционально); спейс должен принадлежать этой же организации, иначе 400 |
Пример запроса:
curl -X POST https://specbuilder.vnimanie.ai/api/orgs/0c8f1e2a-.../invites \ -H "Authorization: Bearer tak_..." \ -H "Content-Type: application/json" \ -d '{"label":"Новый аналитик","expiresInDays":14}'Ответ 201 — приглашение и готовая ссылка (url собирается маршрутом из токена):
{ "id": "b7c4...", "token": "9f1a2b3c...", "role": "member", "space_id": null, "expires_at": "2026-06-29T12:00:00.000Z", "url": "https://specbuilder.vnimanie.ai/invite/9f1a2b3c..."}token в ответе — секрет ссылки-приглашения: кто им владеет, тот сможет принять приглашение. Принятие/отклонение — отдельные эндпоинты в этом же домене (POST /api/invites/:id/accept и /decline), они тоже доступны токену со scope read_write. Markdown-зеркала у мутации нет — ответ всегда JSON.
Связанные
- Экраны: Организация
- Конвенции · Роли · Ошибки · Глоссарий