How a request is decided
Each request maps to one principal (Dome::Agent), one action (Dome::Action), and one resource (Dome::MCPTool or Dome::LLMModel). Conditions may also read request context and, when present, verified act-as claims on the principal.
examples.cedar
Evaluation semantics
- The evaluator checks every rule in the effective policy against the request.
- If any
forbidmatches, the request is denied, regardless of any matchingpermit. - If no
forbidmatches and at least onepermitmatches, the request is allowed. - If no rule matches at all, the request is denied (default-deny / fail-closed).
forbid always wins. A forbid at organization scope cannot be overridden by a permit at agent scope. Design rules accordingly: broad restrictions at higher scopes, specific allowances at lower scopes.
Effective policy
The effective policy is the merged set of all active rule bundles across the scope hierarchy. Assembly works as follows:- Fetch the active bundle at each scope: organization, tenant, workspace, agent.
- Merge Cedar files with scope-prefixed filenames (
org/rules.cedar,workspace/rules.cedar) to prevent name collisions. - Compute a composite content hash from the merged file list.
- Load the merged policy into the evaluator as a single PolicySet.
Per-workspace vs per-agent evaluation
Both evaluators enforce the same Cedar semantics. The hosted gateway adds per-workspace freshness checks. If a workspace’s policy has not synced within its configured freshness window, requests are denied with a
authorization.staleness_rejected audit event.
Fail-closed behavior
The authorization model is fail-closed at every level:- No matching rule: denied. When Intelligent Authorization convenes on live traffic, a
no_matchin alive-mode workspace can be overridden by a Courtpermit. Until thenno_matchalways resolves to the default-deny. - Evaluator error: denied.
- Stale policy: denied (hosted gateway only, per-workspace freshness window).
- No policy loaded: denied.
- Court unavailable: denied with
reason: "court_unavailable"when fewer than two judges return a usable vote.
audit mode is a separate construct. It records Court rulings without enforcing them so you can validate the panel before flipping to live.
Next steps
With that Cedar evaluation model in mind, continue with:- Rules concept for bundles, scopes, and effective Rules
- Rules reference for entity, action, and attribute catalogs
- Authorize Access to write, validate, simulate, and apply Rules
- Permissions concept for platform RBAC (separate from Cedar)
- Scopes concept for the hierarchy that feeds effective policy