Безопасность и аудит¶
🚧 Draft. Скелет по стандарту index.md §4 /
_meta/_TEMPLATE.ru.md.Как Axon защищает данные и делает решения объяснимыми: RBAC + object/project scope + policy pre-check + budget check до каждого side effect; все мутации через CommandEnvelope; append-only audit. Этот мануал — операционный взгляд для пользователя, не дизайн.
1. Что это и зачем¶
TODO — «безопасность до выполнения» (инвариант 4): write-команда = RBAC + object-scope + project-scope + policy pre-check (+ budget check) ДО side effect; «прозрачность — условие доверия» (инвариант 9): каждое автоматическое решение объяснимо оператору; «надёжность — фундамент» (инвариант 1): PostgreSQL = SoT, данные не теряются.
2. Роли и доступ¶
TODO — кто видит audit (read + project access; некоторые срезы — admin+); breakglass (owner-only); replay (admin+). Ссылка на полную матрицу — Roles-And-Permissions.md.
3. Где это в Console¶
TODO — где смотреть audit log / policy decisions / side effect log (раздел Incidents? отдельный Audit-вьюер?); как от run'а/команды дойти до её audit-следа; индикатор «кто что сделал».
4. Концепции (mental model)¶
TODO — schemas: audit.audit_log (append-only, target_type ∈ project/workflow/credential/connector_instance/…), audit.policy_decisions, audit.side_effect_log; CommandEnvelope (всё через команды; sync_apply vs apply_then_signal vs worker_apply_then_signal); outbox (только audit/read-model/cache/alert delivery, НЕ command routing); object-scope vs project-scope.
5. Флоу: пошаговые сценарии¶
TODO — «расследовать: кто изменил X»; «понять, почему действие заблокировано» (policy decision); «найти все side effects run'а»; «breakglass-доступ и его след в audit».
6. Справочник опций¶
TODO — target_type значения; категории policy decisions; что фиксируется в side_effect_log.
7. Жизненный цикл и обслуживание¶
TODO — retention audit (90d для credential purge cutoff и т.п.); append-only — ничего не удаляется в обычном режиме; rebuildable read models.
8. Траблшутинг¶
TODO — «действие заблокировано без объяснения» → смотри policy_decisions (причина там, не в ответе API); «нет audit-записи» → возможно не дошло до handler'а; «секрет утёк в лог?» → не должен (≤500 chars compact errors, no token leak) — если да, инцидент.
9. Ограничения и инварианты¶
TODO — PostgreSQL = SoT, Temporal = orchestration, Redis = transient only (не ломать); не обходить CommandEnvelope / policy gate / approval / audit / outbox; durable credential KEK (AXON_CREDENTIAL_ENCRYPTION_KEY) — worker/maintenance only (I-1); ingress key (AXON_INGRESS_VERIFICATION_KEY) отдельный, не пересекается; секреты не в git/prompts/UI/console config/frontend bundle; аудит, не дошедший до уровня объяснения, — журнал, а не объяснение (инвариант 9).
10. Связанные мануалы и каноны¶
- Roles-And-Permissions.md, Connectors-Credentials.md §9, Approvals.md, Undo-And-Compensation.md
- Каноны:
ARCHITECTURE-V6.md(Безопасность, audit),VISION.md§7,RULES-CODDING-DEVOPS.md§4.7,core/models/auth.py.