- Print
- DarkLight
- PDF
App Permission System
- Print
- DarkLight
- PDF
Each feature available in the Apps-Engine is mapped to a permission. Adding the permission in the app's manifest ( app.json
file) will unlock said feature to be used by the app. For example, if you add the send messages
permission to your app's manifest, your app can send messages in the Rocket.Chat server. If your app tries to send a message without having the send messages
permission listed in the manifest, Apps-Engine will block the feature, and the app will not be able to perform the desired action.
When installing an app, be it via the Marketplace or installing it manually via zip file, a window asks the user to review the permissions that the app requires to work properly. The user installing the app can either accept and install the app or deny the permissions and not install it.
Add permissions to your app
In your app's manifest file ( app.json
), add the field permissions
. It receives a list containing all the permissions that you are asking for. For example:
{
...
"permissions": [
{
"name": "user.read"
},
{
"name": "user.write"
},
{
"name": "upload.read"
},
],
...
}
List of permissions
Here is a list of the permissions that you need to add to your app:
Permission | Description |
---|---|
| Access user information |
| Modify user information |
| Access files uploaded to the server |
| Upload files to the server |
| Access settings in the server |
| Modify settings in the server |
| Access room information |
| Create and modify rooms |
| Access user roles |
| Modify user roles |
| Access messages |
| Send and modify messages |
| Access to read moderation dashboard information |
| Modify moderation dashboard information |
| Access threads. Effectively allows the app to read all messages in a thread |
| Access Livechat status information |
| Modify Livechat custom field configuration |
| Access Livechat visitor information |
| Modify Livechat visitor information |
| Access Livechat message information |
| Modify Livechat message information |
| Access to read multiple messages at once |
| Access Livechat room information |
| Modify Livechat room information |
| Access Livechat department information |
| Modify Livechat department information |
| Access to read multiple departments at once |
| Access minimal information about the server environment |
| Access to request the workspace access token to interact with Rocket.Chat's Cloud Systems |
| Interact with the UI (UIKit) |
| Use UIKit buttons |
| Register and maintain scheduled jobs |
| Register and maintain scheduled jobs |
| Store internal data in the database |
| Register new slash commands |
| Access to read video conference information |
| Modify video conference information |
| Act as a video conference provider in Rocket.Chat |
| Register new HTTP endpoints |
| Access OAuth information |
| Modify OAuth information |
For an example of how these permissions are used in apps, refer to the Action Buttons topic.
Default permissions
Out of the permissions listed above, the following permissions are present by default to ensure backward compatibility for apps that were developed before the permission system was introduced.
user.read,
user.write,
upload.read,
upload.write,
ui.interaction,
setting.read,
setting.write,
room.read,
room.write,
message.read,
message.write,
livechat-department.read,
livechat-department.write,
livechat-room.read,
livechat-room.write,
livechat-message.read,
livechat-message.write,
livechat-visitor.read,
livechat-visitor.write,
livechat-status.read,
livechat-custom-fields.write,
scheduler.default,
networking.default,
persistence.default,
env.read,
command.default,
videoConference.provider,
videoConference.read,
videoConference.write,
apis.default
Once an app is on the Rocket.Chat workspace, it goes through several lifecycle phases unique to Rocket.Chat. The phases depend on the capabilities that your app has. To learn about the app lifecycle, head over to the next page.