approval-engine/tests
tegwick 31da1af5e4 Record the verified principal type on approver entries (schema v4)
An entry stored subject_id, assurance and evidence_ref but nothing about
what kind of principal bound the approval, and subject_id is a naming
convention rather than a verified claim. /entries is not restricted by
principal type — only /consume is — and the approval-engine-operator
client holds approval:approve, so a service can supply approver evidence
today. Whether it may is gate-house doctrine; that it is legible is ours.

Add entries.principal_type, populate it from the verified token, surface
it on the object and the audit evidence path (not the claim, which stays
least-disclosure), and migrate v3 stores leaving legacy rows null rather
than back-filling a claim nobody made.

Also corrects two statements in the requirements issued to
informed-decision: agent tokens are not barred from approval:approve, and
an empty assurance object is accepted rather than refused.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HyybaE7DUXrWYrhbnESCTe

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 1275879@bnt-lap001
Assistant-Session: eb464208-f821-41b2-bc5a-a6c33d92a8ad
2026-09-09 14:09:54 +02:00
..
conftest.py Set the approval store tenant to exact tenant:platform 2026-09-06 22:33:50 +02:00
test_api.py Implement approval engine production readiness 2026-09-02 00:52:04 +02:00
test_audit.py docs(admission): resolve approval audit tenant and redaction inputs 2026-09-08 17:01:42 +02:00
test_auth.py Record the verified principal type on approver entries (schema v4) 2026-09-09 14:09:54 +02:00
test_cadence.py Implement the engine spine: claim, outbox, machine, API 2026-08-29 12:52:49 +02:00
test_cas.py Record the verified principal type on approver entries (schema v4) 2026-09-09 14:09:54 +02:00
test_claim_contract.py Implement the engine spine: claim, outbox, machine, API 2026-08-29 12:52:49 +02:00
test_cli.py Harden the PEP harness and KeyCape registration request 2026-09-02 15:46:06 +02:00
test_deploy_manifest.py Reconcile the release record; guard the image pin with tests 2026-09-07 09:04:34 +02:00
test_examples.py Publish the valid-but-unbound claim; the missing shape was confounded 2026-09-07 13:48:00 +02:00
test_machine.py Implement the engine spine: claim, outbox, machine, API 2026-08-29 12:52:49 +02:00
test_outbox.py Carry threshold evidence on issuance and use events 2026-09-06 08:10:21 +02:00
test_pep.py Set the approval store tenant to exact tenant:platform 2026-09-06 22:33:50 +02:00
test_storage.py Implement approval engine production readiness 2026-09-02 00:52:04 +02:00
test_t06_replay.py Finish approval engine spine 2026-09-01 23:45:48 +02:00