Environment-level RBAC controls who accesses Express applications (the end-user facing modules and workflows built in Unqork) and what their baseline permissions are. This is separate from Creator roles, which control access to Module Builder. This article covers managing Express Roles and Express Groups.
Environment-level RBAC consists of the following core concepts:
| Concept | Purpose | Managed By |
|---|---|---|
| Express Roles | Define baseline permissions and end-user capabilities across all applications | Environment Administrator |
| Express Groups | Control data access rules between end-users based on role hierarchy | Environment Administrator |
| Application Entry-Point RBAC | Override an end-user's Express Role for a specific application's entry-point module | Environment Administrator |
Permission Requirement: Managing roles and groups requires Creator permissions to access the Express Role Administration and Express Group Administration pages.
Express Roles
Express Roles are platform-wide roles that define what end-users can see and do when accessing applications. These control Express application permissions, not Module Builder access.
Role Properties
Each Express Role has the following properties:
| Property | Description | Example |
|---|---|---|
| Name | Unique identifier for the role (alphanumeric + hyphens, cannot begin with hyphen) | claims-adjuster |
| Description | Text explanation of the role's purpose | "Claims adjusters who process insurance claims" |
| Parent Role | Role from which this role inherits permissions (optional) | standard-user |
| Default Permission | Baseline permission level applied to all modules | No Access, Read-Only, or Write |
| Full Submission Access | If enabled, end-users can view all submissions regardless of RBAC rules | Checkbox (admin only) |
| Designer Access | If enabled, end-users can create and edit applications in Module Builder | Checkbox (admin only) |
| Groups | Groups this role belongs to | finance-team, approvers |
Role Hierarchy
Roles can inherit from parent roles, creating a permission tree:
- A child role inherits the parent's default permission as a baseline.
- Child roles can have more restrictive permissions than their parent.
- Role hierarchy is visualized in the View Role Hierarchy dialog.
- Parent roles are bolded; children are indented.
Example Hierarchy:
Administrator (Write)
└── Standard User (Read)
└── Claims Adjuster (Write)
└── Claims Reviewer (Read)
└── Viewer (Read)
└── External Auditor (Read)
Default Roles (Protected)
The following roles are system defaults and cannot be deleted. Their parent, default permission, and super user flags are locked:
- Administrator: Full access to all applications and data.
- Authenticated: Base role for logged-in end-users.
- NoAccess: No permissions (used to explicitly deny access).
- Anonymous: Unauthenticated end-users (if anonymous access is enabled).
Managing Express Roles
Viewing Existing Roles
Navigate to
- The role list displays:
- Role: The unique role identifier.
- Description: Purpose of the role.
- Permission: Badge showing permission level:
- Red: No Access.
- Amber: Read-Only.
- Green: Write.
- Actions: Drop-down with Edit and Delete options.
- Use the search bar to filter roles by name or description.
- Pagination controls display at the bottom (default: 10 roles per page).
Creating a Role
Navigate to
-
Click Add Role.
-
Fill in the form:
Role Name (required)
- Alphanumeric characters and hyphens only.
- Cannot begin with a hyphen.
- Maximum 255 characters.
- Must be unique.
Role Description (optional)
- Explain the role's purpose and who should be assigned to it.
Select Parent (optional)
- Select a parent role from the drop-down.
- This role inherits the parent's baseline permissions.
Select Default Permission (required)
- Select No Access, Read-Only, or Write.
- This permission applies to all modules unless overridden at the module or component level.
- When Full Submission Access is enabled, this field is automatically set to Write and cannot be changed.
Full Submission Access (optional)
- When checked, end-users can view all submissions regardless of RBAC rules.
- An alert warns that this setting grants unrestricted read/write access to all submissions, overriding role hierarchy, group membership, and field-level permissions. Use sparingly, typically for administrators and auditors only.
Designer Access (Super-user) (optional)
- When checked, end-users can create and edit applications in Module Builder.
- Only visible in edit mode and only for roles that already have Designer Access enabled.
- Deprecated. Administrators can retire the option environment-wide from Environment Administration.
Add to Group(s) (optional)
- Select one or more groups to assign to this role.
- Multi-select combobox (type to search).
-
Click Add Role.
Editing a Role
Navigate to
-
Find the role in the list.
-
Select
for the role and select Edit.
-
Update the editable fields:
Editable:
- Role Description.
- Select Parent (unless the role is a default role).
- Select Default Permission (unless the role is a default role).
- Full Submission Access (unless the role is a default role).
- Designer Access (Super-user) (deprecated; only shown if the role already has Designer Access enabled, and only while the environment still offers the option — see Environment Administration).
- Group assignments.
Read-Only:
- Role Name (cannot be changed after creation).
-
Click Save Changes.
Note: Default roles (Administrator, Authenticated, NoAccess, Anonymous) have their parent, default permission, and super user flags locked.
Deleting a Role
Navigate to
- Find the role in the list.
- Select
for the role and select Delete.
- Confirm deletion in the dialog that displays.
Restrictions:
- Cannot delete default roles (Administrator, Authenticated, NoAccess, Anonymous).
- Cannot delete roles currently assigned to end-users (backend validation prevents this).
- Deletion is permanent: the role must be recreated from scratch if needed.
Promoting Roles
Promotion copies roles from the current environment to a target environment (for example, Dev → QA → Production).
Navigate to
- Select the More actions button in the top toolbar and select Promote Roles.
- The Promote Roles dialog opens:
- All roles are selected by default.
- Use Select All / Deselect All buttons to manage selection.
- Check/uncheck individual roles to include or exclude them.
- Select the target environment from the drop-down.
- Shows client name and level (for example, "Acme Corp - Production").
- Click Promote.
Result: Selected roles are copied to the target environment with all properties preserved.
Viewing Role Hierarchy
Navigate to
- Select View Role Hierarchy in the top toolbar.
- The Role Hierarchy dialog opens:
- Parent roles in bold.
- Child roles indented beneath their parent, joined to it by a guide line.
- Default permission badge for each role.
- Every role appears, including roles with no parent and no children.
- Select a parent role to collapse or expand its children.
Use Case: Understand permission inheritance and visualize role relationships before making changes.
Express Groups
Express Groups define data access rules between end-users based on role hierarchy. Groups control whether end-users can access each other's submissions and data.
Group Properties
Each Express Group has the following properties:
| Property | Description | Example |
|---|---|---|
| Name | Unique identifier for the group (alphanumeric + hyphens, cannot begin with hyphen) | finance-team |
| Description | Human-readable explanation of the group's purpose | "Finance department staff" |
| Group Type | Data access rule based on role hierarchy | role_descendents, own_role_and_descendents, or ignore_role |
Group Types Explained
Group type determines whether end-users in the same group can access each other's data:
| Group Type | Access Rule | Example |
|---|---|---|
Data access to role descendants only (role_descendents) |
Alice can access Bob's submissions only if Alice's role is higher than Bob's in the hierarchy | Alice (Manager) can view Bob's (Staff) data, but Bob cannot view Alice's |
Data access to own role and role descendants only (own_role_and_descendents) |
Alice can access Bob's submissions if Alice's role is higher than or equal to Bob's in the hierarchy | Alice (Manager) can view Bob's (Staff) data; Alice (Manager) can also view Carol's (Manager) data |
Data access to all roles in hierarchy (ignore_role) |
Alice can access Bob's submissions regardless of role hierarchy | All group members can view each other's data, no matter their role |
Badge Colors:
- Blue:
role_descendents. - Amber:
own_role_and_descendents. - Green:
ignore_role.
Managing Express Groups
Viewing Existing Groups
Navigate to
- The group list displays:
- Name: The unique group identifier.
- Description: Purpose of the group.
- Type: Badge showing data access rule.
- Actions: Drop-down with Edit and Delete options.
- Use the search bar to filter groups by name or description.
- Pagination controls display at the bottom (default: 50 groups per page).
Creating a Group
-
Navigate to
Express Group Administration . -
Click Add Group.
-
Fill in the form:
Group Name (required)
- Alphanumeric characters and hyphens only.
- Cannot begin with a hyphen.
- Maximum 255 characters.
- Must be unique.
- A warning displays below this field: "The group name is permanent and cannot be changed after creation."
Group Description (optional)
- Explain the group's purpose and which end-users and roles should belong to it.
Group Type (required)
- Select one of the following options:
- Data access to role descendants only: Hierarchical access (higher roles can see lower roles' data).
- Data access to own role and role descendants only: Hierarchical access including peers at the same role level.
- Data access to all roles in hierarchy: All members can see each other's data.
-
Click Add Group.
Result: The new group displays in the group list and can be assigned to roles.
Editing a Group
Navigate to
-
Find the group in the list.
-
Select
for the role and select Edit.
-
Update the editable fields:
Editable:
- Group Description.
- Group Type.
Read-Only:
- Group Name (cannot be changed after creation).
-
Click Save Changes.
Note on Member Management:
- Group membership (which end-users and roles belong to the group) is managed through:
- Express Role Administration: Assign roles to groups when creating or editing roles.
- User Management: Assign end-users to roles that belong to groups.
Deleting a Group
Navigate to
- Find the group in the list.
- Select
for the role and select Delete.
- Confirm deletion in the dialog:
- "Remember, deleting a group is permanent. To make a group available again, you must re-add it from scratch and reassign all members."
Restrictions:
- No default groups exist (unlike roles).
- Deletion is immediate if the group is not in use.
- All role assignments to this group will be removed.
Promoting Groups
Promotion copies groups from the current environment to a target environment (for example, Dev → QA → Production).
Navigate to
- Click Promote Groups in the top action bar.
- The Promote Groups dialog opens:
- All groups are selected by default.
- Use Select All / Deselect All buttons to manage selection.
- Check/uncheck individual groups to include or exclude them.
- Select the target environment from the drop-down.
- Shows client name and level (for example, "Acme Corp - Production").
- Click Promote.
Result: Selected groups are copied to the target environment with all properties preserved.
Application Entry-Point RBAC
Application Entry-Point RBAC lets Administrators assign a specific Express Role to an individual end-user for a specific application. The assigned role overrides the end-user's default Express Role, but only for that application's entry-point module.
Configure Application Entry-Point roles in the Application Roles section when editing an individual end-user in
Settings
Each application in the environment has a row in the table. The table includes the following columns:
| Column | Description |
|---|---|
| Title | The application name. |
| Type | The application type: Module or Workflow. |
| Role | The Express Role assigned to this end-user for this application. Select Inherit to apply the end-user's default Express Role. |
| Effective Role | The role that resolves for this application: the assigned role, or the default Express Role when Inherit is selected. |
| Inherited From | Displays Default Role when the end-user's environment-level Express Role applies. |
Security Limitation
Important: Application Entry-Point RBAC gates access only to the application's entry-point module. End-users can navigate directly to a sub-module URL and bypass this restriction.
To restrict access to sub-modules in an application, configure RBAC at the module level or component level for each sub-module.
How Roles and Groups Work Together
Relationship Overview
-
Roles are assigned to Groups.
- Roles are assigned to one or more groups when creating or editing the role.
- Roles have a
groups: string[]property listing all group memberships.
-
End-users inherit Group memberships through Roles.
- An end-user assigned to a role automatically belongs to all groups assigned to that role.
- End-users can belong to multiple groups if they have multiple roles.
-
Groups control data access.
- Group type determines how end-users with different roles can access each other's data.
- Role hierarchy (parent-child relationships) is independent of group membership.
- Groups layer additional data-access control over the role hierarchy.
Example Scenario
Setup:
- Role:
claims-reviewer(parent:standard-user, default permission:read). - Role:
claims-adjuster(parent:claims-reviewer, default permission:write). - Group:
claims-team(type:role_descendents). - Both roles are assigned to the
claims-teamgroup.
End-users:
- Alice has the
claims-reviewerrole (higher in hierarchy). - Bob has the
claims-adjusterrole (child of claims-reviewer, lower in the hierarchy).
Result:
- Alice can view Bob's submissions (she's higher in the hierarchy).
- Bob cannot view Alice's submissions (he's lower in the hierarchy).
- Both end-users can create and edit their own submissions.
- If the group type were
ignore_role, both could view each other's submissions regardless of hierarchy.
Best Practices
Role Management
-
Define a clear role hierarchy.
- Begin with broad roles (for example, "Standard User") and create specialized child roles.
- Document role relationships and inheritance chains.
-
Use descriptive role names.
- Use hyphens instead of spaces (for example,
claims-adjuster). - Keep names short but meaningful.
- Use hyphens instead of spaces (for example,
-
Limit super user flags.
- Grant Designer Access and Full Submission Access only to trusted administrators.
- Regularly audit who has these elevated permissions.
-
Test before promoting.
- Create roles in a Dev or Test environment first.
- Validate permissions work as expected before promoting to Production.
-
Assign groups during role creation.
- Think about data access rules when creating roles.
- Assign roles to groups that match their data access needs.
Group Management
-
Choose the right group type.
- Use
role_descendentsfor hierarchical teams (managers see staff data). - Use
own_role_and_descendentsfor peer collaboration (team members at same level share data). - Use
ignore_rolesparingly: only when all members truly need equal data access.
- Use
-
Keep group membership organized.
- Assign roles to groups, not individual end-users.
- Update group type if data access rules change.
-
Document group purposes.
- Use clear descriptions explaining who should belong to the group.
- Note any special data access considerations.
-
Review group assignments regularly.
- Audit which roles belong to which groups.
- Remove inactive or obsolete groups.