UiPath Documentation
uipath-cli
latest
false
UiPath CLI user guide

uip or roles

Syntax and options for `uip or roles`, which manages Orchestrator RBAC roles, permissions, and folder-level assignments.

uip or roles manages Orchestrator roles and permissions (RBAC). Roles bundle permissions and are assigned to users, groups, robots, machines, or external applications at either the tenant (globally) or folder (scoped) level. Verbs on this page cover roles and their permissions, role-user membership, principal-level role/permission inspection, and folder-level assignments. For tenant-level role assignment per user, see users assign-roles in uip or users.

Synopsis

uip or roles permissions list [options]
uip or roles list [options]
uip or roles get <role-key>
uip or roles create --name <name> --type <Tenant|Folder>
uip or roles update <role-key> [--add-permissions <names>] [--remove-permissions <names>]
uip or roles delete <role-key> -y
uip or roles users list <role-key> [options]
uip or roles users set <role-key> [--add-user-keys <keys>] [--remove-user-keys <keys>]
uip or roles user-roles list <principal-name> [--type <type>] [options]
uip or roles user-permissions list <username> [--folder-path <path> | --folder-key <key>]
uip or roles assign --user-key <key> --role-keys <keys> [--folder-path <path> | --folder-key <key>]
uip or roles permissions list [options]
uip or roles list [options]
uip or roles get <role-key>
uip or roles create --name <name> --type <Tenant|Folder>
uip or roles update <role-key> [--add-permissions <names>] [--remove-permissions <names>]
uip or roles delete <role-key> -y
uip or roles users list <role-key> [options]
uip or roles users set <role-key> [--add-user-keys <keys>] [--remove-user-keys <keys>]
uip or roles user-roles list <principal-name> [--type <type>] [options]
uip or roles user-permissions list <username> [--folder-path <path> | --folder-key <key>]
uip or roles assign --user-key <key> --role-keys <keys> [--folder-path <path> | --folder-key <key>]

Verbs

VerbPurpose
permissions listList grantable permission names.
listList roles in the tenant.
getFetch one role with its granted permissions.
createCreate a role (with no permissions) at Tenant or Folder scope.
update (alias edit)Add or remove permissions on a role.
deleteDelete a user-created role.
users listList users assigned to a role.
users setAdd or remove users on a role (bulk).
user-roles listList a principal's (user, group, robot, machine, or external app) complete role assignments across tenant and every folder.
user-permissions listList a user's effective permissions, tenant-wide or scoped to one folder.
assignAssign folder-level roles to a user in a specific folder.

uip or roles permissions list

List every grantable permission name. Use these names with roles update --add-permissions.

Options

ShortLongValueDefaultDescription
-l--limitnumber50Page size.
--offsetnumber0Skip count.
--sort-byfieldName ascOData sort.

Examples

uip or roles permissions list --limit 200
uip or roles permissions list --output-filter 'Data[].Name'
uip or roles permissions list --output table
uip or roles permissions list --limit 200
uip or roles permissions list --output-filter 'Data[].Name'
uip or roles permissions list --output table

Data shape (--output json)

{
  "Code": "PermissionList",
  "Data": [{ "Name": "Assets.Create" }, { "Name": "Assets.Delete" }]
}
{
  "Code": "PermissionList",
  "Data": [{ "Name": "Assets.Create" }, { "Name": "Assets.Delete" }]
}

uip or roles list

List roles. Returns key (GUID), ID, name, display name, type, and whether the role is editable. Use the role key with roles get, roles update, or roles users set.

Options

ShortLongValueDefaultDescription
-l--limitnumber50Page size.
--offsetnumber0Skip count.
--sort-byfieldId descOData sort.

Examples

uip or roles list --limit 50
uip or roles list --output-filter "Data[?Type=='Tenant'].Name"
uip or roles list --output table
uip or roles list --limit 50
uip or roles list --output-filter "Data[?Type=='Tenant'].Name"
uip or roles list --output table

Data shape (--output json)

