Repository navigation
a2ui-server: plugged RBAC gates over the app's RbacBinding - #51
Merged
Merged
Conversation
…ged) a2ui-rs owns no classes or roles, so it declares no RbacPlug; the app it serves binds its own plug and hands the RbacBinding here. Two additive gates add that verdict to the unchanged Session gates: - project_plugged: READ grant on the node's class, the role's declared field mask narrows the session role mask, then project_surface. - resolve_action_plugged: resolve_action (range + ordinal), then an ACT grant for the resolved predicate. A class or role outside the plug is refused (RbacDrift), never allowed. Cargo.lock moves lance-graph-contract to the rev carrying rbac_plug. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
Warning Billing warning: we have not been able to collect payment for this subscription for more than 72 hours. Please update the payment method or pay any pending invoices in Billing to avoid service interruption. Comment |
AdaWorldAPI
marked this pull request as ready for review
October 8, 2026 08:06
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
A new module,
a2ui_server::plugged, adds the bound RBAC verdict to the existing session gates. It reuses lance-graph'scontract::rbac_plugsocket (lance-graph#1404).a2ui-rs owns no classes or roles; it renders whatever app it serves. So it declares no
RbacPlugof its own. The app declares and binds its plug (for example medcare-rs'sRBAC_PLUG, AdaWorldAPI/MedCare-rs#626) and passes theRbacBindingin.project_plugged(session, binding, role, key, surface):project_surface, so its fail-closed rules still apply.resolve_action_plugged(session, binding, role, invoke, actions): calls the unchangedresolve_action(class range and ordinal), then requires an ACT grant for the resolved predicate.RbacDrift::NotPluggedorRbacDrift::RoleNotPlugged, never allowed because it is unknown. The test case for this is a class inside the session range but outside the plug.What is unchanged
Session,project_surface,resolve_actionand every existing call site. No new dependencies;Cargo.lockonly moveslance-graph-contractto the main revision that carriesrbac_plug.Tests
cargo clippy --all-targets -D warningsandcargo fmt --checkare clean.🤖 Generated with Claude Code
https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
Generated by Claude Code