POST /api/invites/:id/accept — Принять приглашение
Сгенерировано из матриц + кода. Правки вносить в источники (
docs/matrices/,server/routes/), не здесь.
| Поле | Значение |
|---|---|
| HTTP | POST /api/invites/:id/accept |
| Auth | requireAuth — только авторизованный |
| Scope токена | read_write |
| PG-функции | api.accept_invite |
| Таблицы | invite, org_member, space_member |
| SRM | SRM-067 |
| RP (права) | RP-055 |
| Файл роута | server/routes/invites.js |
| Статус | done |
Аргументы запроса (best-effort из хендлера; путь-параметры опущены):
аргументов не обнаружено (подтвердить вручную по server/routes/invites.js)
Коды ответов/ошибок (из хендлера): 404 (+ 200) — уточнить причины вручную
Для человека
Как открыть: перейдите по ссылке-приглашению из письма → на экране принятия нажмите «Принять». Если вы ещё не вошли, сначала появится предложение войти или зарегистрироваться — принять можно только под своим аккаунтом.
Завершает вступление в организацию: после нажатия вы становитесь её участником, приглашение помечается использованным, и через пару секунд вас перебрасывает к проектам. Org-приглашение по умолчанию даёт роль участника-сотрудника (member); если в приглашении был указан спейс, вы заодно добавляетесь и в него.
Ограничения понятны из ответа: повторно принять уже использованное или несуществующее приглашение нельзя (404), а истёкшую ссылку метод не примет. Принять можно только своё приглашение — то, что открыто по ссылке под вашим аккаунтом.
Кто может. Любой вошедший пользователь, открывший ссылку-приглашение (FM-064, RP-055). Гостю сперва нужно зарегистрироваться или войти.
Для агента
Запись — нужен токен со scope read_write. Эта операция включена в write-allowlist agent-gate (server/auth/agentGate.js, INVITE_ACCEPT), поэтому токен сюда проходит и действует от имени владельца токена: в организацию вступит именно он. Токен со scope read получит 403 (method-gate).
Путь-параметр :id — UUID приглашения. Его берут из ответа приглашения по ссылке (поле id). Тело запроса не требуется.
Пример запроса:
curl -X POST https://specbuilder.vnimanie.ai/api/invites/c3d4e5f6-.../accept \ -H "Authorization: Bearer tak_..."Ответ 200:
{ "ok": true, "org_id": "8f3a...", "role": "member", "already_member": false }Поле already_member = true, если владелец токена уже состоял в организации (приглашение всё равно помечается принятым, повторного добавления не происходит).
Ошибки приходят чистым JSON { "error": "..." }: приглашения нет — INVITE_NOT_FOUND; уже использовано — INVITE_NOT_PENDING; истекло — INVITE_EXPIRED. Все они отдаются с 400 (нет совпадения по «доступ»/«прав»). Markdown-зеркала и ETag у метода нет.
Чтобы узнать, кем именно стал токен после вступления, — whoami (GET /api/users/me): владелец и его активная организация.
Связанные
- Экраны: Принятие инвайта
- Конвенции · Роли · Ошибки · Глоссарий