Skip to content
Stand with Ukraine flag

Role-Based Access Control

A Role in ThingsBoard PE defines a set of permissions — which resources a user can access and which operations they can perform. Roles are never assigned directly to users; they flow through three building blocks:

ObjectWhat it is
RoleDefines what is allowed: resource type + operations
User GroupDefines who receives the permissions
Group Permission Entity (GPE)The link between a User Group and a Role — ThingsBoard creates it automatically when you assign a role to a user group

Users do not receive permissions directly. Instead:

Depending on the role type:

  • Generic role — applies recursively to all entities within a Tenant or Customer scope.
  • Group role — applies strictly to a specific Entity Group.

Access is denied by default. A user can only do what an explicitly assigned role permits. There are no deny rules — permissions are purely additive. If a user belongs to multiple user groups, all permissions are combined.

Authority defines a user’s position in the system hierarchy and determines the maximum capabilities available to that user.

The platform supports three authority levels:

Authority levelDescription
SYS_ADMINAssigned to System Administrator users
TENANT_ADMINAssigned to users on the Tenant level
CUSTOMER_USERAssigned to users on the Customer level
  • A user’s authority level is determined at creation time based on where in the hierarchy the user is created.
  • This authority level can be changed by changing Customer level on the Tenant’s one and vice versa.
  • You cannot change the authority level for the sysadmin user and neither tenant nor customer user can be elevated to the level of SYS_ADMIN authority.

ThingsBoard PE supports two role types:

Role typeScope modelUse case
GenericRecursive within Tenant/Customer scopeBroad administrative access
GroupSpecific entity group onlySegmented and isolated access

A Generic role defines a set of permissions that applies recursively to all entities within a selected scope: Tenant, Customer, or Sub-customer (including all descendants).

The scope is not a property of the role itself — it is determined by where the role is assigned. The same role assigned to a user group at Tenant level grants tenant-wide access; assigned at Customer level it grants access only within that customer and its sub-customers.

A Generic role is assigned to a user group via a Group Permission Entity (GPE), which records the user group, the role, and the scope level.

Key characteristics

  • Scope depends on the assignment level (Tenant or Customer).
  • Does not require entity groups.
  • Applies to all entities within the defined scope.
  • Supports hierarchical customer structures.
  1. Navigate to Security ⇾ Roles.
  2. Click + Add role.
  3. Fill in the Name — unique role name
  4. Role type — select Generic
  5. Configure Permissions: Resource and Operations
    (At least one permission entry must be specified).
  6. Click Add.

You can find a description of all available resource types in the permissions table.

To apply a Generic role:

  1. Open Users ⇾ Groups (Tenant level)
    or
    Open Customers ⇾ Manage customer users ⇾ Groups (Customer level).
  2. Open group details.
  3. Navigate to Roles tab.
  4. Click Add.
  5. Select:
    • Role type: Generic
    • Choose the created role
  6. Click Add.

The role now applies recursively within the group’s scope.

A Group role defines permissions for a specific user group over a specific entity group.

Unlike Generic roles, which apply recursively within a scope, Group roles restrict access strictly to explicitly selected entity groups.

Assignment is implemented via a Group Permission Entity (GPE) that links:

  • User Group
  • Entity Group
  • Group Role (permissions)

This model enables precise, group-level access control without extending permissions beyond the targeted entities.

Key characteristics

  • Requires an entity group.
  • Applies only to selected entities.
  • Enables strong segmentation and isolation.
  • Suitable for controlled access within the same tenant.

Every entity group list (Devices, Dashboards, Assets, etc.) has a Share icon on each row that opens a one-step sharing dialog — no separate role creation needed for common permission levels:

  1. Navigate to the entity group list (e.g., Dashboards ⇾ Groups).
  2. Click the Share icon on the desired group row.
  3. Select the Customer to share with.
  4. Either enable All users or select a specific user group within that customer.
  5. Select the Permission level:
    • Read — read-only access (no pre-created role required)
    • Write — read and write access (no pre-created role required)
    • Other — select one or more named Group roles you have already created
  6. Click Share.

ThingsBoard creates the GPE automatically. The shared group becomes visible to the selected users with the specified permission level.

ApproachWhen to use
Quick share (Read / Write)Sharing a group in one step with no pre-created role
Quick share (Other)Applying a named Group role via the share dialog
Full role assignment (via Permissions tab)Reusable roles shared across multiple groups or complex multi-group setups
  1. Navigate to Security ⇾ Roles.
  2. Click + Add role.
  3. Fill in the Name — unique role name
  4. Role type — select Group
  5. Under Permissions, specify required operations. (At least one permission entry must be specified).
  6. Click Add.

