GET /api/users/me — Кто я (для токена)
Сгенерировано из матриц + кода. Правки вносить в источники (
docs/matrices/,server/routes/), не здесь.
| Поле | Значение |
|---|---|
| HTTP | GET /api/users/me |
| Auth | — |
| Scope токена | read |
| PG-функции | api.get_user_active_org, api.list_my_orgs |
| Таблицы | — |
| SRM | — (вне SRM, документировано по коду) |
| RP (права) | — |
| Файл роута | server/routes/users.js |
| Статус | по коду (вне SRM) |
Аргументы запроса (best-effort из хендлера; путь-параметры опущены):
аргументов не обнаружено (подтвердить вручную по server/routes/users.js)
Коды ответов/ошибок (из хендлера): 200 — уточнить причины вручную
Для человека
Как открыть: отдельной кнопки нет — этим методом интерфейс пользуется сам. Он отвечает на вопрос «кто я и в какой организации работаю сейчас»: имя в правом верхнем углу, текущая активная организация и набор доступных действий опираются на его ответ.
Возвращает того, кто вошёл: id, email, имя и активную организацию (с вашей ролью в ней). Активная организация — это «где я сейчас»: именно в ней по умолчанию создаются новые сущности. Если вы пока ни в одной организации не состоите, поле активной организации будет пустым.
Для агента
Чтение — достаточно токена со scope read (см. Конвенции). Это главная точка self-discovery: первым делом агент спрашивает GET /api/users/me, чтобы узнать, от чьего имени работает токен и какая организация у владельца активна. Тела и параметров у запроса нет.
Рядом есть похожий GET /api/auth/me — но он про cookie-сессию (кто залогинен в браузере), а /api/users/me отдаёт владельца токена плюс его активную организацию и роль в ней. Для агента опорная точка — именно /api/users/me.
Пример запроса:
curl https://specbuilder.vnimanie.ai/api/users/me \ -H "Authorization: Bearer tak_..." \ -H "Accept: text/markdown"Ответ 200:
{ "id": "11111111-2222-3333-4444-555555555555", "email": "agent@example.com", "display_name": "Агент-сборщик", "active_org_id": "9999aaaa-...", "active_org": { "id": "9999aaaa-...", "name": "ООО «Будущее»", "my_role": "org_admin" }, "active_org_role": "org_admin"}Cookie-клиент всегда получает JSON; Markdown-зеркало отдаётся только токену с Accept: text/markdown (или ?format=md) — server/agent/negotiate.js. У ответа есть ETag (от хэша тела, поскольку у /me нет отдельной отметки времени); повтор с If-None-Match вернёт 304.
В Markdown-зеркале блок ## Actions перечисляет действия, доступные токену. Для ресурса user это (server/agent/affordances.js):
GET /api/users/me — whoami — returns the token owner profile and active orgСменить активную организацию — отдельный вызов POST /api/users/me/active-org.