POST /api/v1/auth/agent-token
Mint Agent Token
mint (or rotate) a scoped AGENT token + its contract grants.
Superuser-only. Creates (or reuses) the agent identity and REPLACES its grant pool
with body.grants (default-deny — a contract not listed is inaccessible). Changing
the pool or capabilities later is a grant edit, no re-mint needed. publish is granted only when listed
explicitly: withhold on prod contracts by default).
Авторизация: нужен Authorization: Bearer <token>
curl -sS -X POST "https://entherium.duckdns.org:8443/api/v1/auth/agent-token" \ -H "Authorization: Bearer <token>" \ -H "Content-Type: application/json" \ -d '{"email":"agent@entherium.dev","expires_days":90,"full_name":"Partner agent","grants":[{"capabilities":["submit","launch","cancel","edit_config"],"salescontract":40}],"revoke_prior":true}'Ответ 200
Заголовок раздела «Ответ 200»{ "access_token": "eyJhbGciOiJIUzI1NiJ9.<payload>.<signature>", "api_scope": "agent", "email": "agent@entherium.dev", "expires_in": 7776000, "token_type": "bearer", "user_guid": 5}Возвращает
Заголовок раздела «Возвращает»ServiceTokenResponse — Successful Response
| Поле | Тип | Описание |
|---|---|---|
access_token | string | |
api_scope | string | |
email | string | |
expires_in | integer | |
token_type | string (opt.) | |
user_guid | integer |
Параметры
Заголовок раздела «Параметры»| Параметр | Где | Обязателен | Тип | По умолчанию | Ограничения | Описание |
|---|---|---|---|---|---|---|
Idempotency-Key | header | нет | string | — | uuid | Optional. |
Тело запроса
Заголовок раздела «Тело запроса»| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
email | string | нет | |
expires_days | integer | нет | |
full_name | string | null | нет | |
grants | массив AgentGrantSpec | да | |
revoke_prior | boolean | нет |
Пример:
{ "email": "agent@entherium.dev", "expires_days": 90, "full_name": "Partner agent", "grants": [ { "capabilities": [ "submit", "launch", "cancel", "edit_config" ], "salescontract": 40 } ], "revoke_prior": true}| Код | Смысл | Тело |
|---|---|---|
401 | Missing or invalid authentication credentials | ErrorResponse |
409 | The e-mail belongs to a non-agent user; refusing to convert | ErrorResponse |
422 | Validation Error | HTTPValidationError |
Тело любой ошибки — {detail, code?, request_id, doc_url}: request_id — что цитировать, doc_url ведёт в Справочник ошибок.