Skip to main content

Role Based Access Control (RBAC)

Overviewโ€‹

This document describes the available permissions within the Role-Based Access Control (RBAC) system. Each service provides specific actions that can be granted to users through role assignments.

Permission Scopeโ€‹

Permissions can be granted at different scopes:

  • Resource-specific: Access to individual, specifically identified resources
    • All resources: Access to all resources of a type across the entire system
  • Group-based: Access to resources within specific organisational groups
    • If a user has access to a group, this also includes all subgroups
  • Tag-based: Access to resources with a given tag

Each policy in a role can use its own scope. When several policies should target the same thing โ€” everything in one group, everything carrying one tag, or simply everything โ€” set it once for the whole role instead. See Common resource scope.

danger

Tag-level permissions require users to have read access to the selected tags; otherwise, the permission system won't function as expected.

Getting Startedโ€‹

To assign permissions to users:

  1. Create a user role, select an existing one, or duplicate one to start from its policies
  2. Define policies using the policy editor

For the policy editor we support two ways for the user to define the desired policy:

  1. Policy creation wizard
  2. Policy creation via JSON

Contact your system administrator for assistance with role assignments and permission management.

Policy Creation Wizardโ€‹

The wizard builds one policy per resource type. For each policy you choose the actions it grants and the resources it applies to.

Above the policy list sits Common resource scope โ€” the target shared by the whole role. Set it first: every policy that can use it then follows it automatically, and each policy can still be detached individually to pick its own resources. See Common resource scope.

Policy Creation via JSONโ€‹

To switch to the JSON editor, click the JSON button above the policy list.

JSON Formatโ€‹

The JSON format is structured like this:

[
{
"name": "Project Policy",
"action": [
"project:createVersion",
"project:readProject",
"project:updateProject",
"project:updateVersion"
],
"resource": [
"project:group:95d140cc-c391-4e25-ac92-abf57bb9a415"
]
},
{
"name": "Device Policy",
"action": [
"device:readDevice",
"device:createDevice",
"device:updateDevice"
],
"resource": [
"device:id:290133f7-79c2-40ce-bdc2-48a73dd8691c",
"device:id:9a2642b9-8101-4527-81b8-d74f21ccb650"
]
},
{
"name": "Gateway Policy",
"action": [
"gateway:createGateway",
"gateway:readGateway",
"gateway:updateGateway"
],
"resource": [
"gateway:*"
]
}
]

It is defined as an array of policies, where each policy contains the following properties:

  • name: Unique name of the policy
  • description: Optional meaningful description of the policy
  • action: A list of allowed actions for the given policy
  • resource: A list of resource identifications
    • All resources of a given type: gateway:*
    • Specific resources by IDs: gateway:id:<GATEWAY_ID>
    • All resources of a given type in a group (or any subgroup): gateway:group:<GROUP_ID>
    • All resources of a given type with a specific tag: gateway:tag:<TAG>
info

The common resource scope is not a field in this format. It is a shortcut in the wizard that writes the same resource values shown above โ€” project:group:<ID>, device:tag:<TAG>, gateway:* โ€” so the policies are always the source of truth. When a role is reopened, the scope displayed is read back from the resources its policies share.

Predefined User Rolesโ€‹

Admin User Role
[
{
"name": "Admin User Role Policy",
"action": [
"*"
],
"resource": [
"*"
]
}
]
Engineer User Role
[
{
"name": "Device Policy",
"action": [
"device:backup",
"device:connect",
"device:createDevice",
"device:snapshot",
"device:deleteDevice",
"device:deploy",
"device:linkDevice",
"device:readDevice",
"device:readVariableList",
"device:setPassword",
"device:unlinkDevice",
"device:updateDevice",
"device:writeVariableList"
],
"resource": [
"device:*"
]
},
{
"name": "Document Policy",
"action": [
"document:createDocument",
"document:createVersion",
"document:deleteDocument",
"document:deleteVersion",
"document:downloadVersion",
"document:linkDevice",
"document:linkGateway",
"document:linkProject",
"document:listVersions",
"document:readDocument",
"document:unlinkDevice",
"document:unlinkGateway",
"document:unlinkProject",
"document:updateDocument",
"document:updateVersion"
],
"resource": [
"document:*"
]
},
{
"name": "Gateway Policy",
"action": [
"gateway:createGateway",
"gateway:deleteGateway",
"gateway:readGateway",
"gateway:updateGateway"
],
"resource": [
"gateway:*"
]
},
{
"name": "Ident Policy",
"action": [
"ident:readUser",
"ident:readUserGroup"
],
"resource": [
"ident:*"
]
},
{
"name": "License Policy",
"action": [
"license:createLicense",
"license:deleteLicense",
"license:readLicense",
"license:useLicense"
],
"resource": [
"license:*"
]
},
{
"name": "Pipeline Policy",
"action": [
"pipeline:createPipeline",
"pipeline:deletePipeline",
"pipeline:listExecutions",
"pipeline:readPipeline",
"pipeline:triggerExecution",
"pipeline:updatePipeline"
],
"resource": [
"pipeline:*"
]
},
{
"name": "Project Policy",
"action": [
"project:createProject",
"project:createVersion",
"project:deleteProject",
"project:deleteVersion",
"project:downloadVersion",
"project:linkDevice",
"project:linkProject",
"project:listVersions",
"project:lockProject",
"project:readProject",
"project:unlinkDevice",
"project:unlinkProject",
"project:unlockProject",
"project:updateProject",
"project:updateVersion"
],
"resource": [
"project:*"
]
},
{
"name": "Resource Group Policy",
"action": [
"resourceGroup:readResourceGroup"
],
"resource": [
"resourceGroup:*"
]
},
{
"name": "Tag Policy",
"action": [
"tag:*"
],
"resource": [
"tag:*"
]
},
{
"name": "Vault Policy",
"action": [
"vault:createSecret",
"vault:deleteSecret",
"vault:linkSecret",
"vault:listSecrets",
"vault:readVault",
"vault:unceilSecret",
"vault:updateSecret"
],
"resource": [
"vault:*"
]
}
]
Tech User Role
[
{
"name": "Device Policy",
"action": [
"device:backup",
"device:connect",
"device:snapshot",
"device:deploy",
"device:readDevice",
"device:readVariableList",
"device:setPassword",
"device:writeVariableList"
],
"resource": [
"device:*"
]
},
{
"name": "Document Policy",
"action": [
"document:createVersion",
"document:deleteVersion",
"document:downloadVersion",
"document:listVersions",
"document:readDocument",
"document:updateVersion"
],
"resource": [
"document:*"
]
},
{
"name": "Gateway Policy",
"action": [
"gateway:readGateway"
],
"resource": [
"gateway:*"
]
},
{
"name": "Ident Policy",
"action": [
"ident:readUser",
"ident:readUserGroup"
],
"resource": [
"ident:*"
]
},
{
"name": "License Policy",
"action": [
"license:useLicense"
],
"resource": [
"license:*"
]
},
{
"name": "Pipeline Policy",
"action": [
"pipeline:listExecutions",
"pipeline:readPipeline",
"pipeline:triggerExecution"
],
"resource": [
"pipeline:*"
]
},
{
"name": "Project Policy",
"action": [
"project:createVersion",
"project:deleteVersion",
"project:downloadVersion",
"project:listVersions",
"project:lockProject",
"project:readProject",
"project:unlockProject",
"project:updateVersion"
],
"resource": [
"project:*"
]
},
{
"name": "Resource Group Policy",
"action": [
"resourceGroup:readResourceGroup"
],
"resource": [
"resourceGroup:*"
]
},
{
"name": "Tag Policy",
"action": [
"tag:readTag"
],
"resource": [
"tag:*"
]
},
{
"name": "Vault Policy",
"action": [
"vault:listSecrets",
"vault:readVault",
"vault:updateSecret"
],
"resource": [
"vault:*"
]
}
]
Read Only User Role
[
{
"name": "Device Policy",
"action": [
"device:readDevice",
"device:readVariableList"
],
"resource": [
"device:*"
]
},
{
"name": "Document Policy",
"action": [
"document:listVersions",
"document:readDocument"
],
"resource": [
"document:*"
]
},
{
"name": "Gateway Policy",
"action": [
"gateway:readGateway"
],
"resource": [
"gateway:*"
]
},
{
"name": "Ident Policy",
"action": [
"ident:readUser",
"ident:readUserGroup"
],
"resource": [
"ident:*"
]
},
{
"name": "Pipeline Policy",
"action": [
"pipeline:listExecutions"
],
"resource": [
"pipeline:*"
]
},
{
"name": "Project Policy",
"action": [
"project:listVersions",
"project:readProject"
],
"resource": [
"project:*"
]
},
{
"name": "Resource Group Policy",
"action": [
"resourceGroup:readResourceGroup"
],
"resource": [
"resourceGroup:*"
]
},
{
"name": "Tag Policy",
"action": [
"tag:readTag"
],
"resource": [
"tag:*"
]
}
]

