Skip to main content

Overview

Within a project, you often need to model organizational structures: departments, teams, divisions, and reporting hierarchies. This guide shows how to represent these structures in Bedrock.
These patterns are typically implemented at the Project level, where authorization is configured. The examples below assume you’re working within a project’s scope.
Some examples below use a logic field on a permission and subject.tags.*. Conditions actually attach to the role-permission edge (condition), and subject-tag matching is not enforced yet (see the roadmap). See Conditional Permissions.

Common Organizational Patterns

Flat Teams

Hierarchical Departments

Matrix Organization

Approach 1: Scopes as Org Units

Model each organizational unit as a scope within your project:

Pros

  • Natural permission inheritance
  • Clear hierarchy
  • Easy to query

Cons

  • Deep hierarchies can be complex
  • Harder to model matrix organizations

Approach 2: Tags for Org Classification

Use tags to classify users and resources by org unit:

Pros

  • Flexible many-to-many relationships
  • Easy to model matrix orgs
  • Users can belong to multiple teams

Cons

  • Requires conditional permissions
  • Less intuitive hierarchy
Combine scopes for major boundaries and tags for classification:

Role Patterns

Department-Level Roles

Team-Specific Roles

Cross-Functional Roles

Permission Patterns

Department Access

Tag-Based Team Access

Matrix Organization Example

For organizations where people belong to both functional teams and cross-functional initiatives:

Reporting Hierarchies

For manager → report relationships:

Best Practices

Create scopes where you need distinct permission sets or inheritance breaks.
Use tags when users/resources belong to multiple groups or relationships are fluid.
Very deep hierarchies are hard to manage. Consider flattening with tags.
Organizations change. Design for easy restructuring.

Next Steps

Row-Level Access

Fine-grained resource permissions

Tag-Based Access

More tag-based patterns