Модель базы данных¶
Что живёт в PostgreSQL (106 таблиц в обоих изданиях — схема общая; Core создаёт EE-таблицы, в которые никогда не пишет, поэтому смена издания — замена образа). Ориентированная на админов/разработчиков сводка по доменам.
Идентичность и доступ¶
users (роли, шифрованные TOTP-секреты), global_settings
(платформная ключевая пара, состояние модулей), таблицы организаций/
команд/членств, project_members с 11 ролями, приглашения, кэш планов
org (EE), oidc_providers / oidc_identities / oidc_auth_states
(client_secret шифруется).
Сущности engagement¶
projects (webhook-токен, привязка к org, env-переменные), scope, ROE,
hosts, активности хостов, pivot-наблюдения, claims хостов
(деконфликтация), учётные данные + заметки об их привязке к хостам, секреты проекта, loot,
findings + шаблоны, заметки + вложения, objectives,
tasks/remediations/evidence/identities, события timeline (аудит),
networks/nodes/edges/regions, таблицы attack-path, entity links,
статьи KB, сниппеты, jobs + прогоны плейбуков/кастомные
плейбуки/расписания/operation packs, снапшоты сканов и проектов,
surface watches, decommission-отчёты.
EE-runtime (схема общая, пишут только EE-роутеры)¶
infra providers/nodes/templates/blueprints/stacks/services/tokens/ links/credentials/agent builds/file shares/operator access/deploy steps/devops log; зоны/записи DNS; SSL-сертификаты; шаблоны workstation/пул/доступ/события; управляемые экземпляры (managed instances) + instance credentials (шифруются).
Сквозные¶
sync_state/sync_events/conflict_records (sync между экземплярами),
license_tokens/instance_license_state, чаты/сообщения/аудит AI,
автоматизации + прогоны, загрузки конфигов файрволов, уведомления,
системные логи, proxy endpoints/routes, установленные плагины,
project_encryption_keys (per-project DEK).
Чувствительные колонки (шифрование at rest)¶
Шифруются глобальным Fernet-ключом (сентинел __enc__:) или
per-project DEK (__pdek__:):
creds.secret(per-project DEK),project_secrets.value_encnotes.contentс конфиденциальными тегами, чувствительныеloots.value; loot-файлы на диске- токены/пароли C2-интеграций в
global_settings oidc_providers.client_secret,users.totp_secret- учётные данные/подключения infra-провайдеров, учётные данные сервисов инфры, instance credentials (EE)
- приватная половина платформной SSH-пары ключей, пароли прокси
Доступ к расшифрованным значениям ограничен правами и аудируется — см. Обзор безопасности.
Миграции¶
Alembic, ~106 ревизий, исполняются автоматически при старте бэкенда
(upgrade head; пропускается при APP_ENV=test). ER-диаграмма не
поставляется; источник истины — backend/app/models/ и
backend/alembic/versions/.
Практические заметки операторам¶
- Создавайте резервные копии БД вместе с
DATA_DIRи.env— см. Резервное копирование и восстановление - Read-replica подключается через
DATABASE_REPLICA_URLдля тяжёлых списочных эндпоинтов DATABASE_STATEMENT_TIMEOUT(по умолчанию 30 с) ограничивает убежавшие запросы