Audit hash-chain verify post-rotation

## Что это Audit log rotation: при достижении 500MB на single SQLite файл, текущий файл закрывается с финальным `chain-tail-hash`, archived в `~/.rox/audit/archive/audit-.db`, новый файл стартует с `genesis-row` ссылающимся на predecessor's tail-hash. Эта схема создаёт verifiable chain между файлами. Verify-команда `rox audit verify [--from=] [--to=]`: 1. Identify файлы in range 2. For each: compute row-by-row hash, compare с stored 3. Cross-file: tail-hash file N == genesis-prev-hash file N+1 4. Report mismatches с row-id и hash-diff Компоненты: `packages/audit/verifier`, CLI hook через `@rox-one/cli`. Performance: 500MB → verify ≤ 30s через streaming read. ## Зачем Post-rotation verify — критичный operational primitive для compliance audit. SOC2 typer-2 auditor может потребовать proof, что N лет логов нетронуты — без cross-file chain verification ответ «trust us» неубедителен. Это T221 retention + post-rotation hash-chain verify. ## Источники вдохновения - [databendlabs/databend](https://github.com/databendlabs/databend) — analytical warehouse с verifiable chain patterns - [agisota/bslog](https://github.com/agisota/bslog) — CLI для Better Stack логов в ClickHouse-SQL стиле - [Siddhant-K-code/agent-trace](https://github.com/Siddhant-K-code/agent-trace) — strace-style queryable trace API ## 🔗 Linear - [PZD-429](https://linear.app/kuhjie/issue/PZD-429) — backing ticket

Please authenticate to join the conversation.

Upvoters
Status

In Review

Board
🏢

Enterprise, B2B

Date

About 19 hours ago

Author

agi

Subscribe to post

Get notified by email when there are changes.