- Overview
- Get started
- Concepts
- Using UiPath CLI
- How-to guides
- CI/CD recipes
- Command reference
- Overview
- Exit codes
- Global options
- uip codedagent
- uip coder
- uip context-grounding
- uip docsai
- uip function
- aops-policy
- aops-policy deployment
- compliance-packs
- uip guardrails
- uip llm-configuration
- uip llm-gateway
- uip maestro authoring
- uip maestro registry
- uip model-hub
- activities find
- activities get-default-xaml
- analyze
- analyzer-rules list
- build
- cleanup
- data-fabric-entities install
- data-fabric-entities list
- files diff
- get-library-object-repository
- get-object-repository
- init
- instances list
- pack
- packages inspect
- packages install
- packages versions
- publish
- remote
- restore
- run, debug & execution
- settings
- studio start
- templates search
- test-data add-entity
- test-data add-queue
- test-data add-variation
- tm
- uia
- validate
- workflow-examples get
- workflow-examples list
- uip tasks
- uip traces
- uip traces feedback
- Migration
- Reference & support
uip gov aops-policy
Syntax and options for `uip gov aops-policy`'s policy CRUD, product catalog, license-type catalog, and Form.io template commands.
uip gov aops-policy manages UiPath AOps governance policies — product configuration rules (e.g. a StudioX policy restricting which project settings are allowed) authored as a filled-in Form.io form and assigned across tenants/users/groups. This page covers the authoring side: the policy record itself (list/get/create/update/delete), plus the read-only reference catalogs (product, license-type) and the template commands that generate the fillable form-data blueprint a policy's data payload is built from. For assigning a policy to a subject and resolving what actually applies at runtime, see aops-policy deployment and deployed-policy. For the parent tool overview and Access Policies, see uip gov.
Typical flow: template get <product> → edit the emitted form-data.json → policy create --product-name <product> --name <name> --input form-data.json → deployment tenant configure (or user/group) to roll it out.
Synopsis
uip gov aops-policy list [--product-name <name>] [--product-label <label>] [--search <term>] [--sort-by <field>] [--sort-order asc|desc] [--limit <n>] [--offset <n>] [--download [path]]
uip gov aops-policy get <policyIdentifier> [--download [path]]
uip gov aops-policy create --name <name> --product-name <name> [--description <text>] [--priority <n>] [--availability <n>] [--input <path>]
uip gov aops-policy update --identifier <id> --name <name> --product-name <name> [--description <text>] [--priority <n>] [--availability <n>] [--input <path>]
uip gov aops-policy delete <policyIdentifier>
uip gov aops-policy product list
uip gov aops-policy product get <productIdentifier>
uip gov aops-policy license-type list
uip gov aops-policy template get <productIdentifier> [--output-form-data <path>] [--output-template-locale-resource <path>]
uip gov aops-policy template list --output-dir <path>
uip gov aops-policy list [--product-name <name>] [--product-label <label>] [--search <term>] [--sort-by <field>] [--sort-order asc|desc] [--limit <n>] [--offset <n>] [--download [path]]
uip gov aops-policy get <policyIdentifier> [--download [path]]
uip gov aops-policy create --name <name> --product-name <name> [--description <text>] [--priority <n>] [--availability <n>] [--input <path>]
uip gov aops-policy update --identifier <id> --name <name> --product-name <name> [--description <text>] [--priority <n>] [--availability <n>] [--input <path>]
uip gov aops-policy delete <policyIdentifier>
uip gov aops-policy product list
uip gov aops-policy product get <productIdentifier>
uip gov aops-policy license-type list
uip gov aops-policy template get <productIdentifier> [--output-form-data <path>] [--output-template-locale-resource <path>]
uip gov aops-policy template list --output-dir <path>
Every verb also accepts --login-validity <minutes> to override the interactive-login token lifetime for that one call (rarely needed).
uip gov aops-policy list
List governance policies, with optional filtering and pagination. Returns policy metadata (identifier, name, product, priority, availability) — not the policy data blob.
Options
| Long | Value | Description |
|---|---|---|
--product-name <product-name> | string | Restrict to one product (e.g. StudioX). Matches product.name — see product list. |
--product-label <productLabel> | string | Restrict to one product by display label (e.g. 'Studio X'). Prefer --product-name for scripting. |
--search <searchTerm> | string | Case-insensitive substring match against policy name/description. |
--sort-by <field> | string | Field to sort by (e.g. name, createdOn, priority). Passed through to the governance API. |
--sort-order <direction> | asc | desc | Sort direction for --sort-by. Case-insensitive; any other value fails client-side. |
--limit <n> | integer | Page size. Default 20. |
--offset <n> | integer | Zero-based page index, not a row offset. Default 0. Page 0 returns rows 1 to --limit, page 1 the next --limit rows. |
--download [path] | path | Write every policy on the page to its own JSON file and pack the files into a zip, instead of printing them. Refer to Downloading policies. |
Example
uip gov aops-policy list --product-name StudioX --limit 2
uip gov aops-policy list --product-name StudioX --limit 2
Data shape (--output json)
{
"Code": "AopsPolicyList",
"Data": {
"TotalCount": 2,
"Result": [
{
"Name": "Baseline StudioX Policy",
"Identifier": "a1b2c3d4-0000-0000-0000-000000000001",
"Description": "",
"Priority": 10,
"Availability": 1,
"Product": { "Name": "StudioX", "Label": "Studio X" },
"Data": null
}
]
}
}
{
"Code": "AopsPolicyList",
"Data": {
"TotalCount": 2,
"Result": [
{
"Name": "Baseline StudioX Policy",
"Identifier": "a1b2c3d4-0000-0000-0000-000000000001",
"Description": "",
"Priority": 10,
"Availability": 1,
"Product": { "Name": "StudioX", "Label": "Studio X" },
"Data": null
}
]
}
}
Data.Result holds the policies on the requested page and Data.TotalCount the number of policies that match the filters. Product holds the policy's product record. Rows on a page carry Data: null; use get for a policy's form data.
With --download, the command returns Code: "AopsPolicyListDownloaded" and Data with DownloadFile (the zip path), PolicyCount (policies downloaded), and TotalCount (policies matched). PolicyCount lower than TotalCount means the zip holds one page of the matches. When no policy matches, the command fails with ErrorCode: "not_found".
uip gov aops-policy get
Fetch one policy by identifier, including its full data payload (the filled form-data blueprint). Use to inspect submitted values, or to seed a follow-up update.
Arguments
| Name | Required | Purpose |
|---|---|---|
<policyIdentifier> | yes | Policy GUID, from list. |
Options
| Long | Value | Description |
|---|---|---|
--download [path] | path | Write the policy to a JSON file instead of printing it. Refer to Downloading policies. |
Examples
uip gov aops-policy get a1b2c3d4-0000-0000-0000-000000000001
# Save the policy as ./backups/<product name>-<policy name>.json
uip gov aops-policy get a1b2c3d4-0000-0000-0000-000000000001 --download ./backups/
uip gov aops-policy get a1b2c3d4-0000-0000-0000-000000000001
# Save the policy as ./backups/<product name>-<policy name>.json
uip gov aops-policy get a1b2c3d4-0000-0000-0000-000000000001 --download ./backups/
Data shape (--output json)
{
"Code": "AopsPolicyGet",
"Data": {
"Name": "Baseline StudioX Policy",
"Identifier": "a1b2c3d4-0000-0000-0000-000000000001",
"Description": "",
"Priority": 10,
"Availability": 1,
"Product": { "Name": "StudioX", "Label": "Studio X" },
"Data": { "allowAnalytics": true, "maxProjects": 5 }
}
}
{
"Code": "AopsPolicyGet",
"Data": {
"Name": "Baseline StudioX Policy",
"Identifier": "a1b2c3d4-0000-0000-0000-000000000001",
"Description": "",
"Priority": 10,
"Availability": 1,
"Product": { "Name": "StudioX", "Label": "Studio X" },
"Data": { "allowAnalytics": true, "maxProjects": 5 }
}
}
The policy's own fields are PascalCase. The keys inside Data.Data, the policy's form data, are returned exactly as the service sent them, in the Form.io form's camelCase or kebab-case. Save Data.Data to a file to pass it back with update --input.
With --download, the command returns Code: "AopsPolicyDownloaded" and Data with DownloadFile (the JSON file path) and PolicyCount: 1.
uip gov aops-policy create
Create a new governance policy for a product.
Options
| Long | Value | Required | Description |
|---|---|---|---|
--name <name> | string | yes | Human-readable policy name (unique within the product). |
--product-name <product-name> | string | yes | Target product (e.g. StudioX, AITrustLayer) — must match a name from product list. |
--description <description> | string | no | Free-text description surfaced in the governance UI. |
--priority <n> | integer | no | When multiple policies apply to the same subject, higher numbers win. |
--availability <n> | integer | no | Availability flag (product-specific enum) — check the governance UI or service docs for valid values. |
--input <path> | path | no | JSON file with the filled form-data object (from template get --output-form-data). Omit for a policy with no data payload. |
Example
uip gov aops-policy create --name "Baseline StudioX Policy" --product-name StudioX --input form-data.json
uip gov aops-policy create --name "Baseline StudioX Policy" --product-name StudioX --input form-data.json
Data shape (--output json)
{
"Code": "AopsPolicyCreate",
"Data": { "Identifier": "a1b2c3d4-0000-0000-0000-000000000001", "Name": "Baseline StudioX Policy" }
}
{
"Code": "AopsPolicyCreate",
"Data": { "Identifier": "a1b2c3d4-0000-0000-0000-000000000001", "Name": "Baseline StudioX Policy" }
}
The policy's own fields are PascalCase, and the keys inside Data.Data are returned exactly as the service sent them. The response echoes the raw (doubly-wrapped) data blob, not the flattened shape get returns — use get to produce form-data for a follow-up update --input.
uip gov aops-policy update
Replace the fields of an existing policy. Full update, not a patch — every field you want to keep must be passed again; omitting --description/--priority/--availability/--input clears that field on the server.
Options
| Long | Value | Required | Description |
|---|---|---|---|
--identifier <identifier> | GUID | yes | Policy to update. From list/get. |
--name <name> | string | yes | Policy name. Passing the existing name preserves it. |
--product-name <product-name> | string | yes | Must match the policy's existing product — changing product on update is not supported. |
--description <description> | string | no | Full-replace: re-pass the existing value from get to preserve it. |
--priority <n> | integer | no | Full-replace: re-pass the existing value to preserve it. |
--availability <n> | integer | no | Full-replace: re-pass the existing value to preserve it. |
--input <path> | path | no | Full-replace: re-pass the existing data (saved from get) to preserve it. |
Fails with a "template upgrade in progress" error if the underlying Form.io template is being migrated — retry once it completes.
Example
uip gov aops-policy update --identifier a1b2c3d4-0000-0000-0000-000000000001 --name "Baseline StudioX Policy" --product-name StudioX --input form-data.json
uip gov aops-policy update --identifier a1b2c3d4-0000-0000-0000-000000000001 --name "Baseline StudioX Policy" --product-name StudioX --input form-data.json
Data shape (--output json)
Same shape as create, with Code: "AopsPolicyUpdate".
uip gov aops-policy delete
Permanently delete a governance policy.
Fails if the policy is still assigned to any tenant/user/group. Run deployment tenant\|user\|group remove on every subject first, then retry.
Arguments
| Name | Required | Purpose |
|---|---|---|
<policyIdentifier> | yes | Policy GUID, from list. |
Example
uip gov aops-policy delete a1b2c3d4-0000-0000-0000-000000000001
uip gov aops-policy delete a1b2c3d4-0000-0000-0000-000000000001
Data shape (--output json)
{ "Code": "AopsPolicyDelete", "Data": { "Status": "Deleted", "Identifier": "a1b2c3d4-0000-0000-0000-000000000001" } }
{ "Code": "AopsPolicyDelete", "Data": { "Status": "Deleted", "Identifier": "a1b2c3d4-0000-0000-0000-000000000001" } }
Downloading policies
list --download and get --download write policies to disk instead of printing them. Each policy file holds the policy exactly as the governance service's download returns it, form data included, with keys exactly as the service sent them: policy-name, description, availability, version, product-name, and data.
| Command | What it writes | [path] |
|---|---|---|
get --download [path] | One JSON file named <product name>-<policy name>.json. | The JSON file to write. A directory saves the default file name inside it. Leaving it off saves the default file name in the current directory. |
list --download [path] | A zip with one <product name>-<policy name>.json entry per policy on the requested page. --limit, --offset, and the filters apply as for a plain list. | The zip file to write. A directory saves aops-policies.zip inside it. Leaving it off saves aops-policies.zip in the current directory. |
uip gov aops-policy product
Read-only catalog of products that publish governance templates. Use to discover valid --product-name values.
uip gov aops-policy product list
Example
uip gov aops-policy product list
uip gov aops-policy product list
Data shape (--output json)
{
"Code": "AopsProductList",
"Data": [
{ "identifier": "a1b2c3d4-0000-0000-0000-0000000000B1", "name": "StudioX", "label": "Studio X" }
]
}
{
"Code": "AopsProductList",
"Data": [
{ "identifier": "a1b2c3d4-0000-0000-0000-0000000000B1", "name": "StudioX", "label": "Studio X" }
]
}
name is what policy create --product-name, template get <productIdentifier>, and deployment ... configure entries expect; label is the display name.
uip gov aops-policy product get
Arguments
| Name | Required | Purpose |
|---|---|---|
<productIdentifier> | yes | Product name (e.g. StudioX) or GUID — either name or identifier from product list. |
Example
uip gov aops-policy product get StudioX
uip gov aops-policy product get StudioX
Data shape (--output json)
{ "Code": "AopsProductGet", "Data": { "identifier": "a1b2c3d4-0000-0000-0000-0000000000B1", "name": "StudioX", "label": "Studio X" } }
{ "Code": "AopsProductGet", "Data": { "identifier": "a1b2c3d4-0000-0000-0000-0000000000B1", "name": "StudioX", "label": "Studio X" } }
uip gov aops-policy license-type
Read-only catalog of license types (e.g. Attended, Unattended) — used to scope deployment tenant configure entries and as the <license-type> argument to deployed-policy get/list.
uip gov aops-policy license-type list
Example
uip gov aops-policy license-type list
uip gov aops-policy license-type list
Data shape (--output json)
{
"Code": "AopsLicenseTypeList",
"Data": [
{ "identifier": "a1b2c3d4-0000-0000-0000-0000000000A1", "name": "Attended" },
{ "identifier": "a1b2c3d4-0000-0000-0000-0000000000A2", "name": "Unattended" }
]
}
{
"Code": "AopsLicenseTypeList",
"Data": [
{ "identifier": "a1b2c3d4-0000-0000-0000-0000000000A1", "name": "Attended" },
{ "identifier": "a1b2c3d4-0000-0000-0000-0000000000A2", "name": "Unattended" }
]
}
The identifier feeds deployment tenant configure entries; the display name is what deployed-policy get/list accept as <license-type>.
uip gov aops-policy template
Generates the fillable form-data blueprint (and a human-readable reference) from a product's Form.io policy template — the source of a policy's data payload.
uip gov aops-policy template get
Fetch the active Form.io template for one product and emit policy artifacts.
Arguments
| Name | Required | Purpose |
|---|---|---|
<productIdentifier> | yes | Product name or identifier (e.g. StudioX). |
Options
| Long | Value | Description |
|---|---|---|
--output-form-data <path> | path | Write the fillable form-data blueprint JSON — the object you edit and submit back on create/update. Display-only components (hidden, button, submit, HTML, content) are skipped; missing leaves get type-appropriate defaults (false for checkbox, [] for editgrid, {} for selectboxes, null for text/select). |
--output-template-locale-resource <path> | path | Write a locale-resolved human-readable reference: every product-scoped locale key is replaced with its English string (with a sibling <prop>-key preserving the original), and defaultData.data becomes a flat annotated map ({ value, type, label, description?, tooltip? }). Cross-product prefixes (e.g. AutomationOps.submit) are left unresolved. |
If neither --output-* flag is passed, both the template and form-data are returned in the stdout Data payload instead.
Example
uip gov aops-policy template get StudioX --output-form-data form-data.json --output-template-locale-resource reference.json
uip gov aops-policy template get StudioX --output-form-data form-data.json --output-template-locale-resource reference.json
Data shape (--output json)
{
"Code": "AopsPolicyTemplateGet",
"Data": {
"formDataFile": "/Users/alice/aops/form-data.json",
"templateLocaleResourceFile": "/Users/alice/aops/reference.json"
}
}
{
"Code": "AopsPolicyTemplateGet",
"Data": {
"formDataFile": "/Users/alice/aops/form-data.json",
"templateLocaleResourceFile": "/Users/alice/aops/reference.json"
}
}
When no --output-* flag is passed, Data instead contains template (the raw Form.io DTO) and formData (the blueprint) directly — both preserve their native Form.io key casing rather than being PascalCased, so formData round-trips into create/update --input verbatim.
An UnsupportedTemplateComponentError (product's template uses a component type the CLI can't convert) fails with ErrorCode: "configuration_error" and Retry: "RetryWillNotFix" — author the policy data by hand in that case.
uip gov aops-policy template list
Fetch every product's template and dump a full artifact set per product — use instead of looping template get.
Options
| Long | Value | Required | Description |
|---|---|---|---|
--output-dir <path> | path | yes | Directory under which one <ProductName>/ folder per product (containing form-template.json, form-data.json, form-template-locale-resource.json) is created. |
Per-product failures are collected and don't abort the run — the command exits non-zero only if every product fails.
Example
uip gov aops-policy template list --output-dir ./aops-templates
uip gov aops-policy template list --output-dir ./aops-templates
Data shape (--output json)
{
"Code": "AopsPolicyTemplateList",
"Data": {
"outputDir": "/Users/alice/aops-templates",
"results": [
{
"productName": "StudioX",
"status": "Success",
"templateFile": "/Users/alice/aops-templates/StudioX/form-template.json",
"formDataFile": "/Users/alice/aops-templates/StudioX/form-data.json",
"templateLocaleResourceFile": "/Users/alice/aops-templates/StudioX/form-template-locale-resource.json"
}
]
}
}
{
"Code": "AopsPolicyTemplateList",
"Data": {
"outputDir": "/Users/alice/aops-templates",
"results": [
{
"productName": "StudioX",
"status": "Success",
"templateFile": "/Users/alice/aops-templates/StudioX/form-template.json",
"formDataFile": "/Users/alice/aops-templates/StudioX/form-data.json",
"templateLocaleResourceFile": "/Users/alice/aops-templates/StudioX/form-template-locale-resource.json"
}
]
}
}
A failed product's entry has status: "Failure" and a message field instead of the three file paths.
Related
uip gov— tool overview and Access Policies.aops-policy deploymentanddeployed-policy— assign policies to tenants/users/groups, resolve the effective policy.compliance-packs— bundle policies into a named framework.
See also
- Synopsis
- uip gov aops-policy list
- Options
- Example
- Data shape (--output json)
- uip gov aops-policy get
- Arguments
- Options
- Examples
- Data shape (--output json)
- uip gov aops-policy create
- Options
- Example
- Data shape (--output json)
- uip gov aops-policy update
- Options
- Example
- Data shape (--output json)
- uip gov aops-policy delete
- Arguments
- Example
- Data shape (--output json)
- Downloading policies
- uip gov aops-policy product
- uip gov aops-policy product list
- uip gov aops-policy product get
- uip gov aops-policy license-type
- uip gov aops-policy license-type list
- uip gov aops-policy template
- uip gov aops-policy template get
- uip gov aops-policy template list
- Related
- See also