auth: cut over community machine access to agent keys

This commit is contained in:
a.tolmachev
2026-05-03 15:42:07 +00:00
parent c7b33930db
commit 6fd62df2a8
18 changed files with 768 additions and 302 deletions
+8 -47
View File
@@ -2,55 +2,9 @@
## Current
### `feat/community-agent-key-cutover`
Status: in_progress
Goal:
- довести открытую редакцию до продуктово завершенного машинного доступа через ключ AI-агента.
Main code areas:
- `crates/crank-core/src/agent.rs`
- `crates/crank-core/src/auth.rs`
- `crates/crank-registry/src/postgres/agent.rs`
- `crates/crank-registry/src/postgres/api_key.rs`
- `apps/admin-api/src/service.rs`
- `apps/admin-api/src/app.rs`
- `apps/mcp-server/src/app.rs`
- `apps/ui/js/agents.js`
- `apps/ui/js/api-keys.js`
- `apps/ui/html/agents.html`
- `apps/ui/html/api-keys.html`
- `apps/ui/js/i18n.js`
Implementation slices:
1. Закрыть remaining workspace/platform-key assumptions в `admin-api` и `mcp-server`.
2. Нормализовать list/create/revoke/delete flow для agent keys.
3. Привести UI страницы `Agents` и `API Keys` к одной модели agent-scoped machine access.
4. Явно ограничить `Community` на `security_level = standard`.
Progress:
- done: `mcp-server` принимает ключ только по `(workspace_slug, agent_slug, secret_hash)`;
- done: `admin-api` уже отдает и принимает agent-scoped key routes;
- done: UI `API Keys` переведен на agent-scoped machine access;
- done: removed legacy workspace-key routes, demo/bootstrap assumptions, and per-agent key count bug.
DoD:
- ключ создается и принадлежит конкретному AI-агенту;
- UI объясняет назначение ключа без ссылок на старую workspace-key модель;
- `mcp-server` принимает Community machine access только по agent key;
- Community flow не требует short-lived token service.
Verification:
- backend unit and integration tests for key lifecycle;
- MCP tool-call tests through agent endpoint;
- e2e smoke for agent key create/reveal/revoke.
## Next
### `feat/edition-capability-model`
Status: ready
Status: in_progress
Goal:
- ввести capability model по редакциям и перестать смешивать Community и premium surface.
@@ -74,6 +28,11 @@ Implementation slices:
3. Привести UI к capability gating вместо скрытых продуктовых допущений.
4. Зафиксировать Community defaults в docs и runtime config.
Progress:
- pending: define shared capability payload in `crank-core` and `admin-api`;
- pending: expose Community capability defaults to UI;
- pending: gate premium protocols and security levels in wizard and agents flows.
DoD:
- UI знает, какие функции входят в текущую редакцию;
- Community не показывает рабочие controls для premium-only features;
@@ -84,6 +43,8 @@ Verification:
- frontend smoke for hidden/locked states;
- manual verification on Community build.
## Next
### `feat/private-token-service-seam`
Status: ready