Reliable multi-tenant auto setup audit capability
Find a file
tegwick 7728fde9b4
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s
AUDIT-WP-0018-T02 done: nk-bounded-executor sender scope and sso ingress prepared
- deploy/senders-scope.{json,yaml}: nk-bounded-executor (source
  net-kingdom.bounded-executor, tenants [platform], write-only,
  secret_policy reject, load-bearing); inert until a token is seeded
- senders.py: the scope overlay may tighten secret_policy redact->reject,
  never relax it
- networkpolicies.yaml: audit-core-nk-bounded-executor-ingress (sso AND
  app.kubernetes.io/name=bounded-executor, TCP 8080); not applied
- tests on the executor's envelope shape: 202, 200 duplicate, 409, wrong
  source/tenant, secret-shaped step check 400
- T03 unblocked (window bound = admission window.not_after)
- docs: emitter defect: executor AuditCore.emit rejects 202

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 5502@bnt-lap001
Assistant-Session: 68b3b02f-5d0f-4e71-8421-796f62e50196
2026-10-31 23:02:44 +01:00
.claude/rules docs: workplan-first agent guidance prose (CUST-WP-0055 T04 batch 5) 2026-07-08 19:50:55 +02:00
.forgejo/workflows Add Forgejo CI smoke workflow (enablement template) 2026-07-08 12:28:40 +02:00
.repo-manager Track repo-manager index and the TAMQ introduction 2026-08-29 14:45:26 +02:00
audit_core AUDIT-WP-0018-T02 done: nk-bounded-executor sender scope and sso ingress prepared 2026-10-31 23:02:44 +01:00
data/capability Implement AUDIT-WP-0007 hash-chain integrity. 2026-08-16 01:18:30 +02:00
deploy AUDIT-WP-0018-T02 done: nk-bounded-executor sender scope and sso ingress prepared 2026-10-31 23:02:44 +01:00
docs AUDIT-WP-0018-T02 done: nk-bounded-executor sender scope and sso ingress prepared 2026-10-31 23:02:44 +01:00
evidence Make the failure matrix an executable harness 2026-08-10 17:49:32 +02:00
history Record v0.8 section 11 review and A11 r2 / A12 r3 assent 2026-09-23 11:56:26 +02:00
intakes fix: repair chained imports and track blocked evidence dependencies 2026-10-04 11:36:06 +02:00
registry Declare the live release units for this owner. 2026-10-23 15:49:51 +02:00
scripts Prepare guarded cadence registry updates and Qonto receiver admission 2026-10-15 21:19:05 +02:00
spec Added PRD for what we want to do 2026-06-01 23:38:26 +02:00
tests AUDIT-WP-0018-T02 done: nk-bounded-executor sender scope and sso ingress prepared 2026-10-31 23:02:44 +01:00
workplans AUDIT-WP-0018-T02 done: nk-bounded-executor sender scope and sso ingress prepared 2026-10-31 23:02:44 +01:00
.dockerignore Prepare railiance01 delivery: dynamic leases, migrate Job, operator runbook 2026-08-13 00:58:49 +02:00
.generated-work-records.json Adopt staged WORK-RECORDS generation and catch the index up. 2026-10-28 00:30:37 +01:00
.generated-work-records.mk Adopt staged WORK-RECORDS generation and catch the index up. 2026-10-28 00:30:37 +01:00
.gitignore chore: keep generated orientation brief local 2026-10-21 12:12:27 +02:00
.repo-classification.yaml Human-review .repo-classification.yaml (CUST-WP-0050 follow-up) 2026-06-22 17:56:17 +02:00
AGENTS.md docs(agents): repoint remote State Hub URL to the in-cluster address 2026-08-25 00:20:39 +02:00
CLAUDE.md Normalize agent instructions and workplan frontmatter (STATE-WP-0067) 2026-06-22 23:16:24 +02:00
Containerfile Prepare compatible audit receiver with verified container lifecycle 2026-09-11 06:46:15 +02:00
INTENT.md Apply GH-DEC-2026-020: de-version the INTENT.md standard: path. 2026-09-21 09:36:37 +02:00
layer.yaml Apply GH-DEC-2026-017 to audit-core's layer declaration. 2026-09-21 07:34:00 +02:00
LICENSE Adopt Target Revenue Source License V1C1 (org-wide preliminary rollout) 2026-07-29 23:53:10 +02:00
Makefile Retain narrow migration egress and pin cadence-capable receiver release 2026-10-15 21:32:15 +02:00
pyproject.toml Add the PostgreSQL audit backend and a shared conformance suite 2026-08-10 17:09:46 +02:00
README.md Prepare railiance01 delivery: dynamic leases, migrate Job, operator runbook 2026-08-13 00:58:49 +02:00
requirements.lock Prepare compatible audit receiver with verified container lifecycle 2026-09-11 06:46:15 +02:00
SCOPE.md Adopt staged WORK-RECORDS generation and catch the index up. 2026-10-28 00:30:37 +01:00
TamqMessagingIntroduction.md Track repo-manager index and the TAMQ introduction 2026-08-29 14:45:26 +02:00
tenancy.yaml Publish authoritative E2 owner and original evidence expiry 2026-10-15 19:29:39 +02:00
WORK-RECORDS.md AUDIT-WP-0018-T02 done: nk-bounded-executor sender scope and sso ingress prepared 2026-10-31 23:02:44 +01:00

Reliable multi-tenant auto setup audit capability

Production on railiance01 (AUDIT-WP-0005): PostgreSQL custody, digest-pinned image, operator procedures in docs/operator-runbook.md. Manifests live in deploy/.

Backend contract

The pluggable backend interface, event schema (audit-core.event.v1alpha1), retention policy, and migration path from the mock file backend are documented in docs/audit-backend-contract.md.

Development Mock Backend

The first implementation is intentionally tiny: a replaceable audit interface with a mock file backend.

By default it writes JSONL audit events to:

/tmp/audit-core/audit-YYYYMMDDTHH.jsonl

Files older than 7 days are removed when the backend writes or when cleanup is run explicitly. This backend is for local integration and bootstrap wiring. It is not durable audit custody.

Example:

python3 -m audit_core emit \
  --source openbao \
  --action openbao.authenticated_readiness_proof \
  --resource openbao/openbao-0 \
  --outcome success \
  --detail file_audit_visible=true \
  --detail backend=mock-file

Cleanup:

python3 -m audit_core cleanup

Make targets:

make test
make mock-audit-smoke
make mock-audit-cleanup

Environment:

  • AUDIT_CORE_MOCK_DIR: override the output directory.
  • AUDIT_CORE_MOCK_RETENTION_DAYS: override the default 7-day cleanup window.