mirror of
https://github.com/penpot/penpot.git
synced 2026-10-29 05:50:35 +00:00
* ♻️ Archive audit log from a pending queue with two jobs Replace the mark-and-sweep audit archive with a pending queue (audit_log_pending, migration 0157): every row is born pending for the archivers enabled at insert time, in the same transaction, so a rollback takes both. Two jobs share one namespace, one queue each: :audit-log-archive-nexus and :audit-log-archive-nitrate, each with its own closed params schema, deps and every-5m cron entry gated by its send flag. Each job drains its queue oldest-first in 128-row chunks (one transaction per chunk, same total order, no SKIP LOCKED so arrival stays chronological) and deletes its pendings on completion; whoever deletes the last pending deletes the row. Housekeeping lives in both jobs: reap of disabled pendings plus sweep of orphans, both idempotent. A refused chunk raises :archive-chunk-refused and aborts the job; the cron retries. No separate GC task. Metrics with bounded labels only: archived/failed/skipped per destination, discarded per reason (reaped pendings, swept rows: the silent R3 loss, now dashboard-visible). Timing comes from the jobs substrate; queue depth is read off the replica DB. No gauge, no custom histogram. Destination hosts log once at job-def init; per-run logs carry counts plus frozen elapsed (log props evaluate lazily in the logger thread). Pre-existing rows are swept unsent (no backfill, accepted loss); rows born with no archiver on share that fate (R3). Memory mem:audit-log documents the design. AI-assisted-by: muse-spark-1.3-contributor * ♻️ Address review comments on audit log archive jobs Rename the second archive destination from nitrate to admin-console (jobs, metric and log labels, error code), reusing the :admin-console flag. Unify the pending-queue insert into a single helper used by both producers. Stagger the archive crons (Nexus at second 0, admin console at second 30). Add per-call dbg logs to the admin-console send. Update the audit-log memory and the affected tests. Closes #12372 AI-assisted-by: muse-spark-1.3-contributor