1. Platform
  2. Features
  3. Scoped Visibility
Feature Scoped Visibility

Not just what they can do, what they can see

Most systems push that responsibility into your application. Canopy enforces it at the API level: users only see the parts of the hierarchy where they have assignments. Everything else never leaves the server.

Server-side guarantee Zero client filtering Instant scope updates
Viewing as West Regional Manager SCOPED VIEW
Visibility is not filtering

A server-side guarantee, not a frontend convenience

When a user requests the hierarchy, Canopy returns only the nodes at and below their assignment points. Unauthorized nodes aren't filtered out: they're never fetched.

Canopy server · full hierarchy
Every node exists here. Canopy knows which ones this identity may see.
West Region authorized
SF Office authorized
LA Office authorized
East Region held back
NY · BOS Offices held back
Your app · API response
Only authorized nodes ever arrive. Nothing to filter, nothing to hide.
West Region
SF Office
LA Office
3 of 7 nodes: the rest never left the server

If a user shouldn't see it, it never leaves the server.

What changes with scoped visibility

The API does the scoping for you

Without scoped visibility, your application filters results client-side or builds custom query logic per user. With Canopy, the API returns only what each identity is allowed to see.

Without scoped visibility
  • Frontend filters nodes after fetching everything
  • Custom query logic per user role
  • Risk of exposing unauthorized data
With Canopy
  • API returns only accessible nodes
  • No client-side filtering needed
  • Unauthorized data never leaves the server
How it works

Each identity sees from where it's assigned

Canopy's hierarchy access service determines which nodes an identity can see based on their role assignments: their assignment point, and everything below it.

Regional Manager
Assigned at West
Root
West
East
SF
LA
Sees West + everything below
Team Lead
Assigned at Team A
Root
West
East
Team A
Team B
Sees only Team A
Global Admin
Assigned at Root
Root
West
East
SF
LA
NY
BOS
Sees the entire tree
Automatic scope updates

Change an assignment, and the view changes instantly

Promote someone to a higher node and they immediately see more of the tree. Remove an assignment and those nodes disappear from their view. Nothing to recalculate: visibility is derived from assignments, not maintained as a separate copy.

Before · assigned at Team A
A team lead sees a single team.
Root
West
East
Team A
Team B
After · assigned at West
The same person now sees the whole region.
Root
West
East
Team A
Team B

Derived, never duplicated: the server recomputes visibility from assignments on every request. Apps using our SDK's in-process checks pick changes up within its refresh window.

Built for permission-aware applications

Your app doesn't need to understand the hierarchy

Scoped visibility powers the interfaces you'd otherwise build by hand. Canopy enforces the hierarchy for you.

Hierarchical navigation

Tree UIs that render exactly what a user is allowed to browse.

Permission-aware dashboards

Show or hide features based on real, evaluated access.

Filtered APIs

Scoped responses without custom per-user query logic.

Secure multi-tenant access

Each tenant's data stays isolated by the hierarchy itself.

Example

Regional access across 50 offices

A company with 50 offices across 5 regions assigns a regional manager at each region node. Each manager sees only their region's offices, teams, and identities. The CEO, assigned at the root, sees everything.

50
offices
5
regions
1
root · CEO
A new office under West Region is instantly visible to its manager, and invisible to everyone else.
West Regional Manager SCOPED VIEW

Ready to simplify access control?

Create an account and have authentication and hierarchical access control running today.