What are Scope Overrides?
Scope overrides let you modify inherited behavior at child scopes without changing the parent. You can enable or disable roles, permissions, or specific role-permission combinations at any level in your hierarchy.Override Types
Bedrock supports three types of overrides:| Type | What it Controls | Use Case |
|---|---|---|
| Role Override | Enable/disable an entire role | ”Disable Admin role in production” |
| Permission Override | Enable/disable a specific permission | ”Disable delete permission in archives” |
| Role-Permission Override | Enable/disable a permission for a specific role | ”Editors can’t delete in production” |
Role Overrides
Disable or re-enable an entire role at a child scope:- All permissions from that role are unavailable in the child scope
- Role assignments still exist but have no effect
- Child scopes inherit the disabled state
Re-enable at Deeper Level
Permission Overrides
Disable or re-enable a specific permission at a child scope:- No role can grant that permission in the child scope
- Affects all roles that include this permission
- Child scopes inherit the disabled state
Role-Permission Overrides
The most granular override—disable a permission for a specific role only:With Conditions
Add JSON Logic conditions to role-permission overrides:Override Inheritance
Overrides cascade down the scope hierarchy:Override States
| State | Meaning |
|---|---|
enabled | Explicitly enable (override a parent’s disable) |
disabled | Explicitly disable |
| (no override) | Inherit from parent |
Common Patterns
Production Lockdown
Agent Restrictions
Temporary Elevated Access
Querying Overrides
Removing Overrides
Best Practices
Use the most specific override
Use the most specific override
Prefer role-permission overrides over blanket role or permission disables.
Document your overrides
Document your overrides
Keep track of why overrides exist—they can be hard to debug later.
Test override inheritance
Test override inheritance
Verify that child scopes behave as expected after adding overrides.
Prefer conditions over hard disables
Prefer conditions over hard disables
Use conditional overrides for time-based or context-based restrictions.