What is a Permission?
A permission defines a specific access right: the ability to perform an action on a resource type matching a pattern. Permissions are the atomic units of access control in Bedrock.Permission Properties
A permission has no condition field. JSON Logic conditions attach to the
role-permission edge (
BedrockRolePermission.condition)—see Conditional
Permissions.Creating Permissions
Permission Keys
Thekey field uniquely identifies a permission within a scope. The convention is:
document:read:*— Read any documentdocument:write:*— Write any documentdocument:delete:*— Delete any documentuser:manage:*— Manage any userreport:export:financial— Export financial reports
Actions
Actions describe what can be done. Common patterns:CRUD Actions
Domain-Specific Actions
Resource Types
Resource types categorize what the permission applies to:Resource Patterns
Patterns specify which resources the permission applies to:Pattern matching currently supports only
* (all resources of the type) and
exact string match against the resource’s id/pattern. Prefix, category, or
glob patterns such as financial/* are not evaluated as globs—a permission
with resourcePattern: "financial/*" would only match a resource whose
identifier is the literal string financial/*. To scope by ownership or
category, use conditional permissions with
tags instead.Conditional Permissions
A permission itself has no condition field. Conditions attach to the role-permission edge (condition)—they qualify a permission for a specific role, so the same permission can be unconditional for one role and conditional for another.
subject.* (incl. subject.meta.*), the resolved resource core fields, resource tags/tagList, the trusted clock (time.hour, time.dayOfWeek), and any top-level custom context keys. See Conditional Permissions for the full variable list, the trusted-clock behavior, and fail-closed evaluation.
Permission Inheritance
Permissions defined at a parent scope are available in all child scopes:Permission Overrides
You can disable a permission at a child scope:Override state values: permission and role overrides use
active / inactive / inherit;
role-permission overrides use grant / revoke / inherit.Connecting Permissions to Roles
Permissions are granted to subjects through roles:Common Permission Patterns
Tiered Access
Agent Restrictions
Feature Flags as Permissions
API Reference
Create Permission
Create a new permission
Get Permissions by Scope
List permissions in a scope
Create Role Permission
Add permission to a role
Permission Overrides
Override permissions at child scopes
Next Steps
Conditional Permissions
Add JSON Logic conditions for dynamic access control
Evaluation
Learn how Bedrock evaluates permission checks