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.

Independent fork documentation. Not an upstream Lag service.