{
  "Code": "RoleList",
  "Data": [
    {
      "Key": "a1b2c3d4-0000-0000-0000-000000000001",
      "ID": 1,
      "Name": "Administrator",
      "DisplayName": "Administrator",
      "Type": "Tenant",
      "IsEditable": false
    }
  ]
}
{
  "Code": "RoleList",
  "Data": [
    {
      "Key": "a1b2c3d4-0000-0000-0000-000000000001",
      "ID": 1,
      "Name": "Administrator",
      "DisplayName": "Administrator",
      "Type": "Tenant",
      "IsEditable": false
    }
  ]
}

uip or roles get

Fetch a role with its granted permissions.

Arguments

NameRequiredPurpose
<role-key>yesRole key (GUID). Use roles list to find it.

Options

ShortLongValueDefaultDescription

Examples

uip or roles get a1b2c3d4-0000-0000-0000-000000000001
uip or roles get a1b2c3d4-0000-0000-0000-000000000001 \
    --output-filter 'Data.Permissions'
uip or roles get a1b2c3d4-0000-0000-0000-000000000001 --output table
uip or roles get a1b2c3d4-0000-0000-0000-000000000001
uip or roles get a1b2c3d4-0000-0000-0000-000000000001 \
    --output-filter 'Data.Permissions'
uip or roles get a1b2c3d4-0000-0000-0000-000000000001 --output table

Data shape (--output json)

{
  "Code": "Role",
  "Data": {
    "Key": "a1b2c3d4-0000-0000-0000-000000000001",
    "ID": 1,
    "Name": "Administrator",
    "DisplayName": "Administrator",
    "Type": "Tenant",
    "IsStatic": true,
    "IsEditable": false,
    "Permissions": "Assets.View, Assets.Create, Jobs.View"
  }
}
{
  "Code": "Role",
  "Data": {
    "Key": "a1b2c3d4-0000-0000-0000-000000000001",
    "ID": 1,
    "Name": "Administrator",
    "DisplayName": "Administrator",
    "Type": "Tenant",
    "IsStatic": true,
    "IsEditable": false,
    "Permissions": "Assets.View, Assets.Create, Jobs.View"
  }
}

uip or roles create

Create a role with no permissions. After creation, grant permissions with roles update --add-permissions.

Options

ShortLongValueDefaultDescription
--nametextrequiredRole name.
--typeTenant | FolderrequiredTenant applies across the tenant; Folder applies within folders.

Examples

uip or roles create --name "Read Only" --type Tenant
uip or roles create --name "Folder Viewer" --type Folder
uip or roles create --name "Read Only" --type Tenant \
    --output-filter 'Data.Key'
uip or roles create --name "Read Only" --type Tenant
uip or roles create --name "Folder Viewer" --type Folder
uip or roles create --name "Read Only" --type Tenant \
    --output-filter 'Data.Key'

Data shape (--output json)

{
  "Code": "RoleCreated",
  "Data": {
    "Key": "a1b2c3d4-0000-0000-0000-000000000010",
    "ID": 10,
    "Name": "Read Only",
    "Type": "Tenant",
    "Status": "Created successfully"
  }
}
{
  "Code": "RoleCreated",
  "Data": {
    "Key": "a1b2c3d4-0000-0000-0000-000000000010",
    "ID": 10,
    "Name": "Read Only",
    "Type": "Tenant",
    "Status": "Created successfully"
  }
}

uip or roles update

Add or remove permissions on a role. Reads current permissions, toggles isGranted for names in --add-permissions / --remove-permissions, and saves. New names (not yet on the role) are looked up in the tenant's full permission catalog and added.

edit is a registered alias for this verb — uip or roles edit works identically to uip or roles update.

Arguments

NameRequiredPurpose
<role-key>yesRole key (GUID).

Options

ShortLongValueDefaultDescription
--add-permissionsCSV of namesPermissions to grant.
--remove-permissionsCSV of namesPermissions to revoke.

At least one of --add-permissions or --remove-permissions is required.

