128 lines
3 KiB
Markdown
128 lines
3 KiB
Markdown
# Документ 07. Database Design
|
||
|
||
## Назначение
|
||
|
||
Документ описывает архитектуру базы данных Agent Control Center, модель
|
||
хранения данных, правила проектирования схем, миграции и требования к
|
||
производительности.
|
||
|
||
# 1. Общие требования
|
||
|
||
- Основная СУБД: PostgreSQL 16+
|
||
- UUID в качестве первичных ключей.
|
||
- UTC для всех временных меток.
|
||
- Миграции через Alembic.
|
||
- Soft Delete по умолчанию.
|
||
- Поля created_at и updated_at обязательны.
|
||
|
||
# 2. Основные таблицы
|
||
|
||
## organizations
|
||
|
||
Хранение организаций.
|
||
|
||
Основные поля: - id (UUID) - name - slug - status - created_at -
|
||
updated_at
|
||
|
||
## workspaces
|
||
|
||
Связаны с organization.
|
||
|
||
Поля: - id - organization_id - name - description
|
||
|
||
## users
|
||
|
||
Поля: - id - email - display_name - status
|
||
|
||
## roles
|
||
|
||
Поля: - id - name - description
|
||
|
||
## projects
|
||
|
||
Поля: - id - workspace_id - name - status - version
|
||
|
||
## tasks
|
||
|
||
Поля: - id - project_id - title - state - priority
|
||
|
||
## runs
|
||
|
||
Поля: - id - task_id - agent_id - state - started_at - finished_at
|
||
|
||
## agents
|
||
|
||
Поля: - id - workspace_id - provider - model - configuration_json
|
||
|
||
## connectors
|
||
|
||
Поля: - id - type - status - capabilities_json
|
||
|
||
## artifacts
|
||
|
||
Поля: - id - run_id - storage_uri - checksum - size_bytes
|
||
|
||
## memories
|
||
|
||
Поля: - id - workspace_id - memory_type - embedding_id - metadata_json
|
||
|
||
## knowledge_documents
|
||
|
||
Поля: - id - workspace_id - title - version - source
|
||
|
||
## approvals
|
||
|
||
Поля: - id - run_id - requested_by - approved_by - state
|
||
|
||
## audit_events
|
||
|
||
Поля: - id - actor_id - entity_type - entity_id - action - created_at
|
||
|
||
# 3. Индексы
|
||
|
||
Рекомендуемые индексы:
|
||
|
||
- organization_id
|
||
- workspace_id
|
||
- project_id
|
||
- task_id
|
||
- run_id
|
||
- state
|
||
- created_at
|
||
- updated_at
|
||
|
||
GIN: - metadata_json - capabilities_json
|
||
|
||
# 4. Ограничения
|
||
|
||
- Внешние ключи обязательны.
|
||
- CHECK для состояний.
|
||
- UNIQUE для slug и email.
|
||
- ON DELETE RESTRICT для критичных сущностей.
|
||
|
||
# 5. Миграции
|
||
|
||
Правила:
|
||
|
||
- одна миграция --- одно изменение;
|
||
- обратимые миграции;
|
||
- автоматическая проверка в CI;
|
||
- тестирование миграций на пустой и заполненной БД.
|
||
|
||
# 6. Производительность
|
||
|
||
Целевые показатели:
|
||
|
||
- поиск по PK \< 10 мс;
|
||
- типовые SELECT \< 100 мс;
|
||
- поддержка партиционирования для audit_events и artifacts.
|
||
|
||
# 7. Архивирование
|
||
|
||
- Архив завершённых Run.
|
||
- Политики хранения Audit.
|
||
- Очистка временных артефактов по TTL.
|
||
|
||
## Следующий документ
|
||
|
||
08_API_Specification.md
|