150 lines
3.3 KiB
Markdown
150 lines
3.3 KiB
Markdown
# Диаграммы
|
|
|
|
## 1. Назначение документа
|
|
|
|
Этот документ собирает диаграммы целевой модели проекта:
|
|
|
|
- компонентную структуру;
|
|
- связи между доменными сущностями;
|
|
- хранение данных в БД.
|
|
|
|
Примечание:
|
|
|
|
- диаграммы требуют следующего обновления по слою машинного доступа;
|
|
- вместо `PlatformApiKey` целевая модель проекта теперь использует `AgentKey`, `IssuedAgentToken` и при необходимости `PlatformClientCredential`;
|
|
- детальная схема зафиксирована в `docs/agent-auth-model.md`.
|
|
|
|
## 2. Компонентная диаграмма
|
|
|
|
```mermaid
|
|
flowchart LR
|
|
UI[crank-ui]
|
|
ADMIN[admin-api]
|
|
MCP[mcp-server]
|
|
REG[crank-registry]
|
|
RUN[crank-runtime]
|
|
CORE[crank-core]
|
|
SCHEMA[crank-schema]
|
|
MAP[crank-mapping]
|
|
REST[adapter-rest]
|
|
DB[(PostgreSQL)]
|
|
STORE[(Artifact Storage)]
|
|
OBS[(Usage and Logs)]
|
|
|
|
UI --> ADMIN
|
|
MCP --> REG
|
|
MCP --> RUN
|
|
ADMIN --> REG
|
|
ADMIN --> RUN
|
|
REG --> DB
|
|
REG --> CORE
|
|
REG --> SCHEMA
|
|
REG --> MAP
|
|
RUN --> CORE
|
|
RUN --> SCHEMA
|
|
RUN --> MAP
|
|
RUN --> REST
|
|
ADMIN --> STORE
|
|
REG --> OBS
|
|
ADMIN --> OBS
|
|
```
|
|
|
|
## 3. Структурная диаграмма доменной модели
|
|
|
|
```mermaid
|
|
classDiagram
|
|
class Workspace {
|
|
+id
|
|
+slug
|
|
+display_name
|
|
}
|
|
|
|
class Operation {
|
|
+id
|
|
+workspace_id
|
|
+name
|
|
+display_name
|
|
+protocol
|
|
+status
|
|
}
|
|
|
|
class Agent {
|
|
+id
|
|
+workspace_id
|
|
+slug
|
|
+display_name
|
|
+status
|
|
}
|
|
|
|
class AgentBinding {
|
|
+operation_id
|
|
+operation_version
|
|
+tool_name
|
|
+enabled
|
|
}
|
|
|
|
class PlatformApiKey {
|
|
+id
|
|
+workspace_id
|
|
+name
|
|
+prefix
|
|
+scopes
|
|
+status
|
|
}
|
|
|
|
class InvocationLog {
|
|
+workspace_id
|
|
+agent_id
|
|
+operation_id
|
|
+status
|
|
+duration_ms
|
|
}
|
|
|
|
Workspace --> Operation : owns
|
|
Workspace --> Agent : owns
|
|
Workspace --> PlatformApiKey : owns
|
|
Agent --> AgentBinding : contains
|
|
AgentBinding --> Operation : references
|
|
InvocationLog --> Workspace : belongs_to
|
|
InvocationLog --> Agent : belongs_to
|
|
InvocationLog --> Operation : belongs_to
|
|
```
|
|
|
|
## 4. ER-диаграмма БД
|
|
|
|
```mermaid
|
|
erDiagram
|
|
WORKSPACES ||--o{ OPERATIONS : owns
|
|
WORKSPACES ||--o{ AGENTS : owns
|
|
WORKSPACES ||--o{ AUTH_PROFILES : owns
|
|
WORKSPACES ||--o{ PLATFORM_API_KEYS : owns
|
|
WORKSPACES ||--o{ INVOCATION_LOGS : owns
|
|
OPERATIONS ||--o{ OPERATION_VERSIONS : has
|
|
OPERATIONS ||--o| PUBLISHED_OPERATIONS : publishes
|
|
AGENTS ||--o{ AGENT_VERSIONS : has
|
|
AGENTS ||--o| PUBLISHED_AGENTS : publishes
|
|
AGENT_VERSIONS ||--o{ AGENT_OPERATION_BINDINGS : contains
|
|
OPERATIONS ||--o{ AGENT_OPERATION_BINDINGS : exposed_by
|
|
|
|
WORKSPACES {
|
|
text id PK
|
|
text slug
|
|
text display_name
|
|
}
|
|
OPERATIONS {
|
|
text id PK
|
|
text workspace_id FK
|
|
text name
|
|
text display_name
|
|
text protocol
|
|
text status
|
|
}
|
|
AGENTS {
|
|
text id PK
|
|
text workspace_id FK
|
|
text slug
|
|
text display_name
|
|
text status
|
|
}
|
|
```
|