Examples

uip or roles update a1b2c3d4-0000-0000-0000-000000000010 \
    --add-permissions Assets.View,Jobs.View

uip or roles update a1b2c3d4-0000-0000-0000-000000000010 \
    --remove-permissions Jobs.Edit

uip or roles update a1b2c3d4-0000-0000-0000-000000000010 \
    --add-permissions Assets.View --output-filter 'Data.Status'
uip or roles update a1b2c3d4-0000-0000-0000-000000000010 \
    --add-permissions Assets.View,Jobs.View

uip or roles update a1b2c3d4-0000-0000-0000-000000000010 \
    --remove-permissions Jobs.Edit

uip or roles update a1b2c3d4-0000-0000-0000-000000000010 \
    --add-permissions Assets.View --output-filter 'Data.Status'

Data shape (--output json)

{
  "Code": "RoleUpdated",
  "Data": { "Key": "a1b2c3d4-0000-0000-0000-000000000010", "Status": "Updated successfully" }
}
{
  "Code": "RoleUpdated",
  "Data": { "Key": "a1b2c3d4-0000-0000-0000-000000000010", "Status": "Updated successfully" }
}

uip or roles delete

Delete a user-created role. Built-in roles (where IsStatic=true) cannot be removed.

Arguments

NameRequiredPurpose
<role-key>yesRole key (GUID).

Options

ShortLongValueDefaultDescription
-y--yesflagRequired. Confirms this irreversible operation — the CLI never prompts.

Examples

uip or roles delete a1b2c3d4-0000-0000-0000-000000000010 --yes
uip or roles delete a1b2c3d4-0000-0000-0000-000000000010 --yes \
    --output-filter 'Data.Status'
uip or roles delete a1b2c3d4-0000-0000-0000-000000000010 --yes
uip or roles delete a1b2c3d4-0000-0000-0000-000000000010 --yes \
    --output-filter 'Data.Status'

Data shape (--output json)

{
  "Code": "RoleDeleted",
  "Data": { "Key": "a1b2c3d4-0000-0000-0000-000000000010", "Status": "Deleted successfully" }
}
{
  "Code": "RoleDeleted",
  "Data": { "Key": "a1b2c3d4-0000-0000-0000-000000000010", "Status": "Deleted successfully" }
}

uip or roles users list

List users assigned to a role.

Arguments

NameRequiredPurpose
<role-key>yesRole key (GUID).

Options

ShortLongValueDefaultDescription
-l--limitnumber50Page size.
--offsetnumber0Skip count.

Examples

uip or roles users list a1b2c3d4-0000-0000-0000-000000000001
uip or roles users list a1b2c3d4-0000-0000-0000-000000000001 --limit 200
uip or roles users list a1b2c3d4-0000-0000-0000-000000000001 \
    --output-filter 'Data[].UserName'
uip or roles users list a1b2c3d4-0000-0000-0000-000000000001
uip or roles users list a1b2c3d4-0000-0000-0000-000000000001 --limit 200
uip or roles users list a1b2c3d4-0000-0000-0000-000000000001 \
    --output-filter 'Data[].UserName'

Data shape (--output json)

{
  "Code": "RoleUserList",
  "Data": [
    {
      "Key": "d4e5f6a7-0000-0000-0000-000000000001",
      "ID": 101,
      "UserName": "admin@example.com",
      "FullName": "Admin User",
      "Type": "User"
    }
  ]
}
{
  "Code": "RoleUserList",
  "Data": [
    {
      "Key": "d4e5f6a7-0000-0000-0000-000000000001",
      "ID": 101,
      "UserName": "admin@example.com",
      "FullName": "Admin User",
      "Type": "User"
    }
  ]
}

uip or roles users set

Add or remove users on a role (bulk). Provide --add-user-keys, --remove-user-keys, or both. At least one is required. Additive/subtractive only — existing membership not named in either flag is left untouched (unlike users assign-roles, which replaces the full list).

Arguments

