Permissions v1 (legacy)
Confused about "Permissions v1 (legacy)"?
Let us know how we can improve our documentation:
In this version, permissions are associated to channel types only. There are 5 channel types which come built-in automatically, which also have default permissions - commerce, livestream, gaming, messaging, and team. These permissions can be customized if needed, and additional channel types can be created with their own separate set of permissions too.
Permission Checking
Copied!Confused about "Permission Checking"?
Let us know how we can improve our documentation:
Before we dive into more detail on how permission policies are structured, let's explain how permission checking works in general.
Permission checking is performed taking into account these parameters:
- API Request: the action the user is performing (e.g. send a message, edit a message, etc.)
- User Role: the role of the user making the request
- Channel Type: the channel type
- Resource: the resource involved in the API call (e.g. a channel, a message, a user, etc.)
- Ownership: whether or not the resource is owned by the user (when applicable)
Every time a user performs an API request the following steps happen:
The policies for the channel type are loaded
The list of policies is iterated based on priority (highest first)
If the policy matches the current request, then the request is either accepted or discarded
If there is not match, continue iterating until one policy matches
Here's what a list of permissions look like:
Admin users can perform any action
Anonymous users are not allowed
Users can modify their own messages
Users can create channels
Members of a channel can read and send messages
Anything not matching the previous list should not be allowed
Let's now see how this would play out and introduce a couple of users: Tommaso and Thierry. Tommaso is an admin and Thierry a user. Thierry is also a member of the "Sailing" channel.
Thierry posts a message on channel "soccer"
Tommaso edits a message from Thierry
Thierry creates a channel called "founders"
An anonymous user opens the "Sailing" channel
Here's what the outcome of these requests would be:
🙅♂️ Only the last policy matches and it denies this action
👌 Tommaso is an admin, 1st policy is a match
👌 Thierry is a user, 4th policy is a match
🙅♂️ Anonymous users are discarded
Permission Policy Structure
Copied!Confused about "Permission Policy Structure"?
Let us know how we can improve our documentation:
Now that we have a better idea about how the permission system works, let's define more precisely the structure of a permission policy.
Name | API Name | Description | Example |
---|---|---|---|
Name | name | The name of the policy, this serves as a human readable placeholder to remember the policy is all about | "Channel Member Permissions" |
Resources | resources | The list of resources this policy applies. This field cannot be empty but you can set it to | ["ReadChannel", "CreateMessage"] |
Roles | roles | The list of roles this policy applies. Same as the resources field, this must not be empty and can be set to | ["channel_member"] |
Owner | owner | This is an optional field that you can use to match actions performed on objects that the user owns. Ownership only applies to some resources like messages and channels. When set to true the policy will only match if the user is owner of the resource part for the request (when applicable). | true |
Action | action | The action to perform if the policy matches on resource, role and ownership. This field can either be set to either "Allow" or "Deny". | 0 |
Priority | priority | The priority field defined the position of the policy in the list. Permission policies are evaluated in consistent order from the highest priority to the lowest. | 99 |
Example list
Copied!Confused about "Example list"?
Let us know how we can improve our documentation:
Let's now write the example from before into a list of real policies.
Name | Resources | Roles | Owner | action | priority |
---|---|---|---|---|---|
Admin users can perform any action | ["*"] | ["admin"] | - | 1 (Allow) | 600 |
Anonymous users are not allowed | ["*"] | ["anonymous"] | - | 0 (Deny) | 500 |
Users can modify their own messages | ["UpdateMessage"] | ["user"] | true | 1 (Allow) | 400 |
Users can create channels | ["CreateChannel"] | ["user"] | - | 1 (Allow) | 300 |
Members of a channel can read and send messages | ["ReadChannel", "CreateMessage"] | ["channel_member"] | - | 1 (Allow) | 200 |
Anything not matching the previous list should not be allowed | ["*"] | ["*"] | - | 0 (Deny) | 100 |
User Roles
Copied!Confused about "User Roles"?
Let us know how we can improve our documentation:
User Roles are how permissions are grouped together and assigned to a user. Each user role can have separate permissions for different channel types. For example, a moderator for a livestream channel could have different permissions from a moderator for a messaging channel.
Stream maintains a user role for each user_id
at an Application level and a Channel level. This is to allow flexibility and to cover a wider range of use cases.
Application User Roles
Copied!Confused about "Application User Roles"?
Let us know how we can improve our documentation:
This is the role assigned to users which applies across the entire application, and gives permissions for things which are outside of a channel's context, for example, being able to create channels, or search for users.
Role | Description | Permissions |
---|---|---|
Anonymous | Does not require a JWT and does not require a user_id registered with Stream | Lowest |
Guest | Does not require a JWT but does require a user_id registered with Stream. Guests can read channels but not post messages | Low |
User | A registered user on the app with a JWT provided by a trusted source (server) | Normal |
Moderator | A registered user with elevated permissions | High |
Admin | A registered user with elevated permissions granted from a trusted source (server) | High |
Server-side | Not technically a user role. This is the client instantiated with the app key and secret. This is the highest level of administration and is run on the server | Highest |
Channel User Roles
Copied!Confused about "Channel User Roles"?
Let us know how we can improve our documentation:
This is the role assigned to a user once they are added to a channel. This role is unique to that channel and a user could have a different role in each channel which they are a member
Roles | Description | Permissions |
---|---|---|
channel_member | A typical member of a channel and the default user role for an Application User | Normal |
channel_moderator | Elevated permissions on a channel. Granted to channel members through this method | High |
Change a User Role
Copied!Confused about "Change a User Role "?
Let us know how we can improve our documentation:
Add Moderators to a Channel
Copied!Confused about "Add Moderators to a Channel"?
Let us know how we can improve our documentation:
Remove Moderators From a Channel
Copied!Confused about "Remove Moderators From a Channel"?
Let us know how we can improve our documentation:
Custom Roles
Copied!Confused about "Custom Roles"?
Let us know how we can improve our documentation:
You can also create custom roles if the built-in roles are not enough to cover all your use cases. This requires an upgrade to Permissions version. Please contact support for help with this upgrade.
Permission Resources
Copied!Confused about "Permission Resources"?
Let us know how we can improve our documentation:
Permissions policies can match one or more resources. Here is the complete list of permissions available. Please keep in mind that this only applies to API calls done by clients, API requests performed from your backend do not need to pass a permission check.
Resource | Description |
---|---|
AddLinks | Allows add URLs into messages |
AddOwnChannelMembership | Allows add own channel membership (join channel) |
BanUser | Allows ban users |
BlockUser | Allows Block and unblock users on calls |
CreateCall | Allows creates a call |
CreateCallReaction | Allows Add a reaction to a call |
CreateChannel | Allows create a new channel |
CreateDistinctChannelForOthers | Allows create new distinct channel for other users (e.g. user A creates channel for users B and C) |
CreateMessage | Allows send a new message |
CreateReaction | Allows add a reaction to a message |
CreateSystemMessage | Allows send a new system message |
DeleteAttachment | Allows delete uploaded files and images |
DeleteChannel | Allows delete a channel |
DeleteMessage | Allows delete a message |
DeleteReaction | Allows delete a reaction |
DeleteRecording | Allows Delete recording |
EndCall | Allows terminates a call |
JoinBackstage | Allows joins a call backstage |
JoinCall | Allows joins a call |
JoinEndedCall | Allows joins a call that was marked as ended |
ListRecordings | Allows List recordings |
MuteUsers | Allows MuteUsers |
PinCallTrack | Allows Pin/Unpin a track for everyone in the call |
PinMessage | Allows pin a message |
ReadCall | Allows read a call |
ReadChannel | Allows read messages from the channel |
ReadChannelMembers | Allows read channel members |
ReadFlagReports | Allows read flag reports |
ReadMessageFlags | Allows access messages that have been flagged |
RecreateChannel | Allows recreate a channel when it got deleted |
RemoveCallMember | Allows Remove a participant |
RemoveOwnChannelMembership | Allows leave the channel (remove own channel membership) |
RunMessageAction | Allows run an action against a message |
Screenshare | Allows Screenshare |
SendAudio | Allows Send audio |
SendCustomEvent | Allows send custom events to a channel |
SendEvent | Allows SendEvent |
SendVideo | Allows Send video |
SkipChannelCooldown | Allows bypass existing cooldown in a channel |
SkipMessageModeration | Allows bypass automatic message moderation |
StartBroadcasting | Allows Start broadcasting |
StartRecording | Allows Start recording |
StartTranscription | Allows Start transcription |
StopBroadcasting | Allows Stop broadcasting |
StopRecording | Allows Stop recording |
StopTranscription | Allows Stop transcription |
TruncateChannel | Allows truncate a channel |
UnblockMessage | Allows unblock message blocked by automatic moderation |
UpdateCall | Allows update the data for a call |
UpdateCallMember | Allows Update a participant |
UpdateCallMemberRole | Allows Update role for participants |
UpdateCallPermissions | Allows UpdateCallPermissions |
UpdateCallSettings | Allows updates settings of a call |
UpdateChannel | Allows update channel data |
UpdateChannelCooldown | Allows set and unset cooldown time for a channel (slow mode) |
UpdateChannelFrozen | Allows freeze and unfreeze a channel |
UpdateChannelMembers | Allows add, modify and remove channel members |
UpdateFlagReport | Allows update flag report |
UpdateMessage | Allows update a message |
UploadAttachment | Allows upload files and images |
UseFrozenChannel | Allows send messages and reactions to a frozen channels |
Default Permissions
Copied!Confused about "Default Permissions"?
Let us know how we can improve our documentation:
The five built-in channel types ship with default permission setting.
messaging
Resource | admin | moderator | user | channel_member | channel_moderator | owner |
---|---|---|---|---|---|---|
AddLinks | ✅ | ✅ | ✖️ | ✅ | ✅ | ✖️ |
AddOwnChannelMembership | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
BanUser | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✖️ |
BlockUser | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
CreateCall | ✅ | ✅ | ✖️ | ✅ | ✅ | ✖️ |
CreateCallReaction | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
CreateChannel | ✅ | ✅ | ✅ | ✅ | ✅ | ✖️ |
CreateDistinctChannelForOthers | ✅ | ✅ | ✅ | ✅ | ✅ | ✖️ |
CreateMessage | ✅ | ✅ | ✖️ | ✅ | ✅ | ✖️ |
CreateReaction | ✅ | ✅ | ✖️ | ✅ | ✅ | ✖️ |
CreateSystemMessage | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✖️ |
DeleteAttachment | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✅ |
DeleteChannel | ✅ | ✖️ | ✖️ | ✖️ | ✖️ | ✅ |
DeleteMessage | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✅ |
DeleteReaction | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✅ |
DeleteRecording | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
EndCall | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
JoinBackstage | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
JoinCall | ✅ | ✅ | ✖️ | ✅ | ✅ | ✅ |
JoinEndedCall | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
ListRecordings | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
MuteUsers | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
PinCallTrack | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
PinMessage | ✅ | ✅ | ✖️ | ✅ | ✅ | ✖️ |
ReadCall | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
ReadChannel | ✅ | ✅ | ✖️ | ✅ | ✅ | ✅ |
ReadChannelMembers | ✅ | ✅ | ✖️ | ✅ | ✅ | ✅ |
ReadFlagReports | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
ReadMessageFlags | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✖️ |
RecreateChannel | ✅ | ✖️ | ✖️ | ✖️ | ✖️ | ✅ |
RemoveCallMember | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
RemoveOwnChannelMembership | ✅ | ✅ | ✖️ | ✅ | ✅ | ✖️ |
RunMessageAction | ✅ | ✅ | ✖️ | ✅ | ✅ | ✖️ |
Screenshare | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
SendAudio | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
SendCustomEvent | ✅ | ✅ | ✖️ | ✅ | ✅ | ✖️ |
SendEvent | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
SendVideo | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
SkipChannelCooldown | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✖️ |
SkipMessageModeration | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✖️ |
StartBroadcasting | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
StartRecording | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
StartTranscription | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
StopBroadcasting | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
StopRecording | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
StopTranscription | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
TruncateChannel | ✅ | ✖️ | ✖️ | ✖️ | ✖️ | ✅ |
UnblockMessage | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✖️ |
UpdateCall | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateCallMember | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateCallMemberRole | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateCallPermissions | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateCallSettings | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateChannel | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✅ |
UpdateChannelCooldown | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✖️ |
UpdateChannelFrozen | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✖️ |
UpdateChannelMembers | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✅ |
UpdateFlagReport | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateMessage | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✅ |
UploadAttachment | ✅ | ✅ | ✖️ | ✅ | ✅ | ✖️ |
UseFrozenChannel | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
livestream
Resource | admin | moderator | user | channel_member | channel_moderator | guest | anonymous | owner |
---|---|---|---|---|---|---|---|---|
AddLinks | ✅ | ✅ | ✅ | ✅ | ✅ | ✖️ | ✖️ | ✅ |
AddOwnChannelMembership | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
BanUser | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✖️ | ✖️ | ✖️ |
BlockUser | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
CreateCall | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✖️ | ✖️ | ✖️ |
CreateCallReaction | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
CreateChannel | ✅ | ✅ | ✅ | ✅ | ✅ | ✖️ | ✖️ | ✖️ |
CreateDistinctChannelForOthers | ✅ | ✅ | ✅ | ✅ | ✅ | ✖️ | ✖️ | ✖️ |
CreateMessage | ✅ | ✅ | ✅ | ✅ | ✅ | ✖️ | ✖️ | ✅ |
CreateReaction | ✅ | ✅ | ✅ | ✅ | ✅ | ✖️ | ✖️ | ✅ |
CreateSystemMessage | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✖️ | ✖️ | ✖️ |
DeleteAttachment | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✖️ | ✖️ | ✅ |
DeleteChannel | ✅ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
DeleteMessage | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✖️ | ✖️ | ✅ |
DeleteReaction | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✖️ | ✖️ | ✅ |
DeleteRecording | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
EndCall | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
JoinBackstage | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
JoinCall | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
JoinEndedCall | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
ListRecordings | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
MuteUsers | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
PinCallTrack | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
PinMessage | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✖️ | ✖️ | ✅ |
ReadCall | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
ReadChannel | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
ReadChannelMembers | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
ReadFlagReports | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
ReadMessageFlags | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✖️ | ✖️ | ✖️ |
RecreateChannel | ✅ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
RemoveCallMember | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
RemoveOwnChannelMembership | ✅ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
RunMessageAction | ✅ | ✅ | ✅ | ✅ | ✅ | ✖️ | ✖️ | ✅ |
Screenshare | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
SendAudio | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
SendCustomEvent | ✅ | ✅ | ✅ | ✅ | ✅ | ✖️ | ✖️ | ✅ |
SendEvent | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
SendVideo | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
SkipChannelCooldown | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✖️ | ✖️ | ✖️ |
SkipMessageModeration | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✖️ | ✖️ | ✖️ |
StartBroadcasting | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
StartRecording | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
StartTranscription | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
StopBroadcasting | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
StopRecording | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
StopTranscription | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
TruncateChannel | ✅ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UnblockMessage | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✖️ | ✖️ | ✖️ |
UpdateCall | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateCallMember | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateCallMemberRole | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateCallPermissions | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateCallSettings | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateChannel | ✅ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateChannelCooldown | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✖️ | ✖️ | ✖️ |
UpdateChannelFrozen | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✖️ | ✖️ | ✖️ |
UpdateChannelMembers | ✅ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateFlagReport | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateMessage | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✖️ | ✖️ | ✅ |
UploadAttachment | ✅ | ✅ | ✅ | ✅ | ✅ | ✖️ | ✖️ | ✅ |
UseFrozenChannel | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
team
Resource | admin | moderator | user | channel_member | channel_moderator | owner |
---|---|---|---|---|---|---|
AddLinks | ✅ | ✅ | ✖️ | ✅ | ✅ | ✖️ |
AddOwnChannelMembership | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
BanUser | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✖️ |
BlockUser | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
CreateCall | ✅ | ✅ | ✖️ | ✅ | ✅ | ✖️ |
CreateCallReaction | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
CreateChannel | ✅ | ✅ | ✅ | ✅ | ✅ | ✖️ |
CreateDistinctChannelForOthers | ✅ | ✅ | ✅ | ✅ | ✅ | ✖️ |
CreateMessage | ✅ | ✅ | ✖️ | ✅ | ✅ | ✖️ |
CreateReaction | ✅ | ✅ | ✖️ | ✅ | ✅ | ✖️ |
CreateSystemMessage | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✖️ |
DeleteAttachment | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✅ |
DeleteChannel | ✅ | ✖️ | ✖️ | ✖️ | ✖️ | ✅ |
DeleteMessage | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✅ |
DeleteReaction | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✅ |
DeleteRecording | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
EndCall | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
JoinBackstage | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
JoinCall | ✅ | ✅ | ✖️ | ✅ | ✅ | ✅ |
JoinEndedCall | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
ListRecordings | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
MuteUsers | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
PinCallTrack | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
PinMessage | ✅ | ✅ | ✖️ | ✅ | ✅ | ✖️ |
ReadCall | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
ReadChannel | ✅ | ✅ | ✖️ | ✅ | ✅ | ✅ |
ReadChannelMembers | ✅ | ✅ | ✖️ | ✅ | ✅ | ✅ |
ReadFlagReports | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
ReadMessageFlags | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✖️ |
RecreateChannel | ✅ | ✖️ | ✖️ | ✖️ | ✖️ | ✅ |
RemoveCallMember | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
RemoveOwnChannelMembership | ✅ | ✅ | ✖️ | ✅ | ✅ | ✖️ |
RunMessageAction | ✅ | ✅ | ✖️ | ✅ | ✅ | ✖️ |
Screenshare | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
SendAudio | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
SendCustomEvent | ✅ | ✅ | ✖️ | ✅ | ✅ | ✖️ |
SendEvent | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
SendVideo | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
SkipChannelCooldown | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✖️ |
SkipMessageModeration | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✖️ |
StartBroadcasting | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
StartRecording | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
StartTranscription | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
StopBroadcasting | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
StopRecording | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
StopTranscription | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
TruncateChannel | ✅ | ✖️ | ✖️ | ✖️ | ✖️ | ✅ |
UnblockMessage | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✖️ |
UpdateCall | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateCallMember | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateCallMemberRole | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateCallPermissions | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateCallSettings | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateChannel | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✅ |
UpdateChannelCooldown | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✖️ |
UpdateChannelFrozen | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✖️ |
UpdateChannelMembers | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✅ |
UpdateFlagReport | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateMessage | ✅ | ✅ | ✖️ | ✖️ | ✅ | ✅ |
UploadAttachment | ✅ | ✅ | ✖️ | ✅ | ✅ | ✖️ |
UseFrozenChannel | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
commerce
Resource | admin | moderator | channel_member | channel_moderator | guest | owner |
---|---|---|---|---|---|---|
AddLinks | ✅ | ✅ | ✅ | ✅ | ✅ | ✖️ |
AddOwnChannelMembership | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
BanUser | ✅ | ✅ | ✖️ | ✅ | ✖️ | ✖️ |
BlockUser | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
CreateCall | ✅ | ✅ | ✖️ | ✅ | ✖️ | ✖️ |
CreateCallReaction | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
CreateChannel | ✅ | ✅ | ✅ | ✅ | ✅ | ✖️ |
CreateDistinctChannelForOthers | ✅ | ✅ | ✅ | ✅ | ✅ | ✖️ |
CreateMessage | ✅ | ✅ | ✅ | ✅ | ✖️ | ✖️ |
CreateReaction | ✅ | ✅ | ✅ | ✅ | ✖️ | ✖️ |
CreateSystemMessage | ✅ | ✅ | ✖️ | ✅ | ✖️ | ✖️ |
DeleteAttachment | ✅ | ✅ | ✖️ | ✅ | ✖️ | ✅ |
DeleteChannel | ✅ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
DeleteMessage | ✅ | ✅ | ✖️ | ✅ | ✖️ | ✅ |
DeleteReaction | ✅ | ✅ | ✖️ | ✅ | ✖️ | ✅ |
DeleteRecording | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
EndCall | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
JoinBackstage | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
JoinCall | ✅ | ✅ | ✅ | ✅ | ✖️ | ✅ |
JoinEndedCall | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
ListRecordings | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
MuteUsers | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
PinCallTrack | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
PinMessage | ✅ | ✅ | ✖️ | ✅ | ✖️ | ✅ |
ReadCall | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
ReadChannel | ✅ | ✅ | ✅ | ✅ | ✖️ | ✅ |
ReadChannelMembers | ✅ | ✅ | ✅ | ✅ | ✖️ | ✅ |
ReadFlagReports | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
ReadMessageFlags | ✅ | ✅ | ✖️ | ✅ | ✖️ | ✖️ |
RecreateChannel | ✅ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
RemoveCallMember | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
RemoveOwnChannelMembership | ✅ | ✅ | ✅ | ✅ | ✖️ | ✖️ |
RunMessageAction | ✅ | ✅ | ✅ | ✅ | ✖️ | ✖️ |
Screenshare | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
SendAudio | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
SendCustomEvent | ✅ | ✅ | ✅ | ✅ | ✖️ | ✖️ |
SendEvent | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
SendVideo | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
SkipChannelCooldown | ✅ | ✅ | ✖️ | ✅ | ✖️ | ✖️ |
SkipMessageModeration | ✅ | ✅ | ✖️ | ✅ | ✖️ | ✖️ |
StartBroadcasting | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
StartRecording | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
StartTranscription | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
StopBroadcasting | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
StopRecording | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
StopTranscription | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
TruncateChannel | ✅ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UnblockMessage | ✅ | ✅ | ✖️ | ✅ | ✖️ | ✖️ |
UpdateCall | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateCallMember | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateCallMemberRole | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateCallPermissions | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateCallSettings | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateChannel | ✅ | ✅ | ✖️ | ✅ | ✖️ | ✖️ |
UpdateChannelCooldown | ✅ | ✅ | ✖️ | ✅ | ✖️ | ✖️ |
UpdateChannelFrozen | ✅ | ✅ | ✖️ | ✅ | ✖️ | ✖️ |
UpdateChannelMembers | ✅ | ✅ | ✖️ | ✅ | ✖️ | ✅ |
UpdateFlagReport | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateMessage | ✅ | ✅ | ✖️ | ✅ | ✖️ | ✅ |
UploadAttachment | ✅ | ✅ | ✅ | ✅ | ✅ | ✖️ |
UseFrozenChannel | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
gaming
Resource | admin | moderator | channel_member | channel_moderator | owner |
---|---|---|---|---|---|
AddLinks | ✅ | ✅ | ✅ | ✅ | ✖️ |
AddOwnChannelMembership | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
BanUser | ✅ | ✅ | ✖️ | ✅ | ✖️ |
BlockUser | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
CreateCall | ✅ | ✅ | ✅ | ✅ | ✖️ |
CreateCallReaction | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
CreateChannel | ✅ | ✖️ | ✖️ | ✖️ | ✖️ |
CreateDistinctChannelForOthers | ✅ | ✖️ | ✖️ | ✖️ | ✖️ |
CreateMessage | ✅ | ✅ | ✅ | ✅ | ✖️ |
CreateReaction | ✅ | ✅ | ✅ | ✅ | ✖️ |
CreateSystemMessage | ✅ | ✅ | ✖️ | ✅ | ✖️ |
DeleteAttachment | ✅ | ✅ | ✖️ | ✅ | ✅ |
DeleteChannel | ✅ | ✖️ | ✖️ | ✖️ | ✖️ |
DeleteMessage | ✅ | ✅ | ✖️ | ✅ | ✅ |
DeleteReaction | ✅ | ✅ | ✖️ | ✅ | ✅ |
DeleteRecording | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
EndCall | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
JoinBackstage | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
JoinCall | ✅ | ✅ | ✅ | ✅ | ✅ |
JoinEndedCall | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
ListRecordings | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
MuteUsers | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
PinCallTrack | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
PinMessage | ✅ | ✅ | ✖️ | ✅ | ✖️ |
ReadCall | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
ReadChannel | ✅ | ✅ | ✅ | ✅ | ✖️ |
ReadChannelMembers | ✅ | ✅ | ✅ | ✅ | ✖️ |
ReadFlagReports | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
ReadMessageFlags | ✅ | ✅ | ✖️ | ✅ | ✖️ |
RecreateChannel | ✅ | ✖️ | ✖️ | ✖️ | ✖️ |
RemoveCallMember | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
RemoveOwnChannelMembership | ✅ | ✅ | ✅ | ✅ | ✖️ |
RunMessageAction | ✅ | ✅ | ✅ | ✅ | ✖️ |
Screenshare | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
SendAudio | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
SendCustomEvent | ✅ | ✅ | ✅ | ✅ | ✖️ |
SendEvent | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
SendVideo | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
SkipChannelCooldown | ✅ | ✅ | ✖️ | ✅ | ✖️ |
SkipMessageModeration | ✅ | ✅ | ✖️ | ✅ | ✖️ |
StartBroadcasting | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
StartRecording | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
StartTranscription | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
StopBroadcasting | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
StopRecording | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
StopTranscription | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
TruncateChannel | ✅ | ✖️ | ✖️ | ✖️ | ✖️ |
UnblockMessage | ✅ | ✅ | ✖️ | ✅ | ✖️ |
UpdateCall | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateCallMember | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateCallMemberRole | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateCallPermissions | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateCallSettings | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateChannel | ✅ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateChannelCooldown | ✅ | ✅ | ✖️ | ✅ | ✖️ |
UpdateChannelFrozen | ✅ | ✅ | ✖️ | ✅ | ✖️ |
UpdateChannelMembers | ✅ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateFlagReport | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
UpdateMessage | ✅ | ✅ | ✖️ | ✅ | ✅ |
UploadAttachment | ✅ | ✅ | ✅ | ✅ | ✖️ |
UseFrozenChannel | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |