omnigraph/crates
Ragnor Comerford ad2fc27849
Make invoke_query graph-scoped (one branch authority)
invoke_query gates reaching the curated stored-query surface — a graph-level
capability. Per-branch/snapshot access is already enforced by the inner
read/change gate in run_query/run_mutate (authorized against the resolved
branch), so branch-scoping the outer gate was redundant AND wrong for snapshot
reads (it defaulted to main). Drop the branch dimension: remove InvokeQuery
from uses_branch_scope (it joins admin as graph-scoped) and authorize the
boundary gate with branch: None.

Lossless: an actor confined to branch X by their read/change rules can still
only invoke a stored query that touches X. A rule that sets branch_scope on
invoke_query is now rejected by validate() — write invoke_query in its own
rule.

Ripple (atomic): restructure the server invoke fixture so invoke_query sits in
its own branch_scope-free rule; invert invoke_query_is_branch_scoped ->
invoke_query_rejects_branch_scope; the per-graph authorize test uses
branch: None; docs (policy.md, server.md, the InvokeQuery doc). No wire/OpenAPI
change.
2026-05-31 15:45:19 +02:00
..
omnigraph (feat): multi-graph server mode (#119) 2026-05-28 16:19:31 +02:00
omnigraph-cli Refuse duplicate MCP tool names across exposed stored queries 2026-05-30 22:05:18 +02:00
omnigraph-compiler (feat): multi-graph server mode (#119) 2026-05-28 16:19:31 +02:00
omnigraph-policy Make invoke_query graph-scoped (one branch authority) 2026-05-31 15:45:19 +02:00
omnigraph-server Make invoke_query graph-scoped (one branch authority) 2026-05-31 15:45:19 +02:00