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

GET /api/users/me — Кто я (для токена)

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

ПолеЗначение
HTTPGET /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.

Связанные