Permissions in ToolJet determine what actions users can perform and what resources they can access within a workspace. ToolJet uses a Role-Based Access Control (RBAC) system to manage these permissions efficiently.
## User Roles
ToolJet has three default user roles, each with different levels of access:
1.**Admin**: Full access to manage the workspace, including users, groups, and all resources.
2.**Builder**: Can create and edit apps, data sources, and other resources.
3.**End-user**: Can only view and use apps they have been given access to.
## Groups
- **Default Groups**: Correspond to the user roles - Admin, Builder, and End-user.
- **Custom Groups**: Can be created to assign specific permissions to sets of users.
Permissions can be set at two levels: workspace-level and granular level. This allows for both broad and fine-grained control over user access.
### Workspace-Level Permissions
Workspace-level permissions apply broadly to all resources of a particular type within the workspace. These are set in the **Permissions** tab of each user group.
For each resource type, different levels of permissions can be set:
- **Apps**:
- **Create**: Allows users to create new apps.
- **Delete**: Allows users to delete apps.
- **Data Sources**:
- **Create**: Allows users to create new data source connections.
- **Delete**: Allows users to delete data source connections.
- **Folders**:
- **Create/Update/Delete**: Allows users to create, update, or delete folders.
- **Workspace Constants/Variables**:
- **Create/Update/Delete**: Allows users to create, update, or delete workspace-level constants/variables.
For more fine-grained control, administrators can set permissions for individual apps and data sources in the **Granular Access** tab of each user group.
- Users inherit permissions from their assigned role and any custom groups they belong to.
- Adding users to custom groups with higher permissions than their current role will automatically upgrade their user role to match the higher access level.
- If a user’s role is downgraded to one with lower permissions, they will automatically be removed from any custom groups that provided higher access than their new role allows.