Summary
There is no record of who changed routing state, when, or how — making incident review and compliance impossible. Add an append-only audit log capturing every mutation.
Why this matters
Without an audit trail, you cannot investigate incidents or prove correctness. An append-only log is the standard, queryable primitive.
Requirements
- Record an entry for every state-changing routing operation: actor, action, target, before/after summary, timestamp.
- Entries are append-only and immutable; never updated or deleted.
- Provide a query by target id and by actor, with pagination.
- Redact secrets/PII from recorded payloads.
Technical guidance
- Write the audit entry in the same unit of work as the mutation.
- Keep the entry schema stable and versioned.
Edge cases — each must have a test
Acceptance criteria
Out of scope
- Tamper-proofing / hash chaining
- External SIEM export
Rewards
Part of the GrantFox OSS / Official Campaign (FWC26) — this task may be rewarded. PR quality is assessed by AI: depth, correctness under edge cases, meaningful tests, and clean design are what earn the reward. Shallow changes (typos, formatting, trivial docs) do not qualify.
Summary
There is no record of who changed routing state, when, or how — making incident review and compliance impossible. Add an append-only audit log capturing every mutation.
Why this matters
Without an audit trail, you cannot investigate incidents or prove correctness. An append-only log is the standard, queryable primitive.
Requirements
Technical guidance
Edge cases — each must have a test
Acceptance criteria
npm run lint,npm test, andnpm run buildall pass locallyCloses #<issue>Out of scope
Rewards
Part of the GrantFox OSS / Official Campaign (FWC26) — this task may be rewarded. PR quality is assessed by AI: depth, correctness under edge cases, meaningful tests, and clean design are what earn the reward. Shallow changes (typos, formatting, trivial docs) do not qualify.