R
Rankup

Roles & Permissions

Rankup uses a hierarchical role system to control access. Permissions are enforced at the database level using Row Level Security (RLS), not just the UI.

Role hierarchy

Admin
  └── Strategist
        └── Viewer
              └── Client Viewer (scoped to one client)

Each role inherits the read permissions of the roles below it but adds additional capabilities.

Detailed permissions

ActionAdminStrategistViewerClient Viewer
View dashboardsAll clientsAll clientsAll clientsOwn client only
Import locationsYesYesNoNo
Generate briefsYesYesNoNo
Manage calendarYesYesNoNo
Add/edit clientsYesNoNoNo
Manage teamYesNoNoNo
Configure API keysYesNoNoNo
Organization settingsYesNoNoNo
Export reportsYesYesYesOwn client only

Data isolation

The most important security boundary is between Client Viewers and everyone else:

  • Agency users (Admin, Strategist, Viewer) can see all clients within their organization
  • Client Viewers can only see data for the specific client they're assigned to
  • This restriction is enforced by PostgreSQL Row Level Security policies - it cannot be bypassed through the API or any other means
  • Organizations are completely isolated from each other at the database level

Assigning roles

Roles are assigned when inviting a user and can be changed at any time by an Admin. To invite a Client Viewer, you must specify which client they should be assigned to.