RBAC overview

Workspace roles vs account permissions, and how RankWatch enforces access.

RankWatch uses role-based access control (RBAC) at two scopes:

ScopeWho it applies toManaged in
WorkspaceDay-to-day SEO operators on a teamCustom roles (permission keys like project.update)
AccountBilling, org profile, role CRUDOrganization owner only

Workspace roles

Each team member has one workspace role (team_members.role_id). That role grants a set of permission keys checked on API routes and reflected in the product UI (hidden actions, disabled buttons, redirects).

Common workspace permissions include:

KeyProduct label
project.readView Projects
project.createCreate Project
project.updateEdit Project
project.deleteDelete Project
keyword.createCreate Keywords
report.readRead Reports

See the dedicated pages for Edit Project and Create Project.

Account (owner-only) permissions

Permissions such as org.billing.read, rbac.role.manage, and notification.template.manage are never assignable to workspace roles. Only the organization owner can access account settings, even if a custom role name sounds administrative.

Enforcement

  • API — every mutating route calls requireTeamPermission or isOrgOwner as appropriate.
  • UI — hooks like usePermissions / useTeamPermissions gate controls; missing permission shows an explanation or redirects.

Related product links