Skip to main content
Version: 0.9.17-patch1

Roles and access

Delphi uses a two-level role model: a system-level role on the user and a team-level role per team membership. Together they determine what each page renders and which actions succeed.

System-level roles

Every user has exactly one system role:

RoleDescription
SUPERUSERFull platform access. Bypasses team restrictions. Sees and manages all teams, users, and resources. Has admin-settings access.
SUPERVIEWERPlatform-wide read access (same visibility as Super Admin). All writes are denied. Cannot start WebRTC or telephony sessions. TelWeb shows a read-only banner.
USERDefault role. Access is scoped to the teams the user is assigned to.

Promoting or demoting SUPERUSER or SUPERVIEWER requires an email challenge. Super Admins start the change from Users and teams; Tasker sends the code when PLATFORM_ROLE_EMAIL_TASKER_READY is true — see the env var index.

Team-level roles

Within each team a user has one of three roles. A user can have different roles in different teams.

RoleDescription
ADMINFull control within the team — settings, members, variables, header manipulation, API keys, base numbers, flow activation.
MEMBERCreates and modifies apps, providers, agents, scenarios, endpoints; views conversation logs. Can publish apps only when the team enables Members can publish Apps. Cannot manage team settings or members.
VIEWERRead-only. Cannot create / edit / delete / publish and cannot see conversation logs.

Permission matrix

"Team ADMIN" = SUPERUSER or ADMIN in the current team. "Tech User" = SUPERUSER, MEMBER, or ADMIN. Super Viewer matches Super Admin read cells and is No on every mutation (including publish, role changes, and session tokens).

PermissionSUPERUSERSUPERVIEWERTeam ADMINMEMBERVIEWER
View team resourcesYesYesYesYesYes
Create / edit apps, providers, agents, scenariosYesNoYesYesNo
Delete apps, providers, agents, scenariosYesNoYesNoNo
Create / edit endpointsYesNoYesYesNo
Activate / deactivate flowsYesNoYesTeam settingNo
Publish appsYesNoYesTeam settingNo
View conversation logsYesYesYesYesNo
Manage team membersYesNoYesNoNo
Manage team settingsYesNoYesNoNo
Create / edit base numbersYesNoYesNoNo
Add extensions to endpointsYesNoYesYesNo
Create teamsYesNoNoNoNo
Delete teamsYesNoNoNoNo
Access admin-settingsYesRead-onlyPartial (Users tab only)NoNo

Resource-level access control

The backend enforces fine-grained access control per resource. MEMBER+ means MEMBER or ADMIN in the team, or SUPERUSER. Super Viewer is included on Read / List where SUPERUSER appears, and excluded from Create / Update / Delete.

ResourceCreateReadUpdateDeleteList
UserSUPERUSEROwn / SUPERUSEROwn / SUPERUSERSUPERUSERSUPERUSER
TeamSUPERUSERTeam memberTeam ADMINSUPERUSERAuthenticated
Team variablesTeam ADMINTeam memberTeam ADMINTeam ADMINTeam member
AppTeam memberTeam memberMEMBER+Team ADMINFiltered by team
ProviderTeam memberTeam memberMEMBER+Team ADMINFiltered by team
AgentTeam memberTeam memberMEMBER+Team ADMINFiltered by team
ScenarioTeam memberTeam memberMEMBER+Team ADMINFiltered by team
EndpointMEMBER+Team memberMEMBER+Team ADMINFiltered by team
Base numberSUPERUSERTeam memberSUPERUSERSUPERUSERFiltered by team
Server groupSUPERUSERTeam memberSUPERUSERSUPERUSERTeam member
VoIP serverSUPERUSERTeam memberSUPERUSERSUPERUSERTeam member
ConversationSystemTeam memberSystemTeam ADMINFiltered by team

Team membership

  • A user can belong to multiple teams, each with a different role.
  • Every user has a default team that is auto-selected on login.
  • SUPERUSERs and SUPERVIEWERs see all teams and all resources regardless of membership. Super Viewer cannot change them.
  • Users cannot change their own team or platform role — another ADMIN or SUPERUSER must do it. Platform role changes use the email challenge.

Security controls

Deployments can enforce password expiry, concurrent-session limits, and login lockout rules for all roles. SUPERUSER accounts are held to the strongest password policy, including the longer minimum password length introduced in v0.9.13.

SUPERUSERs can also review platform-wide authentication and role-management events from Access logs.

Visibility summary by page

PageVIEWERMEMBERADMINSUPERVIEWERSUPERUSER
DashboardYesYesYesYesYes
Apps (list, detail)Read-onlyFullFullRead-onlyFull
ProvidersRead-onlyFullFullRead-onlyFull
ConversationsHiddenYesYesYesYes
Settings → TeamYesYesYesRead-onlyYes
Settings → UsersHiddenHiddenYesRead-onlyYes
Settings → VariablesHiddenHiddenYesRead-onlyYes
Settings → Header manipulationHiddenHiddenYesRead-onlyYes
Settings → API keysHiddenHiddenYes (if enabled)Read-onlyYes
Admin settingsHiddenHiddenUsers tab onlyRead-onlyFull

See also