Files
microdao-daarion/docs/runbook/audit-retention.md
2026-03-02 09:47:39 -08:00

66 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 (рекомендовано перед виконанням)
```bash
python3 ops/prune_audit_db.py --dry-run
```
Override шляху/періоду:
```bash
python3 ops/prune_audit_db.py --data-dir "/app/data" --retention-days 90 --dry-run
```
## Виконання prune
```bash
python3 ops/prune_audit_db.py --batch-size 5000
```
З VACUUM після видалення:
```bash
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` — розмір батчу видалення (default `5000`).
- `--dry-run` — лише звіт, без видалення.
- `--vacuum` — VACUUM після видалення.
- `--yes` — reserved no-op (для майбутнього interactive safeguard).
## Exit codes
- `0` — OK
- `1` — error (DB path/schema/permissions/SQL)
## Перевірка розміру DB
```bash
du -h "${SOFIIA_DATA_DIR:-/app/data}/sofiia.db"
```
## Приклад cron (щонеділі вночі, 03:30 UTC)
```cron
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
```
## Порядок безпечного запуску
1. `--dry-run`
2. перевірка candidates/min/max ts
3. реальний prune
4. опційно `--vacuum` у low-traffic вікні