NameRequiredPurpose
<role-key>yesRole key (GUID).

Options

ShortLongValueDefaultDescription
--add-user-keysCSV of GUIDsUsers to add.
--remove-user-keysCSV of GUIDsUsers to remove.

Examples

uip or roles users set a1b2c3d4-0000-0000-0000-000000000010 \
    --add-user-keys d4e5f6a7-0000-0000-0000-000000000001

uip or roles users set a1b2c3d4-0000-0000-0000-000000000010 \
    --add-user-keys d4e5f6a7--001,d4e5f6a7--002 \
    --remove-user-keys d4e5f6a7--099

uip or roles users set a1b2c3d4-0000-0000-0000-000000000010 \
    --add-user-keys d4e5f6a7--001 --output-filter 'Data.Added'
uip or roles users set a1b2c3d4-0000-0000-0000-000000000010 \
    --add-user-keys d4e5f6a7-0000-0000-0000-000000000001

uip or roles users set a1b2c3d4-0000-0000-0000-000000000010 \
    --add-user-keys d4e5f6a7-…-001,d4e5f6a7-…-002 \
    --remove-user-keys d4e5f6a7-…-099

uip or roles users set a1b2c3d4-0000-0000-0000-000000000010 \
    --add-user-keys d4e5f6a7-…-001 --output-filter 'Data.Added'

Data shape (--output json)

{
  "Code": "RoleUsersUpdated",
  "Data": {
    "RoleKey": "a1b2c3d4-0000-0000-0000-000000000010",
    "Added": 1,
    "Removed": 0,
    "Status": "Updated successfully"
  }
}
{
  "Code": "RoleUsersUpdated",
  "Data": {
    "RoleKey": "a1b2c3d4-0000-0000-0000-000000000010",
    "Added": 1,
    "Removed": 0,
    "Status": "Updated successfully"
  }
}

uip or roles user-roles list

List all role assignments for a principal — a user, directory group, directory robot, machine, or external application — across the tenant and every folder. Useful for auditing a principal's full access profile.

Arguments

NameRequiredPurpose
<principal-name>yesUsername, group name, robot name, machine name, or external-app name to look up.

Options

ShortLongValueDefaultDescription
--typeUser | Group | Robot | Machine | ExternalApplicationUserPrincipal type. The DirectoryUser/DirectoryGroup/DirectoryRobot/DirectoryExternalApplication spellings are also accepted as aliases.
-l--limitnumber50Page size.
--offsetnumber0Skip count.

Examples

uip or roles user-roles list admin@example.com
uip or roles user-roles list "MRS Developers" --type Group
uip or roles user-roles list admin@example.com \
    --output-filter "Data[?Scope=='Folder']"
uip or roles user-roles list admin@example.com
uip or roles user-roles list "MRS Developers" --type Group
uip or roles user-roles list admin@example.com \
    --output-filter "Data[?Scope=='Folder']"

Data shape (--output json)

{
  "Code": "UserRoleList",
  "Data": [
    { "Scope": "Tenant", "FolderPath": "", "Role": "Administrator" },
    { "Scope": "Folder", "FolderPath": "Shared", "Role": "Folder Administrator" }
  ]
}
{
  "Code": "UserRoleList",
  "Data": [
    { "Scope": "Tenant", "FolderPath": "", "Role": "Administrator" },
    { "Scope": "Folder", "FolderPath": "Shared", "Role": "Folder Administrator" }
  ]
}

uip or roles user-permissions list

List a user's effective permissions. Without a folder option, shows tenant-level roles and permissions; with --folder-path/--folder-key, shows the roles and permissions granted in that specific folder instead. Returns the deduplicated union of permissions granted by all matching roles.

Arguments

NameRequiredPurpose
<username>yesUsername to look up.

Options

ShortLongValueDefaultDescription
--folder-pathpathShow folder-level permissions for this folder instead of tenant-level.
--folder-keyGUIDFolder alternative to --folder-path.

Examples

uip or roles user-permissions list admin@example.com

