Roles & Permissions

Control what team members can do with role-based access

A Role is a collection of permissions that define what team members can do within Fide. Instead of assigning individual permissions to every user, you assign a role that groups the necessary access into a single label.

Built-in Roles

Fide provides four built-in roles. These are predefined groups of permissions that cover the most common access patterns (see the Role Permission Matrix for a full breakdown):

RoleDescription
AdminFull administrative access
LeaderCan manage projects, goals, and tools. Cannot manage team members or billing.
MemberStandard contributor access
ViewerRead-only access

Teams can also create custom roles scoped to that team.

Permissions

Permissions control specific actions. They follow a resource.action pattern:

Team Management

PermissionDescription
team.createCreate sub-teams
team.updateUpdate team settings, name, and billing
team.deleteDelete teams
team.inviteInvite new members
team.remove_memberRemove members

Tasks

PermissionDescription
tasks.viewView tasks
tasks.createCreate tasks
tasks.updateUpdate task details and status
tasks.deleteDelete tasks
tasks.assignAssign tasks to others

Projects & Goals

PermissionDescription
projects.viewView projects
projects.createCreate projects
projects.updateUpdate project details
projects.deleteDelete projects
goals.viewView goals
goals.createCreate goals
goals.updateUpdate goals
goals.deleteDelete goals

Messages

PermissionDescription
messages.viewView messages
messages.sendSend messages
messages.deleteDelete messages

Agents & Service Accounts

PermissionDescription
agents.viewView AI agents
agents.createCreate new AI agents
agents.editEdit AI agents
agents.deleteDelete AI agents

Connections & Workflows

PermissionDescription
connections.viewView available tool connections
connections.createCreate platform connections
connections.updateUpdate connection settings
connections.deleteDisconnect platforms
workflows.viewView workflows
workflows.createCreate workflows
workflows.editEdit workflows
workflows.deleteDelete workflows

Role Permission Matrix

PermissionAdminLeaderMemberViewer
Team Management
team.create
team.update
team.delete
team.invite
team.remove_member
Tasks
tasks.view
tasks.create
tasks.update
tasks.delete
tasks.assign
Projects
projects.view
projects.create
projects.update
projects.delete
Goals
goals.view
goals.create
goals.update
goals.delete
Messages
messages.view
messages.send
messages.delete
Agents
agents.view
agents.create
agents.edit
agents.delete
Connections
connections.view
connections.create
connections.update
connections.delete
Workflows
workflows.view
workflows.create
workflows.edit
workflows.delete

Row-Level Security (RLS)

Permissions are enforced at the database level using Postgres Row-Level Security. This means:

  • Automatic enforcement - Security is built into every query
  • No bypass - Even direct database access respects RLS policies
  • Team-scoped - Policies check team membership via has_permission() and is_team_member() functions

Custom Roles

Teams can create custom roles with specific permission sets:

  1. Custom roles are scoped to a single team (team_id is set)
  2. Built-in roles are global (team_id is NULL)
  3. Team admins can manage custom roles via the team.update permission

Next Steps

On this page