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
Fill the reserved identity audit dimension: move owner facts out of reason strings into a typed dimension, without a resolution write path and without persisting raw identifiers.
Add audit kinds for bootstrap binding and owner-config-mismatch rejection (beyond the single identity.bound kind), emitted through with_audited_effect.
Identifiers stay hash-only (identity_identifiers.value_hash); no raw identifier is ever persisted.
Rationale in spec #208 (decision D-007). Aligns to typed-owner-identity spec #197 D-003 (audit actor dimension). Independent of the T6 conn flip.
Verification
./scripts/check.sh green. Test: an identity.bound (and the new kinds) event carries actor = Some(principal_id); resolution remains read-only; no raw identifier appears in any persisted row.
🤖 Generated from spec #208 (wayfinder #189, map #182).
Parent
#208 (Spec: deepened Store interface)
Blocked by
#215 (with_audited_effect), #201 (Retype ApprovalRecord.approved_by and add AuditEvent.actor — typed owner identity spec #197)
Deliverables
Fill the reserved identity audit dimension: move owner facts out of reason strings into a typed dimension, without a resolution write path and without persisting raw identifiers.
AuditEvent.actor: Option<PrincipalId>(delivered by Retype ApprovalRecord.approved_by and add AuditEvent.actor #201) instead of thestore/identity.rs:245identity.boundreason stringowner={} identity={}.identity.boundkind), emitted throughwith_audited_effect.get_identity,principal_exists) stay read-only — no write path added.identity_identifiers.value_hash); no raw identifier is ever persisted.Rationale in spec #208 (decision D-007). Aligns to typed-owner-identity spec #197 D-003 (audit actor dimension). Independent of the T6 conn flip.
Verification
./scripts/check.shgreen. Test: anidentity.bound(and the new kinds) event carriesactor = Some(principal_id); resolution remains read-only; no raw identifier appears in any persisted row.🤖 Generated from spec #208 (wayfinder #189, map #182).