Admit the 0.2.6 profile memo as one exact sitting record.
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Build and Publish Container Image / build-and-push (push) Successful in 1m25s

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:
tegwick 2026-10-04 01:59:06 +02:00
parent 05bd6db071
commit 103d8b6218
4 changed files with 33 additions and 5 deletions

View file

@ -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": [
{

View file

@ -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"

View file

@ -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",

View file

@ -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}