6.7 KiB
6.7 KiB
Admin API
1. Назначение документа
Этот документ фиксирует целевые HTTP-контракты административного API, через которое UI управляет workspace, operations, agents, platform access и observability.
2. Общие правила API
- все payload по умолчанию в
JSON; - import/export конфигурации используют
YAML; - все основные ресурсы являются
workspace-scoped; - версии operation и agent адресуются явно;
- published operation и published agent - ссылки на конкретные version;
- ошибки валидации возвращаются отдельно от transport errors.
Базовый префикс:
/api/admin
3. Основные ресурсы
workspacesmembershipsinvitationsoperationsauth-profilesagentsplatform-api-keyslogsusagesamplesdescriptorsconfig import/export
4. Workspace-scoped routing
Канонический префикс для UI-driven сценариев:
/api/admin/workspaces/{workspace_id}
5. Группы endpoints
5.1. Workspaces and members
GET /api/admin/workspacesPOST /api/admin/workspacesGET /api/admin/workspaces/{workspace_id}PATCH /api/admin/workspaces/{workspace_id}GET /api/admin/workspaces/{workspace_id}/membersGET /api/admin/workspaces/{workspace_id}/invitationsPOST /api/admin/workspaces/{workspace_id}/invitationsDELETE /api/admin/workspaces/{workspace_id}/invitations/{invitation_id}
Контракт:
POST /invitationsвозвращает metadata invitation и одноразовыйinvite_token;invite_tokenдоступен только в create-response и не возвращается повторно в list endpoints.
5.2. Operations
GET /api/admin/workspaces/{workspace_id}/operationsPOST /api/admin/workspaces/{workspace_id}/operationsGET /api/admin/workspaces/{workspace_id}/operations/{operation_id}PATCH /api/admin/workspaces/{workspace_id}/operations/{operation_id}DELETE /api/admin/workspaces/{workspace_id}/operations/{operation_id}POST /api/admin/workspaces/{workspace_id}/operations/{operation_id}/versionsGET /api/admin/workspaces/{workspace_id}/operations/{operation_id}/versions/{version}POST /api/admin/workspaces/{workspace_id}/operations/{operation_id}/publishPOST /api/admin/workspaces/{workspace_id}/operations/{operation_id}/archivePOST /api/admin/workspaces/{workspace_id}/operations/{operation_id}/test-runsGET /api/admin/workspaces/{workspace_id}/operations/{operation_id}/exportPOST /api/admin/workspaces/{workspace_id}/operations/import
5.3. Samples and descriptors
POST /api/admin/workspaces/{workspace_id}/operations/{operation_id}/samples/input-jsonPOST /api/admin/workspaces/{workspace_id}/operations/{operation_id}/samples/output-jsonPOST /api/admin/workspaces/{workspace_id}/operations/{operation_id}/drafts/generatePOST /api/admin/workspaces/{workspace_id}/operations/{operation_id}/descriptors/protoPOST /api/admin/workspaces/{workspace_id}/operations/{operation_id}/descriptors/descriptor-setGET /api/admin/workspaces/{workspace_id}/operations/{operation_id}/grpc/services
5.4. Upstream auth profiles
GET /api/admin/workspaces/{workspace_id}/auth-profilesPOST /api/admin/workspaces/{workspace_id}/auth-profilesGET /api/admin/workspaces/{workspace_id}/auth-profiles/{auth_profile_id}PATCH /api/admin/workspaces/{workspace_id}/auth-profiles/{auth_profile_id}DELETE /api/admin/workspaces/{workspace_id}/auth-profiles/{auth_profile_id}
5.5. Agents
GET /api/admin/workspaces/{workspace_id}/agentsPOST /api/admin/workspaces/{workspace_id}/agentsGET /api/admin/workspaces/{workspace_id}/agents/{agent_id}PATCH /api/admin/workspaces/{workspace_id}/agents/{agent_id}DELETE /api/admin/workspaces/{workspace_id}/agents/{agent_id}POST /api/admin/workspaces/{workspace_id}/agents/{agent_id}/versionsGET /api/admin/workspaces/{workspace_id}/agents/{agent_id}/versions/{version}POST /api/admin/workspaces/{workspace_id}/agents/{agent_id}/publishPOST /api/admin/workspaces/{workspace_id}/agents/{agent_id}/bindingsDELETE /api/admin/workspaces/{workspace_id}/agents/{agent_id}/bindings/{operation_id}
5.6. Platform API keys
GET /api/admin/workspaces/{workspace_id}/platform-api-keysPOST /api/admin/workspaces/{workspace_id}/platform-api-keysPOST /api/admin/workspaces/{workspace_id}/platform-api-keys/{key_id}/revokeDELETE /api/admin/workspaces/{workspace_id}/platform-api-keys/{key_id}
Контракт:
POST /platform-api-keysвозвращает metadata ключа и одноразовыйsecret;secretдоступен только в create-response;- list endpoints возвращают только metadata,
prefix,status,scopesиlast_used_at.
5.7. Observability
GET /api/admin/workspaces/{workspace_id}/logsGET /api/admin/workspaces/{workspace_id}/logs/{log_id}GET /api/admin/workspaces/{workspace_id}/usageGET /api/admin/workspaces/{workspace_id}/usage/operations/{operation_id}GET /api/admin/workspaces/{workspace_id}/usage/agents/{agent_id}
6. Page-to-endpoint mapping
Operations catalog
Нужны:
- список операций;
- удаление операции;
- edit/open operation;
- publish/archive;
- usage summary для карточек и фильтров.
Wizard
Нужны:
- create/update version;
- test run;
- samples;
- draft generation;
- gRPC descriptor upload и discovery.
Детальные DTO и response shapes для экранов Operations и Wizard зафиксированы отдельно в:
docs/operations-workspace-contracts.md
Agents
Нужны:
- CRUD агентов;
- bindings к operations;
- publish agent;
- выдача MCP endpoint metadata.
API Keys
Нужны:
- list/create/revoke/delete platform API keys;
- one-time reveal значения ключа при создании.
Logs
Нужны:
- list logs с фильтрами;
- log detail;
- polling или live refresh strategy.
Usage
Нужны:
- агрегаты по периодам;
- breakdown по operation;
- breakdown по agent;
- CSV export.
7. Принцип совместимости
Если UI расходится с текущим backend, приоритет отдается целевой продуктовой модели, но конфликт должен быть явно разобран в docs/as-is-to-be.md до начала реализации.