Introduction
What Canopy is, why flat RBAC breaks as your customers grow, and how hierarchical authorization replaces it.
Overview
Canopy is hierarchical identity and access management for B2B SaaS. It lets you model real organizational structures, regions, departments, and teams, and assign roles at any level, with permissions that inherit automatically through the hierarchy. Instead of building custom authorization logic, your application asks Canopy one question:
Can this user do this action in this part of the organization?
Canopy answers it. Everything else in these docs is about how you configure that answer.
That configuration lives inside three layers. An Account is your company, and owns billing and the admins who sign in. Inside it you create one or more Applications, one per product whose access you manage. Inside each Application you create Environments, isolated copies of your permissions, roles, and hierarchy, typically development and production. Role assignments and the hierarchy itself live in an Environment, so a change you make in development never reaches production.
You configure all of it from the Developer Console. There is a second application, the Admin Workspace, where the people in an organization are administered. Which one you land in when you sign in depends on what you administer.
The problem
A B2B product usually ships with three flat roles, Admin, Manager, and Viewer. That holds up until a customer has internal structure of their own.
What your customers start asking for
Where flat RBAC breaks
So teams build a custom authorization system instead, and each one rebuilds the same thing from scratch.
How Canopy solves it
Assign once, inherit everywhere
Canopy replaces flat RBAC with hierarchical RBAC. A role is assigned at a node in the organization tree, and the permissions it carries cascade to every node beneath it.
Add a new office under a region and nothing needs updating. The roles already assigned at the region cover it.
That removes most of what teams otherwise write by hand: no hardcoded access rules, no role assignments duplicated across locations, no custom org model to maintain, and no permission logic to debug by reading code.
Why this is different
Most platforms stop at authentication or flat roles. Canopy combines three things:
Hierarchical RBAC
Permissions inherit through an organization tree of any depth.
Visual control plane
Non-engineers manage hierarchy and access without touching code.
Flat to hierarchical
Start at a single root node and add structure later, with no migration.
Who uses Canopy
Three groups of people depend on Canopy, and only two of them ever see it:
Platform and product
Canopy deliberately keeps two populations of people apart. They authenticate separately and never appear in the same directory:
Platform (admins)
Product (identities)
Admins configure access. Identities are subject to it.
Keeping the two separate is what lets an Account's admins reconfigure authorization without ever appearing as users of the product they administer.
How it works
What you set up
What Canopy does on every check
The hierarchy page covers node types, depth limits, and exactly how the cascade is resolved.
Next Step
Tell us how we can improve this guide.