The Group role is now available for assignment to entity groups.

  1. Navigate to the relevant entity type (e.g., Devices ⇾ Groups).
  2. Open the target entity group details.
  3. Go to the Permissions tab.
  4. Click Add.
  5. Select:
    • The created Group role
    • Owner
    • Target user group
  6. Click Add.

The role now applies only to that entity group.

ThingsBoard automatically creates two user groups with associated Generic roles when a Tenant or Customer is created. These defaults give you a working permission structure out of the box.

User groupAssociated roleDefault permissions
Tenant AdministratorsTenant Administrator (Generic)All resources — All operations
Tenant UsersTenant User (Generic)Profile — All operations; All resources — Read, RPC Call, Read Credentials, Read Attributes, Read Telemetry, Read Calculated Field and Alarm Rules
User groupAssociated roleDefault permissions
Customer AdministratorsCustomer Administrator (Generic)All resources — All operations
Customer UsersCustomer User (Generic)Profile — All operations; All resources — Read, RPC Call, Read Credentials, Read Attributes, Read Telemetry

You can modify these default roles or use them as a starting point when building custom permission structures.


RecipeRole typesWhat it demonstrates
Read-only analystGenericRead-only access to all tenant entities and telemetry
Customer scoped accessGenericRestrict users to their own customer’s data without entity groups
Generic role scopeGenericHow the same role grants different access at Tenant vs. Customer level
Isolated device groupsGroupPer-group device access with no cross-access between user groups
Multi-facility access controlGeneric + GroupSupervisors, facility managers, and end users across multiple buildings

Each permission entry in a role specifies a resource type and one or more operations:

OperationWhat it allows
ReadView entity details, configuration, and settings
WriteModify entity details, attributes, and configuration
CreateCreate new entities of this resource type
DeleteDelete entities of this resource type
RPC CallSend RPC commands to devices
Read AttributesRead entity attributes (client, shared, and server-side)
Read TelemetryRead entity time-series telemetry data
Claim DevicesClaim unowned devices under the current tenant or customer
AllAll of the above

Permissions are evaluated per resource type — you can grant Read on Device and Write on Dashboard as separate entries within the same role.


The table below lists all available resource types that can be secured using RBAC in ThingsBoard Professional Edition.

Each resource represents a platform entity or system component that supports permission-based access control. Permissions are configured within roles and determine what operations users are allowed to perform on these resources.

ResourceDescription
AllGrants selected operations across all resources within the assigned scope.
API Usage StateAccess API usage statistics and telemetry metrics.
AlarmView and manage platform alarms.
AssetManage logical IoT entities such as facilities, vehicles, or fields.
Asset GroupManage groups of assets for structured access control.
Asset ProfileConfigure shared settings for multiple assets.
Audit LogView system activity and user action history.
BillingManage billing information and payment configuration.
Blob EntityManage stored binary objects used for reporting and dashboard snapshots.
ConverterManage uplink and downlink data converters in integrations.
CustomerManage customer entities within the tenant hierarchy.
Customer GroupManage logical groupings of customers.
DashboardCreate and manage dashboards and visualizations.
Dashboard GroupManage dashboard collections.
DeviceManage IoT devices, telemetry, attributes, credentials, and RPC interactions.
Device GroupManage groups of devices for structured segmentation.
Device ProfileConfigure shared device behavior and settings.
EdgeManage ThingsBoard Edge instances.
Edge GroupManage groups of Edge instances.
Entity ViewProvide limited exposure of device or asset data to customers.
Entity View GroupManage grouped entity views.
Group PermissionManage RBAC mappings between user groups, roles, and entity groups.
IntegrationManage external system integrations.
NotificationManage platform notifications and delivery channels.
OTA PackageManage firmware and software update packages for devices.
ProfileManage personal user profile settings.
QueueManage rule engine processing queues.
ResourceManage shared resource library files.
RoleManage RBAC roles and permission definitions.
Rule ChainConfigure data processing and automation logic.
Scheduler EventManage scheduled automation events.
TenantManage tenant-level configuration and hierarchy.
UserManage user accounts and access settings.
User GroupManage user groups for RBAC assignments.
Version ControlExport and restore ThingsBoard entities using Git-based version control.
White LabelingConfigure platform branding and UI customization.
Widget Type and Widget BundleManage widget definitions and widget bundles in the UI library.