Available Actionsโ€‹

Audit Log Serviceโ€‹

The Audit Log service manages access to audit and logging information.

ActionDescriptionAction ID
All actionsComplete access to all autit log operationsauditLog:*
Read audit logView audit log entriesauditLog:readAuditLog

Billing Serviceโ€‹

The Billing service manages billing information and operations.

ActionDescriptionAction ID
All actionsComplete access to all billing operationsbilling:*
Read billingView billing informationbilling:getBilling
Update billingModify billing settings and databilling:updateBilling

Device Serviceโ€‹

The Device service manages device lifecycle, connections and operations.

ActionDescriptionAction ID
All actionsComplete access to all device operationsdevice:*
Create deviceAdd new devices to the systemdevice:createDevice
Read deviceView device information and statusdevice:readDevice
Update deviceModify device settings and configurationdevice:updateDevice
Delete deviceRemove devices from the systemdevice:deleteDevice
Link gatewayLink gateways with a devicedevice:linkGateway
Unlink gatewayUnlink gateways from a devicedevice:unlinkGateway
Link deviceLink devices with a devicedevice:linkDevice
Unlink deviceUnlink devices from a devicedevice:unlinkDevice
Connect to deviceEstablish connections to devicesdevice:connect
Deploy to deviceDeploy configurations or software to devicesdevice:deploy
Backup deviceCreate backups of device configurationsdevice:backup
Create device snapshotCreate point-in-time snapshots of devicesdevice:snapshot
Set device passwordConfigure device authentication credentialsdevice:setPassword
Read variables listRead the list of variables of the devicedevice:readVariableList
Write variables listWrite to the list of variables of the devicedevice:writeVariableList

Document Serviceโ€‹

The Document service manages document creation, versioning and linking to other resources.

ActionDescriptionAction ID
All actionsComplete access to all document operationsdocument:*
Create documentCreate new documentsdocument:createDocument
Create document versionCreate new versions of existing documentsdocument:createVersion
Read documentView document content and informationdocument:readDocument
List document versionsView all versions of a documentdocument:listVersions
Download document versionDownload specific document versionsdocument:downloadVersion
Update documentModify document content and metadatadocument:updateDocument
Update document versionModify existing document versionsdocument:updateVersion
Delete documentRemove documents from the systemdocument:deleteDocument
Delete document versionRemove specific document versionsdocument:deleteVersion
Link projectAssociate documents with projectsdocument:linkProject
Link deviceAssociate documents with devicesdocument:linkDevice
Link gatewayAssociate documents with gatewaysdocument:linkGateway
Link licenseAssociate documents with licensesdocument:linkLicense
Link userAssociate documents with usersdocument:linkUser
Unlink projectRemove document-project associationsdocument:unlinkProject
Unlink deviceRemove document-device associationsdocument:unlinkDevice
Unlink gatewayRemove document-gateway associationsdocument:unlinkGateway
Unlink licenseRemove document-license associationsdocument:unlinkLicense
Unlink userRemove document-user associationsdocument:unlinkUser

Gateway Serviceโ€‹

The Gateway service manages gateway resources and operations.

ActionDescriptionAction ID
All actionsComplete access to all gateway operationsgateway:*
Create gatewayAdd new gateways to the systemgateway:createGateway
Read gatewayView gateway information and statusgateway:readGateway
Update gatewayModify gateway settings and configurationgateway:updateGateway
Delete gatewayRemove gateways from the systemgateway:deleteGateway

Identity Serviceโ€‹

The Identity service manages users, user roles, user groups and tenant information.

ActionDescriptionAction ID
All actionsComplete access to all identity operationsident:*
Create userAdd new users to the systemident:createUser
Read userView user information and detailsident:readUser
Update userModify user account informationident:updateUser
Delete userRemove users from the systemident:deleteUser
Update profileModify user profile informationident:updateProfile
Update tenantModify tenant settings and configurationident:updateTenant
Delete tenantRemove tenants from the systemident:deleteTenant
Create user roleCreate new user rolesident:createUserRole
Read user roleView user role information and detailsident:readUserRole
Update user roleModify existing user rolesident:updateUserRole
Delete user roleRemove user roles from the systemident:deleteUserRole
Link user roleAssign roles to usersident:linkUserRole
Unlink user roleRemove role assignments from usersident:unlinkUserRole

Integration Serviceโ€‹

The Integration service manages integrations, like for GitHub.

