1.9 KiB
1.9 KiB
Runbook: Audit Retention (Sofiia Console)
Ціль: контролювати ріст SQLite (sofiia.db) через регулярний prune старих audit_events.
Default policy
SOFIIA_AUDIT_RETENTION_DAYS=90(safe default)- Працює для
audit_events.ts < now - retention_days.
Dry-run (рекомендовано перед виконанням)
python3 ops/prune_audit_db.py --dry-run
Override шляху/періоду:
python3 ops/prune_audit_db.py --data-dir "/app/data" --retention-days 90 --dry-run
Виконання prune
python3 ops/prune_audit_db.py --batch-size 5000
З VACUUM після видалення:
python3 ops/prune_audit_db.py --batch-size 5000 --vacuum
CLI параметри
--data-dir— шлях доSOFIIA_DATA_DIR(якщо не заданий, бере env або/app/data).--retention-days— override retention (SOFIIA_AUDIT_RETENTION_DAYSабо 90).--batch-size— розмір батчу видалення (default5000).--dry-run— лише звіт, без видалення.--vacuum— VACUUM після видалення.--yes— reserved no-op (для майбутнього interactive safeguard).
Exit codes
0— OK1— error (DB path/schema/permissions/SQL)
Перевірка розміру DB
du -h "${SOFIIA_DATA_DIR:-/app/data}/sofiia.db"
Приклад cron (щонеділі вночі, 03:30 UTC)
30 3 * * 0 cd /opt/microdao-daarion && SOFIIA_DATA_DIR=/app/data SOFIIA_AUDIT_RETENTION_DAYS=90 /usr/bin/python3 ops/prune_audit_db.py --batch-size 5000 >> /var/log/sofiia-audit-prune.log 2>&1
Порядок безпечного запуску
--dry-run- перевірка candidates/min/max ts
- реальний prune
- опційно
--vacuumу low-traffic вікні