Skip to content

fix(audit): align AccountExpired/Deleted severities; bump AuthLoginSuccess to Notice#23

Merged
rrrodzilla merged 1 commit into
mainfrom
fix/audit-severity-alignment
May 28, 2026
Merged

fix(audit): align AccountExpired/Deleted severities; bump AuthLoginSuccess to Notice#23
rrrodzilla merged 1 commit into
mainfrom
fix/audit-severity-alignment

Conversation

@rrrodzilla

Copy link
Copy Markdown
Contributor

Summary

Two severity inconsistencies from #19.

  • AccountExpired was emitted at Notice while AccountDeleted (a parallel terminal account state) was emitted at Warning. Operators wiring an "any final-state account event" alert had to remember which kind carried which level. Aligned AccountExpired to Warning.
  • AuthLoginSuccess was emitted at Informational (syslog 6), a level most production log pipelines suppress by default. Failures fire at Warning, so the success/failure ratio that drives many login-anomaly alerts had a silently empty numerator unless operators specifically lowered their threshold. Bumped to Notice (syslog 5) to match account-unlock and key-rotation choices.

Closes #19.

Breaking-ish

Severity levels are observable to downstream alerting. Downstream filters keyed on the old levels need recalibration. Call out in release notes.

Test plan

  • cargo clippy -p acton-service --all-targets --features full -- -D warnings — clean
  • cargo clippy -p acton-service --all-targets --no-default-features --features "full,crypto-ring" -- -D warnings — clean
  • cargo nextest run -p acton-service --features full — 520/520 pass

…ccess to Notice

Two severity inconsistencies surfaced during the audit-events review.

- AccountExpired was emitted at Notice while AccountDeleted (a parallel
  terminal account state) was emitted at Warning. Operators wiring an
  "any final-state account event" alert had to remember which kind
  carried which level. Aligned AccountExpired to Warning.

- AuthLoginSuccess was emitted at Informational (syslog 6), a level
  most production log pipelines suppress by default. The failure
  counterpart fires at Warning, so the success/failure ratio that
  drives many login-anomaly alerts had a silently empty numerator
  unless operators specifically lowered their threshold. Bumped to
  Notice (syslog 5) to match account-unlock and key-rotation choices.

Closes #19
@rrrodzilla rrrodzilla merged commit e6749ee into main May 28, 2026
2 checks passed
rrrodzilla added a commit that referenced this pull request May 28, 2026
Reflects the audit-event work that landed in #14, #21, #22 and is
queued in #23, #25:

- audit/page.md: rewrite the "Auth Events (Automatic)" table to match
  the new emission set (AuthLoginSuccess at Notice; AuthTokenMissing /
  AuthTokenInvalid added; AuthTokenRevoked notes jti metadata;
  AuthPermissionDenied and HttpRequestDenied added); update the
  syslog and OTLP example severities to Notice; expand the "Event
  Kinds" reference table; add a migration callout for AuthLoginFailed.
- cedar-auth/page.md: add "Audit Integration" section describing
  automatic AuthPermissionDenied emission on Decision::Deny.
- rate-limiting/page.md: add "Audit Integration" section describing
  automatic HttpRequestDenied emission on RateLimitExceeded.
- token-auth/page.md: add "Audit Emission" section covering the four
  middleware-emitted kinds, the jti correlation field, and the
  AuthLoginFailed migration.

Refs #13 #15 #16 #18 #19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

audit: AuditSeverity inconsistencies across same-shape events

1 participant