ActionDescriptionAction ID
All actionsComplete access to all integration operationsintegration:*
Create integrationAdd new integrations to the systemintegration:createIntegration
Read integrationView integration information and detailsintegration:readIntegration
Update integrationModify an existing integrationintegration:updateIntegration
Delete integrationRemove integrations from the systemintegration:deleteIntegration
List repositoriesView repositories for an existing integrationintegration:listRepositories
Update repositoryModify repository settings and configurationintegration:updateRepository

License Serviceโ€‹

The License service manages software licenses and their usage.

ActionDescriptionAction ID
All actionsComplete access to all license operationslicense:*
Create licenseAdd new licenses to the systemlicense:createLicense
Read licenseView license information and statuslicense:readLicense
Delete licenseRemove licenses from the systemlicense:deleteLicense
Use licenseActivate and utilize licenseslicense:useLicense
Admin unlock licenseAdministrative unlock of licenses which are locked by any userlicense:adminUnlockLicense

Pipeline Serviceโ€‹

The Pipeline service manages automated workflows and their executions.

ActionDescriptionAction ID
All actionsComplete access to all pipeline operationspipeline:*
Create pipelineCreate new automated pipelinespipeline:createPipeline
Read pipelineView pipeline information and configurationpipeline:readPipeline
List pipeline executionsView pipeline execution historypipeline:listExecutions
Trigger pipeline executionStart pipeline executionspipeline:triggerExecution
Update pipelineModify pipeline settings and configurationpipeline:updatePipeline
Delete pipelineRemove pipelines from the systempipeline:deletePipeline
Delete pipeline executionsRemove pipeline execution recordspipeline:deleteExecutions
info

Jobs are automatically accessible through pipeline permissions. If you have permission to access a pipeline and list its executions, you can view job status, logs and other details.

Project Serviceโ€‹

The Project service manages project lifecycle, versioning and device linking. For project-versions, the permissions are always granted on the parent project.

ActionDescriptionAction ID
All actionsComplete access to all project operationsproject:*
Create projectCreate new projectsproject:createProject
Create project versionCreate new versions for existing projectsproject:createVersion
Read projectView project information and detailsproject:readProject
List project versionsView all versions of a projectproject:listVersions
Download project versionDownload specific project versionsproject:downloadVersion
Update projectModify project settings and informationproject:updateProject
Update project versionModify the comment of a project versionproject:updateVersion
Delete projectRemove projects from the systemproject:deleteProject
Delete project versionRemove specific project versions from a projectproject:deleteVersion
Link projectAssociate projects (eg. libraries) with other projects (eg. standard projects)project:linkProject
Link deviceConnect devices to projectsproject:linkDevice
Unlink projectRemove project associations (eg. library from standard project)project:unlinkProject
Unlink deviceDisconnect devices from projectsproject:unlinkDevice
Lock projectLock projects to prevent modificationsproject:lockProject
Unlock projectUnlock projects which are locked by the own user to allow modificationsproject:unlockProject
Admin unlock projectAdministrative unlock of projects which are locked by any userproject:adminUnlockProject

Resource Groups Serviceโ€‹

The Resource Groups service manages organizational groupings of resources.

ActionDescriptionAction ID
All ActionsComplete access to all resource group operationsresourceGroup:*
Create Resource GroupCreate new resource groupsresourceGroup:createResourceGroup
Read Resource GroupView resource group informationresourceGroup:readResourceGroup
Update Resource GroupModify resource group settingsresourceGroup:updateResourceGroup
Delete Resource GroupRemove resource groups from the systemresourceGroup:deleteResourceGroup

Tag Serviceโ€‹

The Tag service manages metadata tags and their associations with various resources.

ActionDescriptionAction ID
All actionsComplete access to all tag operationstag:*
Create tagCreate new metadata tagstag:createTag
Read tagView tag information and associationstag:readTag
Delete tagRemove tags from the systemtag:deleteTag
Link deviceAssociate tags with devicestag:linkDevice
Link documentAssociate tags with documentstag:linkDocument
Link gatewayAssociate tags with gatewaystag:linkGateway
Link licenseAssociate tags with licensestag:linkLicense
Link projectAssociate tags with projectstag:linkProject
Link userAssociate tags with userstag:linkUser
Link vaultAssociate tags with vaultstag:linkVault
Link pipelineAssociate tags with pipelinestag:linkPipeline
Unlink deviceRemove tag associations from devicestag:unlinkDevice
Unlink documentRemove tag associations from documentstag:unlinkDocument
Unlink gatewayRemove tag associations from gatewaystag:unlinkGateway
Unlink licenseRemove tag associations from licensestag:unlinkLicense
Unlink projectRemove tag associations from projectstag:unlinkProject
Unlink userRemove tag associations from userstag:unlinkUser
Unlink vaultRemove tag associations from vaultstag:unlinkVault
Unlink pipelineRemove tag associations from pipelinestag:unlinkPipeline

