Skip to content

Ground authorization requests and publication admission - #7578

Closed
briansrls wants to merge 13 commits into
mainfrom
session/proud-wolf-486
Closed

briansrls wants to merge 13 commits into
mainfrom
session/proud-wolf-486

Conversation

@briansrls

@briansrls briansrls commented Aug 1, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Grounds authorization on one std.access decision kernel with typed context, evidence, and located refusal causes. Adds exact Effect, Reference, PublicationAdmission, Disclosure, and SealedExecution request profiles plus principal projections derived from OIDC issuer/subject and observed POSIX effective-principal evidence.

Dissolves the frozen gunbc#7541 carriers: Reference and Publish no longer extend effect verbs, AudienceScopeTree is removed, and publication audiences use the canonical Set carrier with join and partial-order subset instead of a total chain. The live Stage-0 publication placement wall now projects PublicationAdmissionRequest into AccessPolicy while preserving its accepted/refused behavior and coverage receipt.

Validation

  • cargo fmt --all --check (pre-push hook) — passed
  • access authorization profile witnesses — 3/3 passed
  • principal projection witnesses — 2/2 passed
  • whole-tree compile scan — no diagnostics in changed authorization/publication modules; the local baked compiler still reports pre-existing strict unlisted-import diagnostics elsewhere
  • git diff --check — passed

Coordination

PublicationAdmissionRequest is the shared carrier agreed with the sole-publisher lane (PR #7577): subject, source, resource, audience, context, and evidence all remain independently typed.

@gunbai-bot gunbai-bot Bot changed the title Authorization grounding pass: enrich std.access kernel (context/evidence/typed refusals), principal-projection carrier over extdeps OIDC evidence, re-home Publish/Reference onto typed request profiles per authorization-kernel directive; dissolve frozen #7541 carriers Ground authorization requests and publication admission Aug 1, 2026
@gunbai-bot
gunbai-bot Bot marked this pull request as ready for review August 1, 2026 08:14
gunbai-bot Bot pushed a commit that referenced this pull request Aug 1, 2026
…file.

Merge proud-wolf-486 authorization grounding (#7578), delete the tools bridge,
and build PublisherPublicationAdmissionRequest directly from the std carrier
with UniversalAudience and receipt-derived evidence.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Addressed review 46134 in 68bde52:

  • EnumeratedAudience.members now consumes canonical std.types.Set<P>; membership uses set_contains, join uses set_union, and subset is derived from union equality. The list representation and hand-written dedup/equality helpers are gone.
  • PrincipalProjection is now a coupled evidence coproduct. projected_principal derives the principal from the matching OIDC/POSIX evidence arm, so contradictory principal/evidence pairs have no constructor.

The 3 authorization-profile and 2 principal-projection witnesses pass on this head; fresh CI is running.

@cursor

cursor Bot commented Aug 1, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@gunbai-bot

gunbai-bot Bot commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Addressed review 46156 on head 545b3df:

  • POSIX evidence now originates in extdeps.access.posix_effective_principal: the typed operation produces EffectivePosixPrincipalReadOutcome, its decoder admits only success/exit-zero/non-empty output, and the decoded name is nominally opaque outside that authority. PrincipalProjection consumes only the resulting observation. Failed and empty reads are discriminating REDs.
  • Removed the unused audience_member predicate. The necessary closed audience_subset/audience_join readers now carry an explicit terminal disposition and delegate finite-set operations to canonical std.types.Set operations.

The focused principal, audience, and effect-kernel witnesses pass.

@gunbai-bot

gunbai-bot Bot commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Addressed review 46175 in 54475b1. All four dangling v2 consumers now use std.access.AccessDecision: build-transport aggregation uses the canonical decision_meet fold; emit-host and effect-io dispatch match Permit/Deny; backend mismatch retains a typed, located evidence refusal. The HAND intrinsic bridge now requires Permit rather than the deleted carrier. Validation: cargo check -p v1-compiler-tests --tests; 18/18 migrated v2 effect-grant witnesses; 3/3 emit_host_admission_flip_test unit cases; cargo fmt and diff checks. — sent from proud-wolf-486

@gunbai-bot

gunbai-bot Bot commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Follow-up correction to my review 46175 response: f399a62 removes the interim consumer-authored AccessEvidenceRejected decision. The locator now projects through its own backend namespace; a mismatched envelope is therefore refused by the same EffectRequest AccessPolicy in admit_effect. The five effect-io witnesses remain 5/5 green. — sent from proud-wolf-486

@gunbai-bot

gunbai-bot Bot commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Addressed review 46194 at head e3a1fa8 (implementation in f2222a9, parse-safe follow-up in e3a1fa8). PublicationAudienceGrant now binds exact resource and root; public_publication_decide validates evidence.resource against request.object and evidence.root against both action.source.root and contextual root before audience inclusion. The existing refused-marker probe now also REDs wrong-resource and wrong-root grant replay. Validation: all 8/8 publication placement probes preserve their previous accepted/refused verdicts. — sent from proud-wolf-486

@gunbai-bot

gunbai-bot Bot commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Addressed review 46211 in 61c10fc46: access.PosixEffectivePrincipal.Read now fails closed under hermetic realization (success: false, no stdout identity, typed refusal reason), so the fixture can no longer be decoded as an observed POSIX principal. Added hermetic_posix_read_cannot_become_principal_evidence, which invokes the actual read wrapper and proves the mock reaches EffectivePosixPrincipalObservationRefused; all 4 principal-projection witnesses pass. — sent from proud-wolf-486

@gunbai-bot

gunbai-bot Bot commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Superseded by #7586, which adopts this implementation onto post-#7580 main and carries the remaining closeout validation. The mandated WET publication-placement receipt is currently a line-stop there, so #7586 remains draft pending direction.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant