Skip to main content
Relationship-Based Access Control (ReBAC) grants permissions based on the relationships between users and resources — and between resources themselves. Permify is built on ReBAC at its core, inspired by Google Zanzibar. This guide covers four key ReBAC patterns:

User Groups

Managing access for groups is more efficient than assigning roles to individual users at scale. If a user belongs to a group, they inherit the group’s permissions.
1

Define the base entities

2

Model the team entity as a group

A team has an owner, direct members, and a reference back to the organization it belongs to. Permissions on the team itself use boolean combinations of these relations.
3

Attach resources to the group

A project references both its team and its organization. Permissions are expressed in terms of team membership and org roles.

Complete Schema

This model establishes a hierarchy where organizations contain teams, which in turn contain projects. A user’s membership in a team automatically propagates to every project that team owns.