docs: align agent auth model and fix session test
This commit is contained in:
+80
-5
@@ -27,7 +27,8 @@
|
||||
### 2.5. Секреты не хранятся в открытом виде
|
||||
|
||||
- upstream secrets живут в отдельных таблицах и шифруются;
|
||||
- platform API keys хранятся как hash.
|
||||
- agent keys и credentials доверенных клиентов хранятся как hash;
|
||||
- короткоживущие токены хранятся в форме, пригодной для отзыва и учета использования.
|
||||
|
||||
## 3. Основные таблицы
|
||||
|
||||
@@ -48,7 +49,9 @@
|
||||
- `agent_versions`
|
||||
- `agent_operation_bindings`
|
||||
- `published_agents`
|
||||
- `platform_api_keys`
|
||||
- `agent_keys`
|
||||
- `issued_agent_tokens`
|
||||
- `platform_client_credentials`
|
||||
- `stream_sessions`
|
||||
- `async_jobs`
|
||||
- `invocation_logs`
|
||||
@@ -65,6 +68,7 @@
|
||||
- `display_name`
|
||||
- `protocol`
|
||||
- `status`
|
||||
- `security_level`
|
||||
- `current_draft_version`
|
||||
- `latest_published_version`
|
||||
- `created_at`
|
||||
@@ -196,6 +200,59 @@
|
||||
|
||||
- `unique (workspace_id, name)`
|
||||
|
||||
### `agent_keys`
|
||||
|
||||
- `id`
|
||||
- `workspace_id`
|
||||
- `agent_id`
|
||||
- `name`
|
||||
- `prefix`
|
||||
- `secret_hash`
|
||||
- `scopes_json`
|
||||
- `status`
|
||||
- `expires_at`
|
||||
- `created_at`
|
||||
- `last_used_at`
|
||||
|
||||
Ограничения:
|
||||
|
||||
- `unique (agent_id, name)`
|
||||
- `prefix` уникален глобально
|
||||
|
||||
Назначение:
|
||||
|
||||
- длинноживущий ключ принадлежит одному агенту;
|
||||
- ключ используется как исходное основание для выпуска короткоживущего токена;
|
||||
- прямой вызов MCP по такому ключу допускается только в переходном режиме.
|
||||
|
||||
### `issued_agent_tokens`
|
||||
|
||||
- `id`
|
||||
- `workspace_id`
|
||||
- `agent_id`
|
||||
- `agent_key_id`
|
||||
- `token_kind`
|
||||
- `status`
|
||||
- `scopes_json`
|
||||
- `max_uses`
|
||||
- `used_count`
|
||||
- `cnf_jkt`
|
||||
- `expires_at`
|
||||
- `created_at`
|
||||
- `used_at`
|
||||
|
||||
Индексы:
|
||||
|
||||
- `(agent_id, status, expires_at)`
|
||||
- `(workspace_id, status, expires_at)`
|
||||
- `(cnf_jkt)` при включенной привязке токена к ключевой паре клиента
|
||||
|
||||
Назначение:
|
||||
|
||||
- учет выданных короткоживущих токенов;
|
||||
- поддержка одноразовых токенов;
|
||||
- поддержка отзыва и проверки повторного использования.
|
||||
|
||||
### `stream_sessions`
|
||||
|
||||
- `id`
|
||||
@@ -336,20 +393,38 @@
|
||||
- `published_at`
|
||||
- `published_by`
|
||||
|
||||
## 9. Platform access and observability
|
||||
## 9. Machine access and observability
|
||||
|
||||
### `platform_api_keys`
|
||||
### `agent_keys`
|
||||
|
||||
- `id`
|
||||
- `workspace_id`
|
||||
- `agent_id`
|
||||
- `name`
|
||||
- `prefix`
|
||||
- `secret_hash`
|
||||
- `scopes_json`
|
||||
- `status`
|
||||
- `expires_at`
|
||||
- `created_at`
|
||||
- `last_used_at`
|
||||
|
||||
### `issued_agent_tokens`
|
||||
|
||||
- `id`
|
||||
- `workspace_id`
|
||||
- `agent_id`
|
||||
- `agent_key_id`
|
||||
- `token_kind`
|
||||
- `status`
|
||||
- `scopes_json`
|
||||
- `max_uses`
|
||||
- `used_count`
|
||||
- `cnf_jkt`
|
||||
- `expires_at`
|
||||
- `created_at`
|
||||
- `used_at`
|
||||
|
||||
### `invocation_logs`
|
||||
|
||||
- `id`
|
||||
@@ -397,6 +472,6 @@
|
||||
3. добавить `secrets` и `secret_versions`;
|
||||
4. перевести `auth_profiles` на secret-backed config;
|
||||
5. добавить `agents` и `published_agents`;
|
||||
6. внедрить `platform_api_keys`;
|
||||
6. внедрить `agent_keys`, `platform_client_credentials` и `issued_agent_tokens`;
|
||||
7. добавить `invocation_logs` и `usage_rollups`;
|
||||
8. перевести MCP runtime на `published_agents`, а не на глобальный список operations.
|
||||
|
||||
Reference in New Issue
Block a user