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

POST /api/orgs/:orgId/invites — Пригласить участника

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

ПолеЗначение
HTTPPOST /api/orgs/:orgId/invites
Auth
Scope токенаread_write
PG-функцииapi.create_invite
Таблицыinvite, space
SRMSRM-059, SRM-060
RP (права)RP-063, RP-064
Файл роутаserver/routes/orgs.js
Статусdone

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

АргументГдеОбяз.Заметка
expiresInDaysbodyподтвердить
labelbodyподтвердить
rolebodyподтвердить
space_idbodyподтвердить

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

Для человека

Как открыть: на экране организации (вкладка «Организация») откройте раздел «Приглашения» и нажмите «Пригласить участника».

Создаёт приглашение в организацию и возвращает ссылку-приглашение. Пригласить нового участника может только администратор организации (RP-064). Приглашают всегда на роль участника (member): назначение менеджера спейса делается отдельно, на уровне спейса, а не через org-приглашение.

Дальше всё идёт по ссылке: человек переходит по ней, входит или регистрируется и принимает приглашение — только тогда он становится участником организации (либо отклоняет — тогда ничего не меняется). До принятия приглашение лежит в статусе «ожидает» и его можно отозвать. По умолчанию срок жизни ссылки — 7 дней; просроченную принять нельзя.

Для агента

Запись — токен со scope read_write. Операция разрешена токену (agent-gate, ORG_INVITE_CREATE); PG-функция требует, чтобы вызывающий был администратором организации — иначе 403.

Путь-параметр :orgId — UUID организации. Тело — JSON, все поля необязательны (есть дефолты):

ПолеТипОбяз.Назначение
rolestringнетРоль приглашаемого. Допустимо только member (дефолт); иное → 400 (INVALID_ROLE)
labelstringнетПроизвольная метка для списка приглашений (по умолчанию пусто)
expiresInDaysnumberнетСрок жизни ссылки в днях (по умолчанию 7)
space_iduuid | 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.

Связанные