You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bearer auth (M-PR7 / P0-1/P0-4) identifies the single-tenant operator when configured, but campaign records do not store a durable “who attested / when” principal beyond an event payload flag.
Why it matters
For Hosted safe-mode and audits, “checkbox true” is weak. Strengthening toward logged attestation metadata is the contributor-sized step without inventing multi-tenant AuthZ or bringing back customer exec.
Proposed direction
Extend start/ingest attestation to accept an optional non-empty attestation_note or require attested_at server-side timestamp always.
Persist on campaign config / events: {attestation: true, attested_at, token_fingerprint?} (hash of bearer, never raw token).
Document in SECURITY.md that AuthZ remains “holds MUTINY_API_TOKEN” for single-tenant; attestation is operator acknowledgment, now auditable.
Acceptance criteria
Campaign start stores attestation timestamp (and optional note) in config or events
Raw API token never logged or stored
Tests for reject-when-false unchanged; new assert on persisted metadata
Docs updated (SECURITY / PRODUCTION_READINESS P1-1 status note)
No multi-tenant redesign; no customer exec_module
Testing expectations
uv run pytest tests/integration/test_api_hosted_auth.py tests/unit/… -q + new cases
Opened PR #133 to fix #32. Campaign starts and ingest now persist server-generated attestation timestamps. Retries preserve the original timestamp, and no bearer token is stored in attestation metadata. Security docs updated; 740 tests and Ruff pass.
Activity
BasilZafar11 commentedon Oct 22, 2026
Opened PR #133 to fix #32. Campaign starts and ingest now persist server-generated attestation timestamps. Retries preserve the original timestamp, and no bearer token is stored in attestation metadata. Security docs updated; 740 tests and Ruff pass.
#133
fix(api): persist server attestation timestamps for Hosted campaigns …