uip or roles user-permissions list admin@example.com --folder-path "Shared"
uip or roles user-permissions list admin@example.com

uip or roles user-permissions list admin@example.com --folder-path "Shared"

Data shape (--output json)

Tenant-level:

{
  "Code": "UserPermissionList",
  "Data": {
    "Roles": ["Administrator"],
    "Permissions": ["Jobs.View", "Assets.Create"]
  }
}
{
  "Code": "UserPermissionList",
  "Data": {
    "Roles": ["Administrator"],
    "Permissions": ["Jobs.View", "Assets.Create"]
  }
}

Folder-scoped:

{
  "Code": "UserPermissionList",
  "Data": {
    "FolderPath": "Shared",
    "Roles": ["Folder User"],
    "Permissions": ["Jobs.View", "Assets.View"]
  }
}
{
  "Code": "UserPermissionList",
  "Data": {
    "FolderPath": "Shared",
    "Roles": ["Folder User"],
    "Permissions": ["Jobs.View", "Assets.View"]
  }
}

uip or roles assign

Assign folder-level roles to a user. Use Folder-type roles only. Requires --folder-path or --folder-key.

Note:

CAUTION — destructive on roles. The server replaces the user's entire folder-level role list for the target folder with the keys passed via --role-keys. Roles not in the payload are silently removed. To preserve existing folder roles, read them first with roles user-roles list <principal-name> --type <type> and pass the full desired union to --role-keys. For additive tenant-level role membership on a role, use roles users set instead.

Options

ShortLongValueDefaultDescription
--user-keyGUIDrequiredUser key.
--role-keysCSV of GUIDsrequiredRole GUIDs to assign in the folder.
--folder-pathpathTarget folder. Provide this or --folder-key.
--folder-keyGUIDTarget folder.

Examples

uip or roles assign --user-key d4e5f6a7-0000-0000-0000-000000000001 \
    --role-keys a1b2c3d4-0000-0000-0000-000000000002 \
    --folder-path "Shared"

uip or roles assign --user-key d4e5f6a7-0000-0000-0000-000000000001 \
    --role-keys a1b2c3d4--002,a1b2c3d4--003 \
    --folder-key b1c2d3e4-0000-0000-0000-000000000001

uip or roles assign --user-key d4e5f6a7-0000-0000-0000-000000000001 \
    --role-keys a1b2c3d4-0000-0000-0000-000000000002 \
    --folder-path "Shared" --output-filter 'Data.Status'
uip or roles assign --user-key d4e5f6a7-0000-0000-0000-000000000001 \
    --role-keys a1b2c3d4-0000-0000-0000-000000000002 \
    --folder-path "Shared"

uip or roles assign --user-key d4e5f6a7-0000-0000-0000-000000000001 \
    --role-keys a1b2c3d4-…-002,a1b2c3d4-…-003 \
    --folder-key b1c2d3e4-0000-0000-0000-000000000001

uip or roles assign --user-key d4e5f6a7-0000-0000-0000-000000000001 \
    --role-keys a1b2c3d4-0000-0000-0000-000000000002 \
    --folder-path "Shared" --output-filter 'Data.Status'

Data shape (--output json)

{
  "Code": "PermissionsAssigned",
  "Data": {
    "UserKey": "d4e5f6a7-0000-0000-0000-000000000001",
    "FolderPath": "Shared",
    "Status": "Assigned successfully"
  }
}
{
  "Code": "PermissionsAssigned",
  "Data": {
    "UserKey": "d4e5f6a7-0000-0000-0000-000000000001",
    "FolderPath": "Shared",
    "Status": "Assigned successfully"
  }
}

Exit codes

See Exit codes. No verb-specific overrides.

  • uip or users — find user keys; users assign-roles for tenant-level role assignments.
  • uip or folders — locate folder keys for roles assign.

See also

Was this page helpful?

Connect

Need help? Support

Want to learn? UiPath Academy

Have questions? UiPath Forum

Stay updated