Admit the 0.2.6 profile memo as one exact sitting record.
Version v9 pins approval 05751e09-3a5b-4a41-a4e8-b79e96de6484. Existing records stay, and the empty attribute sets still admit nobody. Assistant: grok Assistant-Session: 01a10286-9185-7bb2-b411-89cf6ab4c0c6
This commit is contained in:
parent
05bd6db071
commit
103d8b6218
4 changed files with 33 additions and 5 deletions
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"policy_id": "informed-decision.compact-sitting",
|
||||
"policy_version": "v8",
|
||||
"policy_version": "v9",
|
||||
"note": "Offline request/response fixtures. Shipped admitted sets are empty, so attribute_eligible is not in this file. An allow here is an exact-record pin, not proof of a live approval.",
|
||||
"cases": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
id: informed-decision.compact-sitting
|
||||
name: Compact sitting exact-record human review
|
||||
namespace: informed-decision:decision-memo
|
||||
version: v8
|
||||
version: v9
|
||||
status: ready
|
||||
package: flexauth.informed_decision.compact_sitting
|
||||
allow_ttl: 30s
|
||||
|
|
@ -81,6 +81,13 @@ hash is read. Context fields are `review_group`, `memo_class`,
|
|||
`intake_submitter`, `approval_requester`, `approval_human_control`,
|
||||
`memo_version`, `approval_id` and `approval_binding_digest`.
|
||||
|
||||
v9 (2026-10-04, EMERGENT-WP-0002 profile adoption) adds exactly one record,
|
||||
`memo:emergent-profile-adoption-0-2-6`. Native pins come from informed-decision
|
||||
`docs/evidence/2026-10-04-emergent-profile-approval-create.json`, approval
|
||||
`05751e09-3a5b-4a41-a4e8-b79e96de6484`. Existing exact records stay. The v8
|
||||
attribute branch remains beside them and still admits nobody, because the
|
||||
shipped submitter and class sets are empty.
|
||||
|
||||
`admitted_submitters` and `admitted_classes` are generated from
|
||||
informed-decision `deploy/intake-submitters.json`. The shipped registry is
|
||||
empty, so both sets are empty and this branch admits nobody. Regenerate with
|
||||
|
|
@ -103,6 +110,10 @@ records := {
|
|||
"approval_id": "706f4205-aaa7-44f6-be30-d0f57664d69c",
|
||||
"binding_digest": "sha256:c8a1a9c8fb22616e3aacfb877ba7974feb5eedaed491f856a6c90719c502ebe4"
|
||||
},
|
||||
"memo:emergent-profile-adoption-0-2-6": {
|
||||
"approval_id": "05751e09-3a5b-4a41-a4e8-b79e96de6484",
|
||||
"binding_digest": "sha256:7843e660694dcd7c806dc02ee0cca05dd3a96488f614b1946291496259a02001"
|
||||
},
|
||||
"memo:infd-20260914-c02": {
|
||||
"approval_id": "ccfd8007-2061-48fd-9356-99b16279dac1",
|
||||
"binding_digest": "sha256:942cf7d5e6805987df2077a0cc6cde75b148e1729a96dd0692153287820b6a0a"
|
||||
|
|
|
|||
|
|
@ -339,6 +339,23 @@
|
|||
},
|
||||
"memo_version": 1
|
||||
},
|
||||
"memo:emergent-profile-adoption-0-2-6": {
|
||||
"approval_id": "05751e09-3a5b-4a41-a4e8-b79e96de6484",
|
||||
"binding_digest": "sha256:7843e660694dcd7c806dc02ee0cca05dd3a96488f614b1946291496259a02001",
|
||||
"label": "emergent-profile-0-2-6",
|
||||
"binding": {
|
||||
"action": "accept",
|
||||
"actor": "informed-decision",
|
||||
"principal": "emergent-security",
|
||||
"purpose": "Accept only the non-normative knowledge profile boundary",
|
||||
"target": {
|
||||
"id": "emergent-security:knowledge:0.2.6:8d1d6a9d4d07fec7b619618de7dfe2be2254c1790f85f4198c7fe19db9751c02",
|
||||
"type": "knowledge-profile",
|
||||
"system": "emergent-security"
|
||||
}
|
||||
},
|
||||
"memo_version": 1
|
||||
},
|
||||
"memo:infd-20261003-p01": {
|
||||
"approval_id": "706f4205-aaa7-44f6-be30-d0f57664d69c",
|
||||
"binding_digest": "sha256:c8a1a9c8fb22616e3aacfb877ba7974feb5eedaed491f856a6c90719c502ebe4",
|
||||
|
|
|
|||
|
|
@ -23,8 +23,8 @@ func TestInformedDecisionAttributeAdmission(t *testing.T) {
|
|||
if !pkg.Valid {
|
||||
t.Fatalf("package invalid: %+v", pkg.Validation)
|
||||
}
|
||||
if pkg.Metadata.Version != "v8" {
|
||||
t.Fatalf("version = %s; want v8", pkg.Metadata.Version)
|
||||
if pkg.Metadata.Version != "v9" {
|
||||
t.Fatalf("version = %s; want v9", pkg.Metadata.Version)
|
||||
}
|
||||
if strings.Contains(pkg.RegoModule, "view_hash") {
|
||||
t.Fatal("rule module reads view_hash")
|
||||
|
|
@ -50,7 +50,7 @@ func TestInformedDecisionAttributeAdmission(t *testing.T) {
|
|||
if err := json.Unmarshal(raw, &doc); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if doc.PolicyVersion != "v8" {
|
||||
if doc.PolicyVersion != "v9" {
|
||||
t.Fatalf("fixture policy_version = %s", doc.PolicyVersion)
|
||||
}
|
||||
exactKeys := map[string]bool{"memo_version": true, "approval_id": true, "approval_binding_digest": true}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue