Admit exact EUR 10 single-attempt proof memo for human review
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 3s
Build and Publish Container Image / build-and-push (push) Successful in 1m44s

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a0e387-534d-70e3-ad53-4ea05676db8c
This commit is contained in:
tegwick 2026-09-27 18:44:59 +02:00
parent 4640c15bbd
commit 331d8c3979
2 changed files with 62 additions and 1 deletions

View file

@ -2,7 +2,7 @@
id: informed-decision.compact-sitting
name: Compact sitting exact-record human review
namespace: informed-decision:decision-memo
version: v3
version: v4
status: ready
package: flexauth.informed_decision.compact_sitting
allow_ttl: 30s
@ -45,6 +45,11 @@ rule, not an extra member of the act set, and it changes nothing else:
- The KeyCape stale-timestamp defect (`INFD-IN-0005`) is **not** worked around
here. `read` stays strict; that defect is key-cape's to fix.
v4 (2026-09-27, REINAH-WP-0003-T06) adds exactly one record for the
EUR 10 single-attempt tool proof. Native pins come from informed-decision
`docs/evidence/2026-09-27-tool-budget-approval-create.json`. Existing records,
actions and identity requirements remain unchanged.
The identity bar matches T03: authenticated informed-decision caller,
`net-kingdom-admins`, fresh KeyCape AAL2 MFA. No permission follows from
memo content or presentation state. TokenReview must admit
@ -89,6 +94,10 @@ records := {
"memo:infd-20260921-b01": {
"approval_id": "ba5ce2d8-8b6d-40be-af89-2e8c147029a3",
"binding_digest": "sha256:e9eaf454e94871ec2060855fcfbd327bcaec873d2c61cae031bec9f95a34bcae"
},
"memo:infd-20260927-b01": {
"approval_id": "e9521804-8fce-4fbc-bfdf-8a1aa959fd61",
"binding_digest": "sha256:7aefcee9b79eb3285997066b323ae1772e13d58f875aacc6eb5e9407bd1c1185"
}
}
@ -194,4 +203,39 @@ test_t03_records_not_in_act_scope if {
not compact_sitting.records[id]
}
}
tool_proof_input := {
"tenant": "tenant:platform",
"subject": {"id": "test-human", "type": "human", "tenant": "tenant:platform",
"attributes": {"principal_type_source": "authentication-derived",
"tenant_source": "registration-supplied", "groups": ["net-kingdom-admins"],
"assurance": {"level": "aal2", "mfa": true, "source": "key-cape",
"methods": ["pwd", "otp"], "at": time.now_ns() / 1000000000}}},
"resource": {"tenant": "tenant:platform", "system": "informed-decision",
"type": "decision-memo", "id": "memo:infd-20260927-b01"},
"action": "accept",
"context": {"memo_version": 1,
"approval_id": "e9521804-8fce-4fbc-bfdf-8a1aa959fd61",
"approval_binding_digest": "sha256:7aefcee9b79eb3285997066b323ae1772e13d58f875aacc6eb5e9407bd1c1185"},
}
test_tool_proof_exact_record_allowed if {
compact_sitting.decision.effect == "allow" with input as tool_proof_input
}
test_tool_proof_wrong_native_id_denied if {
compact_sitting.decision.effect == "deny" with input as tool_proof_input
with input.context.approval_id as "another-approval"
}
test_tool_proof_wrong_digest_denied if {
compact_sitting.decision.effect == "deny" with input as tool_proof_input
with input.context.approval_binding_digest as "sha256:wrong"
}
test_tool_proof_without_mfa_denied if {
compact_sitting.decision.effect == "deny" with input as tool_proof_input
with input.subject.attributes.assurance.mfa as false
}
```

View file

@ -134,5 +134,22 @@
}
},
"memo_version": 1
},
"memo:infd-20260927-b01": {
"approval_id": "e9521804-8fce-4fbc-bfdf-8a1aa959fd61",
"binding_digest": "sha256:7aefcee9b79eb3285997066b323ae1772e13d58f875aacc6eb5e9407bd1c1185",
"label": "20260927-b01",
"binding": {
"action": "accept",
"actor": "informed-decision",
"principal": "helixforge-factory",
"purpose": "Accept one EUR 10 metered tool proof; no retry or publication; 2026-09-27T16:35:00Z through 2026-09-27T17:35:00Z",
"target": {
"id": "spend-envelope:hfact-glas-tool-proof-20260927-one-attempt",
"system": "rein-aharness",
"type": "spend-envelope"
}
},
"memo_version": 1
}
}