Documentation Index
Fetch the complete documentation index at: https://docs.datazone.co/llms.txt
Use this file to discover all available pages before exploring further.

Key Features
- Role-based: Policies are bound to roles, not individual users
- Hierarchical: Support for project-scoped resources (e.g.,
project:<id>:dataset:*) - Explicit deny: Deny statements override allow statements
- Extra constraints: Resource-specific restrictions (row-level security, column filtering, path prefixes)
- Wildcard support: Use
*for flexible matching across resources and actions - Branch-aware: Optional branch specification for version control

Policy Structure
Each policy consists of one or more statements that define access rules:Fields
| Field | Type | Description |
|---|---|---|
resource | string | Resource pattern (supports wildcards and hierarchical patterns) |
branch | string | null | Optional branch name (defaults to main) |
actions | array | List of actions in <resource>:<action> format |
effect | enum | Either "allow" or "deny" |
extra_constraints | object | Resource-specific constraints (optional) |
Resource Patterns
Resources follow a hierarchical pattern that supports various levels of specificity:Flat Resources
| Pattern | Scope | Description |
|---|---|---|
* | All | All resources in the organization |
dataset | Type | Dataset type (for creation permission) |
dataset:* | All instances | All dataset instances |
dataset:<id> | Specific | A specific dataset by ID |
Hierarchical Resources
Hierarchical patterns enable project-scoped permissions:| Pattern | Scope | Description |
|---|---|---|
project:<id>:* | All children | All entities within the project |
project:<id>:dataset:* | Typed children | All datasets within the project |
project:<id>:dataset:<id> | Specific child | Specific dataset within the project |
Supported Resource Types
dataset- Data tables in the lakehouseproject- Project containersview- Virtual views over datasetsschedule- Automated execution schedulesextract- Data ingestion jobscompute- Compute resourcesapi_key- API authentication keysuser- User accountsrole- User rolesnotebook- Interactive analysis notebookspipeline- Data transformation pipelinesendpoint- REST API endpointsintelligent_app- Dashboard applicationsvariable- Environment variables
Actions
Actions follow the<resource>:<action> format and define what operations can be performed:
Action Patterns
dataset:read- Read access to datasetsdataset:write- Modify datasetsdataset:delete- Delete datasetsdataset:execute- Execute operations on datasetsdataset:manage- Full management accessdataset:create- Create new datasetsdataset:*- All dataset actions*:read- Read access to all resources*:*- All actions on all resources
Common Actions
| Action | Description |
|---|---|
<resource>:read | View the resource |
<resource>:write | Modify the resource |
<resource>:delete | Delete the resource |
<resource>:create | Create new instances |
<resource>:execute | Execute operations |
<resource>:manage | Full control (includes all above) |
<resource>:* | All actions for that resource |
Exceptional Actions
project:read_repository- Read access to project code repositoryendpoint:invoke- Permission to call an API endpoint
Row-Level and Column-Level Security
Datazone supports fine-grained data access control through row-level and column-level restrictions using theextra_constraints field. This enables you to restrict what data users can see within a dataset or view, beyond just granting or denying access to the entire resource.
Extra Constraints Structure
For datasets and views, you can specify columnar constraints:Fields
| Field | Type | Description |
|---|---|---|
row_level_restrictions | array of strings | SQL WHERE conditions to filter rows - only matching rows are accessible (e.g., ["region = 'US'", "status = 'active'"]) |
column_level_restrictions | array of strings | Column names to allow - only these columns are accessible (e.g., ["id", "name", "email"]) |
Row-Level Restrictions
Row-level restrictions apply SQL conditions to filter which rows a user can access:Column-Level Restrictions
Column-level restrictions specify which columns users can access (allowlist):Combined Restrictions
You can use both row and column restrictions together:Policy Examples
Read-Only Access
Grant read access to all resources:Dataset Admin
Full control over all datasets:Project Admin
Full control over a specific project and all its resources:- Manage the project itself (
project:*) - Create and manage all child resources (datasets, notebooks, pipelines, etc.)
Restricted Access with Deny
Allow read access to all datasets except one specific dataset:Project-Scoped Dataset Access
Grant access to datasets within a specific project only:Data Analyst Role
Typical permissions for a data analyst:Built-in Policies
Datazone provides several built-in policies for common use cases:Admin Policy
Full access to all resources:Best Practices
Policy Design
- Start restrictive: Begin with minimal permissions and add as needed
- Use hierarchical patterns: Organize permissions by project for better management
- Leverage deny sparingly: Use deny for exceptions to broad allow rules
- Document policies: Add clear descriptions to explain policy intent
Role Assignment
- Bind to roles only: Policies are assigned to roles, not individual users
- Create role hierarchies: Use multiple roles for different permission levels (Viewer, Editor, Admin)
- Audit regularly: Review policy assignments periodically
Performance
- Cache aware: Policies are cached; changes may take a few seconds to propagate
- Granular resources: Use specific resource IDs when possible to reduce evaluation complexity
- Minimize deny statements: They require checking all policies
Security
- Principle of least privilege: Grant only necessary permissions
- Explicit denies: Use deny statements to override broad allows for sensitive resources
- Extra constraints: Apply row-level and column-level security for sensitive data
- Path restrictions: Use
path_prefixconstraints to sandbox project access
Validation Rules
Policies are validated automatically to ensure correctness:Action Format
- Must follow
<resource>:<action>pattern - Both parts must be lowercase with underscores
- Wildcards allowed:
*:*,dataset:*,*:read
dataset:readproject:**:*
dataset(missing action)Dataset:Read(uppercase)read(missing resource)
Resource Pattern
- Must be valid resource type or wildcard
- ObjectIds must be valid MongoDB ObjectIds
- Hierarchical patterns must follow
parent:<id>:childformat
dataset:*project:507f1f77bcf86cd799439011project:507f1f77bcf86cd799439011:dataset:*
dataset:invalid-idproject::dataset:*
Action-Resource Matching
Actions must match the resource type they’re applied to:*:*) can be used on any resource.
Troubleshooting
Permission Denied Errors
If you encounter permission denied errors:- Check user roles: Verify the user has the appropriate role assigned
- Review policy statements: Ensure the policy includes the required action and resource
- Look for deny statements: Check if an explicit deny is overriding an allow
- Verify resource IDs: Ensure you’re using the correct resource identifier
- Check cache: Wait a few seconds for policy changes to propagate
Hierarchical Permissions Not Working
If project-scoped permissions aren’t working:- Verify pattern format: Use
project:<id>:*notproject:*:<id> - Check parent context: Ensure the resource creation includes project reference
- Review cache: Hierarchical relationships are cached; wait 5 minutes or invalidate cache
- Validate ObjectIds: All IDs must be valid MongoDB ObjectIds
Performance Issues
If policy evaluation is slow:- Reduce policy complexity: Simplify nested hierarchies
- Use specific resources: Prefer
dataset:<id>over broad wildcards when possible - Monitor cache health: Ensure Redis is functioning properly
- Check database queries: Hierarchical policies should use cache, not database
Related Resources
Roles
Learn about role management and user assignment
Authentication
Understand authentication and token management
API Keys
Generate and manage API keys for programmatic access
Projects
Organize resources within projects