Last date modified: 2026-Sep-16
Permissions access control API
Relativity is modernizing the feature permission experience and the underlying model as features move to using role-based access control to improve security and flexibility. This model is powered by a public, versioned API, enabling organizations to manage access across Relativity products.
The transition to this new permissions approach will occur gradually, allowing for a smooth and organized migration from the current system.
Within Staging, the new API provides the ability to assign and revoke permissions at both the fileshare and tenant levels. These operations are performed through stable and extensible endpoints.
Guidelines for the permissions access control API
Review the following guidelines for working with this API.
URL address format
The URLs for the REST API endpoints use the tenant URL format, <host>/Relativity.Rest/API, followed by the path segment format — resource first, then node type (and node key for fileshare):
| Method | Path | Description |
|---|---|---|
| GET | /access-control/public/v1/role-assignments/fileshare/{fileshareLetter} | List role assignments on a fileshare node |
| POST | /access-control/public/v1/role-assignments/fileshare/{fileshareLetter} | Batch assign and/or revoke roles on a fileshare node |
| GET | /access-control/public/v1/role-assignments/instance | List role assignments on the instance node |
| POST | /access-control/public/v1/role-assignments/instance | Batch assign and/or revoke roles on the instance node |
| GET | /access-control/public/v1/role-assignments/workspace/{workspaceId} | List role assignments on a workspace |
| POST | /access-control/public/v1/role-assignments/workspace/{workspaceId} | Batch assign and/or revoke roles on a workspace |
Considerations
- The
groupIdmust be the instance-level group identifier. Workspace-level group IDs are not accepted.
- For mass updates across multiple fileshares, clients should:
- Iterate through fileshare nodes sequentially.
- Use the batch
POST /role-assignmentsendpoint to assign/revoke multiple roles per node in a single request. - Respect rate limits and implement exponential backoff on 429 responses.
- Client must set API requests timeout to 30 seconds maximum.
- Clients should set appropriate timeouts and implement retry logic for transient failures (5xx responses).
Authentication requirements
Token requirements
- The token must be valid (not expired) and issued for the correct tenant.
- The user represented by the token must belong to groups that can view groups in the tenant (standard R1 group management permission).
Identifier guide
Node Key
The node key identifies a permissionable object (node) in the data hierarchy.
| Node Type | Node Key Format | Example | How to Discover |
|---|---|---|---|
| Fileshare | Single uppercase letter | A, B, C |
Visible in the Relativity Staging Area UI. Same letter used by ADLS storage. |
Nodes are addressed in the URL as path segments:
1
/access-control/public/v1/role-assignments/fileshare/B
For fileshare nodes the format is /role-assignments/{nodeType}/{nodeKey}. For tenant nodes the node key is omitted — the tenant is auto-resolved from the request context (tenant-based URL and bearer token).
Group ID (groupId)
The group ID identifies an R1 group id on instance level. It is a numeric string (integer).
The groupId used in this API is always the instance-level group identifier. Group IDs stored in workspace databases are not used in this public API. Use the instance-level group ID as seen in the Relativity instance administration.
| Format | Example | How to Discover |
|---|---|---|
| Integer string | 1040719 | GroupArtifactId |
Role Key (roleKey)
The role key identifies a named collection of permissions. All role keys follow the convention r1_{product}_{role_name} — the r1_ prefix is universal across all keys in this API.
| Role Key ↕ | Feature ↕ | Description ↕ | Assignable To ↕ |
|---|---|---|---|
| r1_staging_viewer | Staging Area | View access only | File share |
| r1_staging_downloader | Staging Area | View and download | File share |
| r1_staging_uploader | Staging Area | View and upload | File share |
| r1_staging_downloader-and-uploader | Staging Area | View, upload, and download | File share |
| r1_staging_editor | Staging Area | View, upload, download, and edit | File share |
| r1_staging_admin | Staging Area | Admin access | File share |
| r1_staging_data-transfer | Data Transfer | Data transfer access | Instance |
| r1_security-center_security-center | Security Center | Security Center access | Instance |
| r1_air-for-review_job-admin | aiR Review | aiR Review access | Instance |
| r1_arm_archive-restore | ARM | Archive and Restore (ARM) access | Instance |
| r1_migrate-cloud_migrate | Migrate | Migrate capability | Instance |
| r1_cost-explorer_viewer | Cost Explorer | Cost Explorer access | Instance |
| r1_usage-reports_instance-viewer | Usage Reports | Instance-wide Usage Reports access | Instance |
| r1_usage-reports_client-domain-viewer | Usage Reports | Client Domain Usage Reports access | Instance |
| r1_staging-reports_instance-viewer | Staging Reports | Instance-wide Staging Reports access | Instance |
| r1_staging-reports_client-domain-viewer | Staging Reports | Client Domain Staging Reports access | Instance |
| r1_air-assist_access-control-admin | Assist | Assist Workspace Feature Permissions management | Workspace |
| r1_air-assist_index-manage-access | Assist | Create, rebuild, delete indexes and metadata mapping. | Workspace |
| r1_air-assist_qna-edit | Assist | Ask natural language questions about documents in workspace within created indexes; manage conversations | Workspace |
| r1_instance-configuration_views-manager | Instance Configuration / Manage Views | Create and manage instance-level views | Instance |
| r1_instance-configuration_fields-manager | Instance Configuration / Manage Fields | Create and manage instance-level fields | Instance |
| r1_instance-configuration_objects-manager | Instance Configuration / Manage Objects | Create and manage object types, rules, layouts, and views | Instance |
| r1_instance-configuration_object-types-manager | Instance Configuration / Manage Object Types | Create and manage object types | Instance |
| r1_instance-configuration_object-dependencies-manager | Instance Configuration / Delete Object Dependencies | Delete dependencies associated with object types | Instance |
| r1_instance-configuration_client-object-viewer | Instance Configuration / View Choice, Tab and Views for Client | View choices, tabs, and views for client-level access | Instance |
| r1_instance-configuration_choices-viewer | Instance Configuration / View Choices | View field choices across the instance | Instance |
| r1_instance-configuration_choices-manager | Instance Configuration / Manage Choices | Create and manage field choices | Instance |
| r1_instance-configuration_dashboards-viewer | Instance Configuration / View Dashboards | View instance-level dashboards | Instance |
| r1_instance-configuration_dashboards-manager | Instance Configuration / Manage Dashboards | Create and manage instance-level dashboards | Instance |
| r1_instance-configuration_nav-bar-manager | Instance Configuration / Manage Nav Bar (Tabs) | Create and manage navigation bar tabs | Instance |
| r1_instance-configuration_agents-viewer | Instance Configuration / View Agents | View agents and agent types | Instance |
| r1_instance-configuration_agents-manager | Instance Configuration / Manage Agents | Create, manage, and operate agents | Instance |
| r1_instance-configuration_instance-settings-viewer | Instance Configuration / View Instance Settings | View instance settings | Instance |
| r1_instance-configuration_instance-settings-manager | Instance Configuration / Manage Instance Settings | Edit and manage instance settings | Instance |
| r1_workspace-management_workspace-viewer | Workspace Management / View Assigned Workspaces | View workspaces assigned to the user | Instance |
| r1_workspace-management_workspace-creator | Workspace Management / Add Workspace | Create new workspaces | Instance |
| r1_workspace-management_workspace-manager | Workspace Management / Manage Assigned Workspaces | Edit and manage assigned workspaces | |
| r1_workspace-management_cold-storage-manager | Workspace Management / Manage Cold Storage for Assigned Workspaces | Manage cold storage settings for assigned workspaces | Instance |
| r1_workspace-management_client-domain-creator | Workspace Management / Add Workspaces to Client | Add workspaces to a client | Instance |
| r1_workspace-management_client-viewer | Client and Matter Management / View Clients | View clients | Instance |
| r1_workspace-management_client-creator | Client and Matter Management / Add Clients | Create new clients | Instance |
| r1_workspace-management_client-manager | Client and Matter Management / Manage Clients | Edit and manage clients | Instance |
| r1_workspace-management_matter-viewer | Client and Matter Management / View Matters | View matters | Instance |
| r1_workspace-management_matter-creator | Client and Matter Management / Add Matters | Create new matters | Instance |
| r1_workspace-management_matter-manager | Client and Matter Management / Manage Matters | Edit and manage matters | Instance |
| r1_workspace-management_matter-client-domain-creator | Client and Matter Management / Add Matter to Client | Add a matter to a client within a client-domain scope |
Instance |
| r1_application-management_application-library-viewer | Application Management / View Application Library | View the instance application library | Instance |
| r1_application-management_oauth2-clients-viewer | Application Management / View OAuth2 Clients | View OAuth2 client configurations | Instance |
| r1_application-management_oauth2-clients-manager | Application Management / Manage OAuth2 Clients | Create and manage OAuth2 clients | Instance |
| r1_application-management_resource-files-viewer | Application Management / View Resource Files | View resource files | Instance |
| r1_application-management_resource-files-manager | Application Management / Manage Resource Files | Upload and manage resource files | Instance |
| r1_application-management_custom-pages-viewer | Application Management / View Custom Pages | View custom pages | Instance |
| r1_application-management_custom-pages-manager | Application Management / Manage Custom Pages | Create and manage custom pages | Instance |
| r1_application-management_sanitizer-viewer | Application Management / View Sanitizer | View sanitizer configuration | Instance |
| r1_application-management_sanitizer-manager | Application Management / Manage Sanitizer | Configure and manage the sanitizer | Instance |
| r1_application-management_relativity-scripts-viewer | Application Management / View Relativity Scripts | View Relativity scripts in the application library | Instance |
| r1_audit_audit-viewer | Audit / View Audit | View audit log entries | Instance |
| r1_audit_audits-datagrid-viewer | Audit / View Audits and DataGrid Audits | View audit log entries and DataGrid audit data | Instance |
| r1_audit_audit-migration-reports-viewer | Audit / View Audit Migration Reports | View audit data migration reports | Instance |
| r1_job-queues_ocr-queue-viewer | Job Queues / View OCR Queue | View OCR queue jobs | Instance |
| r1_job-queues_pdf-queue-viewer | Job Queues / View PDF Queue | View PDF queue jobs | Instance |
| r1_job-queues_processing-imaging-queue-viewer | Job Queues / View Processing and Imaging Queue | View processing and imaging queue jobs | Instance |
| r1_job-queues_dtsearch-queue-viewer | Job Queues / View DtSearch Queue Admin | View DtSearch queue jobs | Instance |
| r1_job-queues_import-export-queue-viewer | Job Queues / View Import/Export Queue | View import and export queue jobs | Instance |
| r1_job-queues_branding-queue-viewer | Job Queues / View Branding Queue | View branding queue jobs | Instance |
| r1_job-queues_production-queue-viewer | Job Queues / View Production Queue | View production queue jobs | Instance |
| r1_job-queues_processing-history-viewer | Job Queues / View Processing History | View processing job history | Instance |
| r1_job-queues_translate-jobs-viewer | Job Queues / View Translate Jobs | View translation queue jobs | Instance |
| r1_job-queues_workspace-upgrade-queue-viewer | Job Queues / View Workspace Upgrade Queue | View workspace upgrade queue jobs | Instance |
| r1_job-queues_text-migration-jobs | Job Queues / Manage Text Migration Jobs | View and manage text migration jobs and reports | Instance |
| r1_job-queues_transcription-queue-viewer | Job Queues / View Transcription Queue | View transcription queue jobs | Instance |
| r1_job-queues_ocr-queue-priority-manager | Job Queues / Manage OCR Queue Priority | Manage job priority in the OCR queue | Instance |
| r1_job-queues_processing-imaging-priority-manager | Job Queues / Manage Processing and Imaging Queue Priority | Manage job priority in the processing and imaging queue | Instance |
| r1_job-queues_branding-queue-manager | Job Queues / Manage Branding Queue | Manage jobs and priority in the branding queue | Instance |
| r1_job-queues_production-queue-manager | Job Queues / Manage Production Queue | Manage jobs and priority in the production queue | Instance |
| r1_job-queues_workspace-upgrade-priority-manager | Job Queues / Manage Workspace Upgrade Queue Priority | Manage job priority in the workspace upgrade queue | Instance |
| r1_case-metrics_run-reports-on-instance | Case Metrics / Run Reports on Instance | Run case metrics reports at the instance level | Instance |
| r1_case-metrics_scheduler-viewer | Case Metrics / View Scheduler | View scheduled case metrics reports | Instance |
| r1_case-metrics_scheduler-manager | Case Metrics / Manage Scheduler | Create and manage scheduled case metrics reports | Instance |
| r1_authentication_user-authentication-config-manager | Authentication / Manage User Authentication Configurations | Create and manage authentication providers and login methods | Instance |
| r1_authentication_federated-instances-config-viewer | Authentication / View User Authentication Configurations | View federated instance configurations | Instance |
| r1_authentication_federated-instances-menu-viewer | Authentication / View Federated Instances in User Menu | View federated instances in the user menu | Instance |
| r1_authentication_user-authentication-config-viewer | Authentication / View User Authentication Configurations | View authentication providers and login methods | Instance |
| r1_authentication_federated-instances-config-manager | Authentication / Manage Federated Instances Configurations | Create and manage federated instance configurations | Instance |
| r1_users-and-groups-management_view-users-and-groups | User and Group Management / View Users and Groups | View users, groups, and associated authentication details | Instance |
| r1_users-and-groups-management_manage-users | User and Group Management / Manage Users | Create and manage users and their authentication settings | Instance |
| r1_users-and-groups-management_manage-groups | User and Group Management / Manage Groups | Create and manage groups and group membership | Instance |
| r1_users-and-groups-management_client-domain-adder | User and Group Management / Add Users and Groups to Client | Add users and groups to a client | Instance |
| r1_users-and-groups-management_view-user-status | User and Group Management / View Logged In Users | View currently active user sessions | Instance |
| r1_users-and-groups-management_manage-user-status | User and Group Management / Manage Logged In Users | Send messages to and force-logout active user sessions | Instance |
Role key stability: Role keys follow the r1_{product}_{role_name} convention and are considered stable for the external API. If roles are added, existing role keys will not change. Deprecated roles will be communicated well in advance.
Typical use cases
The following are some typical use cases of programmatic interaction with the API by a Relativity application developer or administrator.
List current role assignments on a fileshare
Scenario: The operator wants to see which groups currently have roles assigned on a fileshare, for compliance or before making bulk changes.
1
2
GET /access-control/public/v1/role-assignments/fileshare/A
Authorization: Bearer {end-user-token}
1
2
3
4
[
{ "groupId": "1040719", "roleKey": "r1_staging_uploader" },
{ "groupId": "20", "roleKey": "r1_staging_viewer" }
]
The response returns only what the authenticated user is permitted to see:
- Roles: The user must hold the
<domain>_securepermission for each domain role. - Groups: Results are filtered to groups visible to the authenticated user based on the standard R1
view grouppermission.
Batch assign and revoke roles on a fileshare
Scenario: Onboard a new client domain. They need to assign the correct roles to several groups on fileshare "A" and revoke access for a group — all in a single request.
Both assign and revoke lists are optional , you may send only assigns, only revokes, or both in a single request. The operation is atomic: if any revoke targets a role that cannot be removed, the entire request fails and no changes are applied.
1
2
3
4
5
6
7
8
9
10
11
12
13
POST /access-control/public/v1/role-assignments/fileshare/A
Authorization: Bearer {end-user-token}
Content-Type: application/json
{
"assign": [
{ "roleKey": "r1_staging_viewer", "groupId": "1050100" },
{ "roleKey": "r1_staging_uploader", "groupId": "1050101" }
],
"revoke": [
{ "roleKey": "r1_staging_viewer", "groupId": "1040723" }
]
}
Response: 200 OK
1
2
3
{
"message": "The requested resource does not exist or you do not have access to it."
}
All authorization failures return the same generic response regardless of whether the resource does not exist or the user lacks access. This prevents callers from inferring the existence of resources they cannot access.
List current role assignments on the tenant
Scenario: The operator wants to see which groups currently have tenant-level roles assigned (e.g., data_transfer), for compliance or before making changes. The tenant is automatically resolved from the authenticated user's token, no tenant identifier is needed in the URL.
1
2
GET /access-control/public/v1/role-assignments/instance
Authorization: Bearer {end-user-token}
The same visibility rules apply as for fileshare nodes: the user must hold <domain>_secure on the tenant node, and group results are filtered by the user's view group permission.
Batch assign and revoke roles on the tenant
Scenario: User needs to grant the data_transfer capability to a group at the tenant level.
1
2
3
4
5
6
7
8
9
POST /access-control/public/v1/role-assignments/instance
Authorization: Bearer {end-user-token}
Content-Type: application/json
{
"assign": [
{ "roleKey": "r1_staging_data-transfer", "groupId": "1050100" }
]
}
Response: 200 OK
1
2
3
4
5
6
7
8
9
POST /access-control/public/v1/role-assignments/instance
Authorization: Bearer {end-user-token}
Content-Type: application/json
{
"revoke": [
{ "roleKey": "r1_staging_data-transfer", "groupId": "1050100" }
]
}
Response: 200 OK
The same atomicity and error handling rules apply as for fileshare operations.