feat(audit): add terminal operation lifecycle - #74
Open
P4ST4S wants to merge 1 commit into
Open
Conversation
|
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
This was referenced Aug 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Introduce the audit operation lifecycle primitives required by v1.2.0: UUIDv7 correlation IDs, explicit terminal outcomes, and a concurrency-safe exactly-once finalizer shared by HTTP and stdio transports.
Persist the additive fields in JSONL and SQLite, including migrations for existing SQLite databases, and document the v1.2 security invariants.
Context
Foundation for #69 and #73.
Approach
audit_operation_idwhen a request enters the proxyaudit.Operation.Finalizesuccess,denied,rate_limited, and upstream JSON-RPC error outcomes in the existing completed pathsTransport failure finalization remains in the dedicated follow-up PRs for #69.
Test plan
go test -race ./internal/audit/... ./internal/proxy/...go test -race ./...go build ./...go vet ./...All commands pass.
Stability impact
Adds the optional
audit_operation_idandoutcomefields to the stable audit JSON schema. Existing fields and the legacysignaturesigned field set are unchanged.Existing SQLite databases are migrated additively with nullable columns, so legacy rows remain readable.
Notes for reviewer
The finalizer deliberately marks an operation complete only after durable store append succeeds. This prevents duplicate successful writes while preserving the ability to retry a transient audit storage failure.