Vault Serviceโ€‹

The Vault service manages secure storage of secrets and sensitive information.

ActionDescriptionAction ID
All actionsComplete access to all vault operationsvault:*
Create vaultCreate new secure vaultsvault:createVault
Create secretAdd new secrets to vaultsvault:createSecret
Read vaultView vault information and metadatavault:readVault
List secretsView secrets contained in vaultsvault:listSecrets
Link secretAssociate secrets with other resourcesvault:linkSecret
Update vaultModify vault settings and configurationvault:updateVault
Update secretModify existing secretsvault:updateSecret
Delete vaultRemove vaults from the systemvault:deleteVault
Delete secretRemove secrets from vaultsvault:deleteSecret
Unceil secretReveal and access secret valuesvault:unceilSecret

Webhook Serviceโ€‹

The Webhook service manages the configuration, delivery, security and reliability of outbound HTTP notifications triggered by system events, enabling real-time integrations with external systems.

ActionDescriptionAction ID
All actionsComplete access to all webhook operationswebhook:*
Create webhookCreate new webhook configurationswebhook:createWebhook
Read webhookView webhook configurationswebhook:readWebhook
Update webhookModify webhook settings and configurationwebhook:updateWebhook
Delete webhookRemove webhooks from the systemwebhook:deleteWebhook

Webhook Serviceโ€‹

The Webhook service manages secure storage of secrets and sensitive information.

ActionDescriptionAction ID
All actionsComplete access to all vault operationsvault:*
Create vaultCreate new secure vaultsvault:createVault
Create secretAdd new secrets to vaultsvault:createSecret
Read vaultView vault information and metadatavault:readVault
List secretsView secrets contained in vaultsvault:listSecrets
Link secretAssociate secrets with other resourcesvault:linkSecret
Update vaultModify vault settings and configurationvault:updateVault
Update secretModify existing secretsvault:updateSecret
Delete vaultRemove vaults from the systemvault:deleteVault
Delete secretRemove secrets from vaultsvault:deleteSecret
Unceil secretReveal and access secret valuesvault:unceilSecret

Vault Serviceโ€‹

The Vault service manages secure storage of secrets and sensitive information.

ActionDescriptionAction ID
All actionsComplete access to all vault operationsvault:*
Create vaultCreate new secure vaultsvault:createVault
Create secretAdd new secrets to vaultsvault:createSecret
Read vaultView vault information and metadatavault:readVault
List secretsView secrets contained in vaultsvault:listSecrets
Link secretAssociate secrets with other resourcesvault:linkSecret
Update vaultModify vault settings and configurationvault:updateVault
Update secretModify existing secretsvault:updateSecret
Delete vaultRemove vaults from the systemvault:deleteVault
Delete secretRemove secrets from vaultsvault:deleteSecret
Unceil secretReveal and access secret valuesvault:unceilSecret

Webhook Serviceโ€‹

The Webhook service manages secure storage of secrets and sensitive information.

ActionDescriptionAction ID
All actionsComplete access to all vault operationsvault:*
Create vaultCreate new secure vaultsvault:createVault
Create secretAdd new secrets to vaultsvault:createSecret
Read vaultView vault information and metadatavault:readVault
List secretsView secrets contained in vaultsvault:listSecrets
Link secretAssociate secrets with other resourcesvault:linkSecret
Update vaultModify vault settings and configurationvault:updateVault
Update secretModify existing secretsvault:updateSecret
Delete vaultRemove vaults from the systemvault:deleteVault
Delete secretRemove secrets from vaultsvault:deleteSecret
Unceil secretReveal and access secret valuesvault:unceilSecret

Workstation Serviceโ€‹

The Workstation service manages workstation resources and operations.

ActionDescriptionAction ID
All actionsComplete access to all workstation operationsworkstation:*
Create workstationAdd new workstation to the systemworkstation:createWorkstation
Read workstationView workstation information and statusworkstation:readWorkstation
Update workstationModify workstation settings and configurationworkstation:updateWorkstation
Delete workstationRemove workstation from the systemworkstation:deleteWorkstation