Repository navigation
Conversation
Add a draft RFC that decides between, and then combines, the two open permission drafts: actor views (what data an actor may see, as labels on rows and columns plus a fixed algebra, enforced at plan acceptance) and GQP capabilities (what computation a caller may run, as a Cedar-granted program or contract). An audience is a label on the data; a predicate that mentions the caller is a program. Written from first principles for a contributor new to the topic: goals from five situations, the design space against those goals, the design by example, a 27-pattern expressiveness ledger, costs, alternatives, and an implementation appendix for agents.
Audit against the new goal G11 (fewest primitives that compose): remove the capability object, its routes, configuration and three error codes; the contract language and the submitted mode; views.grants, views.internal and views.bypass; @group; the input-scope and caveat vocabulary; $actor in programs; the default placement of inserts. Add over on rules, credentials and stored queries; per-name invoke_query; the policy bridge row; the primitive audit. Retitle to "Access authority: views and reach".
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.
Summary
A draft RFC,
docs/rfcs/2026-10-30-access-authority-views-and-capabilities.md(titled "Access authority: views and reach"; the filename is fixed by the registry convention), written from first principles for a contributor who has not read anything about permissions and has to judge whether this is the right design.It decides between, and then combines, the two open permission drafts, #951 (actor views) and #1197 (GQP query contracts and Cedar grants), and then reduces the result to the fewest primitives that compose:
@principal,@member,@securable,@in,@grant,@inherits,@requires,@deny, a time window), enforced as one filter at plan acceptance and as hidden names in the schema.over, that a grant, a delegated credential or a stored query runs under a different view than the actor's own.over: allon a stored query, granted by name, is how a caller runs an approved computation over data it cannot see;over: allon a rule is bypass; a narrowingoveris a caveat.The rule behind it: an audience is a label on the data; a predicate that mentions the caller is a program.
The RFC states the goals (G1–G11) from five situations, surveys the design space against them, specifies the design by example, audits every primitive against G11, evaluates a 27-pattern expressiveness ledger, lists costs and alternatives, and ends with an implementation appendix for agents.
What it changes in the two drafts
@groupis derived; theviewspolicy block is replaced by a bridge row (policy:<name>as a subject),overon rules and cluster-configured limits; computed placement moves into the row-view phase; the default placement of inserts becomes explicit$subject; definer-rights stored queries becomeoveron a stored query; Lance citations re-anchor to 13.0.0.invoke_queryand the fixed program as the unit of disclosure survive; the contract language, guard proofs, per-operator obligations, the single-binding fragment, trusted attributes, the submitted mode and the capability binding do not.Both remain drafts; this RFC supersedes neither. Links to #951 point at its PR because its file is not on
mainyet.Revision history
Checks
python3 scripts/check-docs.py: OK (438 files)typos: clean