Repository navigation
P0.4: Access/PolicySurface grammar access-policy/1 (proposal for #17) - #19
Conversation
--- [signing-metadata] key = cic-my-sign-key signature = vault:v1:MEQCIDNL/nlzeksKYK5Z9AF4bhKSvNWgSDKfUYuPt+ND+5dzAiAIAquBVbfzmHeXl/hLVRsBr3rUV+gQL4/rP7x5mWtYYg== hash-algorithm = sha256 digest = 1uUujdb5VuX1Q1uwjS/FudiEww57aI6MKzDCd0TrGZ8= [certificate] -----BEGIN CERTIFICATE----- MIICBjCCAaygAwIBAgIUSnRMR6RPnEbg296XWPOqq/u5PCwwCgYIKoZIzj0EAwIw QzELMAkGA1UEBhMCSFUxGTAXBgNVBAoMEENlbnRyYWxJbmZyYUNvcmUxGTAXBgNV BAMMEENJQyBEZXZlbG9wZXIgQ0EwHhcNMjYwMzIwMTMyMjU5WhcNMjYxMjMxMTMy MjU5WjBFMQswCQYDVQQGEwJIVTEZMBcGA1UECgwQQ2VudHJhbEluZnJhQ29yZTEb MBkGA1UEAwwSR2Fib3IgWm9sdGFuIFNpbmtvMFkwEwYHKoZIzj0CAQYIKoZIzj0D AQcDQgAEIG2CVmTfmLB9pLLclj7YmP2eedAjklpy4LGrU2ijoiy6Xqpuybv7OgJe i+ez31s65NEV8+X/ByeX1cstR988z6N8MHowCQYDVR0TBAIwADAdBgNVHQ4EFgQU yZN6AIX/TNnIJ9GwAa/NRN3ujHAwHwYDVR0jBBgwFoAUXn6CHYzPUqU4JVP8g+OS WeDYjhcwDgYDVR0PAQH/BAQDAgeAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEF BQcDBDAKBggqhkjOPQQDAgNIADBFAiEA+bFzXRoJ4PCQbhAAtpkcMjt0vNj5rEW0 lOMBGDNyaWkCIB1vmM7PcZzv/c9bIrxF5kqv6QXomouhByUfeNUTbpKW -----END CERTIFICATE-----
…and gate (proposal, #17) --- [signing-metadata] key = cic-my-sign-key signature = vault:v1:MEYCIQDyEjCSiuDrDqxbbJVjonms1ld4YSM+uw513VzkDm2hxAIhAPFQzRe3+b4lAU7xb1kQWYCJTbftv97AQOL+ibxXPwyf hash-algorithm = sha256 digest = +p0ZQUs8noATyXa4eGue8YMiSZIERY1GCPB3CrlB2uQ= [certificate] -----BEGIN CERTIFICATE----- MIICBjCCAaygAwIBAgIUSnRMR6RPnEbg296XWPOqq/u5PCwwCgYIKoZIzj0EAwIw QzELMAkGA1UEBhMCSFUxGTAXBgNVBAoMEENlbnRyYWxJbmZyYUNvcmUxGTAXBgNV BAMMEENJQyBEZXZlbG9wZXIgQ0EwHhcNMjYwMzIwMTMyMjU5WhcNMjYxMjMxMTMy MjU5WjBFMQswCQYDVQQGEwJIVTEZMBcGA1UECgwQQ2VudHJhbEluZnJhQ29yZTEb MBkGA1UEAwwSR2Fib3IgWm9sdGFuIFNpbmtvMFkwEwYHKoZIzj0CAQYIKoZIzj0D AQcDQgAEIG2CVmTfmLB9pLLclj7YmP2eedAjklpy4LGrU2ijoiy6Xqpuybv7OgJe i+ez31s65NEV8+X/ByeX1cstR988z6N8MHowCQYDVR0TBAIwADAdBgNVHQ4EFgQU yZN6AIX/TNnIJ9GwAa/NRN3ujHAwHwYDVR0jBBgwFoAUXn6CHYzPUqU4JVP8g+OS WeDYjhcwDgYDVR0PAQH/BAQDAgeAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEF BQcDBDAKBggqhkjOPQQDAgNIADBFAiEA+bFzXRoJ4PCQbhAAtpkcMjt0vNj5rEW0 lOMBGDNyaWkCIB1vmM7PcZzv/c9bIrxF5kqv6QXomouhByUfeNUTbpKW -----END CERTIFICATE-----
… grammar version binding, request-context authority (PR #19 review) --- [signing-metadata] key = cic-my-sign-key signature = vault:v1:MEUCIQDnrEmN330Fb2g+qq2q0TfquOHak4P0eQvGz4lluo4YwgIgQnlQ3Mj5AW/a0vwhZn9p6oBsPiZwQSMJenjKdozqOqw= hash-algorithm = sha256 digest = lS/+Mcsdo18KgcdwR+ntMBNxF74Zp6hZxP+ZORmgZt0= [certificate] -----BEGIN CERTIFICATE----- MIICBjCCAaygAwIBAgIUSnRMR6RPnEbg296XWPOqq/u5PCwwCgYIKoZIzj0EAwIw QzELMAkGA1UEBhMCSFUxGTAXBgNVBAoMEENlbnRyYWxJbmZyYUNvcmUxGTAXBgNV BAMMEENJQyBEZXZlbG9wZXIgQ0EwHhcNMjYwMzIwMTMyMjU5WhcNMjYxMjMxMTMy MjU5WjBFMQswCQYDVQQGEwJIVTEZMBcGA1UECgwQQ2VudHJhbEluZnJhQ29yZTEb MBkGA1UEAwwSR2Fib3IgWm9sdGFuIFNpbmtvMFkwEwYHKoZIzj0CAQYIKoZIzj0D AQcDQgAEIG2CVmTfmLB9pLLclj7YmP2eedAjklpy4LGrU2ijoiy6Xqpuybv7OgJe i+ez31s65NEV8+X/ByeX1cstR988z6N8MHowCQYDVR0TBAIwADAdBgNVHQ4EFgQU yZN6AIX/TNnIJ9GwAa/NRN3ujHAwHwYDVR0jBBgwFoAUXn6CHYzPUqU4JVP8g+OS WeDYjhcwDgYDVR0PAQH/BAQDAgeAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEF BQcDBDAKBggqhkjOPQQDAgNIADBFAiEA+bFzXRoJ4PCQbhAAtpkcMjt0vNj5rEW0 lOMBGDNyaWkCIB1vmM7PcZzv/c9bIrxF5kqv6QXomouhByUfeNUTbpKW -----END CERTIFICATE-----
|
Targeted fixes for the review (commit 8551622, Counterexamples, old vs new result (both reproduced on 0b00bf3 first)
Fixes
New vectors ( New seeded faults (all detected, 50/50 total): Results: |
docs: D-018 state after the PR #19 merge
Proposal for the normative closure of #17 (P0.4). Nothing here is an accepted rule until this PR is reviewed and merged. It does not close #17 by itself.
What it contains
proposals/atom-grammar/P0-4-ACCESS-GRAMMAR.md: versioned specaccess-policy/1.P0-4-MIGRATION.md: compatibility and migration rules, downstream consequences.p0-4-contradiction-matrix.md: declared type, default, documented behavior, real corpus use, proposed rule, per element; findings F1-F4.access_policy.py(reference model),access-vectors/(187 positive and negative golden vectors),check_access_vectors.py(gate with 50 seeded faults), wired intomake grammar.local.schemas/atomic/access.yaml,schemas/aggregate/policy-surface.yaml: types and descriptions brought in line;instance-grammar.schema.yamlandcheck_grammar.py: typed node-levelaccessand 4 self-test fixtures.ai/DECISIONS.mdD-018: amendment, D-010/D-011/D-012 text unchanged.Design decisions made here (not proven by earlier text)
InheritanceMode = inherit | no-inherit | reset, spelledtrue | false | 0in grammar 1 (existing documents, read as before) and by name in grammar 2. No mixing, no coercion, explicit lossless migration.no-inheritstops the carrier field's rule but keeps the PolicySurface chain;resetcuts rule, chain and system default and denies without an explicit local base. Demonstrated on one parent/child pair (resolution.diff-field-*: deny / allow / deny) and enforced as a gate rule.[]is terminal,open/ownerare system-layer defaults that never shadow a declared ancestor rule, unknown context is an error, a missing or untrusted owner grants no write.inheritand noinherit_policyother thantrue, so thefalse/0difference is a design checked by vectors, not a measurement.Finding outside this repo
Nine current
cic-schema-registryschemas (34 occurrences with versioned ones) writemodify: [OU=adapters, O=cic]. YAML parses that as two OR patterns, so anyO=ciccertificate would match. The intended value is"OU=adapters,O=cic". Needs its own fix there.Not changed
cic-primitive-formsandcic-primitive-enginecode, the 6-key recognition rule, whereconformancelives, runtime enforcement. Downstream adoption needs a new grammar pin, manifest, corpus and ADR compatibility check.Evidence
make grammar.local: 187 vectors green, 50/50 seeded faults detected, grammar self-test 53/53;make validate.localandpytest tests(153) green. Model and vectors have one author; the independent check is a second implementation.