Skip to content

Permissions ​

Identities and platform administrator ​

External-provider users have an oauth_identities record; optional nickname users are guests. The first newly created external identity is granted platform_admin. An exact configured claim match can grant the same role later. A platform administrator bypasses room owner/moderator admission checks and can use the administrator APIs and console.

When PRISM_TEAM_ID is configured, owners and co-owners of that Prism team receive a dynamic platform_admin grant at login.

Room roles ​

RoleEnter permitted roomVoice publishManage ordinary membersManage moderators/settingsDelete/transfer room
listenerYesNoNoNoNo
speakerYesYesNoNoNo
moderatorYesYesKick/ban, invite, change speaker/listenerNo moderator changes; no settingsNo
ownerYesYesYesYesYes
platform_adminYesYesYesYesYes

Room creators become owners. Ownership transfer requires a current member to accept within 24 hours. Owners can set visibility (public, unlisted, private), guest admission, default role, maximum participants, history visibility (all, since_membership, none), and retention (7, 30, forever).

Admission and content ​

  • Public rooms appear in listings; unlisted/private rooms appear to members and platform administrators.
  • Private rooms require a non-guest membership. Guest-disabled rooms reject guests.
  • Bans override ordinary room access; platform administrators bypass the ban check.
  • User invitations target external identities. Link invitations may admit guests only when room policy allows.
  • Message reads obey admission, history visibility, and retention. Message posting obeys admission but is not restricted to speaker roles.
  • LiveKit publish permission follows room role; listeners receive subscribe-only grants.

The schema includes room ACL entries, but current authorization does not evaluate them. Do not rely on arbitrary ACL policy until it is wired into route checks.

Self-hosted voice and chat: voice rooms, text chat, and room roles on your own server.