Skip to content

Commit e659331

Browse files
alexenicaclaude
andauthored
docs(uipath-platform): sync with CLI changes — users import, deploy auto-activate, project list, --name filter (#499)
* docs(uipath-platform): reflect CLI 1.0 changes — users import, deploy auto-activate, project list, --name filter Sync the platform skill references with the recent CLI changes that landed in PRs UiPath/cli#1365 and #1423. * setup-environment.md — replace `users create` with `users import`. The old `create` / `delete` commands are gone in the CLI; users live in Identity Service and Orchestrator references them via the `AssignDirectoryUser` endpoint that backs `users import`. * pack-and-deploy.md — `solution deploy run` now activates the deployment by default. Document `--skip-activate` for the legacy opt-out, drop the stale "polling is unreliable" warning (the CLI now falls back to the search service when the pipeline tracking record is recycled mid-poll), and update the flow diagram to show auto- activate plus the opt-out path. * activate-and-manage.md — clarify that `deploy activate` is now only needed when `--skip-activate` was passed or when an auto-activation failed and the underlying cause has been fixed. Add the new `solution packages list --name <pattern>` server-side substring filter. * develop-solution.md — add a "List Projects" section for the new `solution project list` command (local, no backend call); renumber the subsequent steps. * triggers-and-webhooks.md — call out the new `--disabled` flag on `triggers create` and switch the example `--time-zone` to `Europe/Bucharest` so the IANA-format expectation is obvious from the example alone. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs: extend solution skill sync to overview + agents lowcode Follow-up to the previous commit, after a fuller sweep of solution- related skill files: * solution.md (overview) — update the lifecycle mermaid to mark deploy run as auto-activate, with the activate node now reachable only via --skip-activate. Add `project list` to the command tree, and clarify in the deploy section that activate is now a follow-up command, not a default step. * pack-and-deploy.md — drop the stale "Polling false-positives on deploy run" gotcha; the search-API fallback in the CLI now masks the pipeline-record expiry. * uipath-agents/lowcode/project-lifecycle.md — note that deploy run now activates by default and document --skip-activate; add a one-liner clarifying when the standalone deploy activate is still needed. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 1222f2b commit e659331

7 files changed

Lines changed: 71 additions & 42 deletions

File tree

skills/uipath-agents/references/lowcode/project-lifecycle.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,10 +149,12 @@ uip solution deploy run \
149149
--output json
150150
```
151151

152-
Creates folder, provisions resources, and activates. Polls until `DeploymentSucceeded`.
152+
Creates the folder, provisions resources, and activates the deployment in one call. A successful run returns `Status: DeploymentSucceeded` and `ActivationStatus: SuccessfulActivate`. Pass `--skip-activate` to opt out of auto-activation (legacy behaviour — leaves the deployment in `Inactive (Ready to activate)`).
153153

154154
### Activate Existing Deployment
155155

156+
Run only when `--skip-activate` was passed during deploy, or to retry a failed auto-activation after fixing the underlying cause (e.g. missing config).
157+
156158
```bash
157159
uip solution deploy activate "<DEPLOYMENT_NAME>" --output json
158160
```

skills/uipath-platform/references/orchestrator/setup-environment.md

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ Create folders, assign users with roles, provision machines, and configure licen
2525
graph LR
2626
A[folders create] --> B[roles create-role]
2727
B --> C[roles edit-role<br/>add permissions]
28-
C --> D[users create]
28+
C --> D[users import]
2929
D --> E[users assign<br/>to folder + role]
3030
E --> F[machines create]
3131
F --> G[machines assign<br/>to folder]
@@ -102,21 +102,21 @@ Role types:
102102
- **Tenant** -- Applies across the entire tenant. Assigned via `uip or users assign-roles`.
103103
- **Folder** -- Applies only within specific folders. Assigned via `uip or users assign` or `uip or roles assign`.
104104

105-
### Step 4: Create Users
105+
### Step 4: Import Users from Identity Service
106106

107-
Create users at the tenant level. They exist tenant-wide but have no folder access until explicitly assigned.
107+
Users are managed in Identity Service (IS), not in Orchestrator. `users import` references an existing IS principal so the tenant can grant it folder access. (The legacy `users create` / `users delete` commands are gone — they called endpoints reserved for `ProvisionType=Manual`, which is not how cloud or IS-backed users are managed.)
108108

109109
```bash
110-
uip or users create --username "jane.doe@example.com" --output json
110+
uip or users import --username "jane.doe@example.com" --output json
111111
```
112112

113113
Key options:
114-
- `--role-keys <keys>` -- Comma-separated role GUIDs for tenant-level role assignment at creation time.
115-
- `--allow-unattended` -- Enable unattended job execution capability.
116-
- `--unattended-username <user>` / `--unattended-password <pass>` -- Windows credentials for unattended execution.
117-
- `--name <first>` / `--surname <last>` / `--email <email>` -- Profile fields.
114+
- `--directory-id <id>` -- Use the IS directory identifier (OIDC subject) instead of `--username`. Pass exactly one of the two.
115+
- `--domain <domain>` -- IS directory domain. Defaults to `default`. List configured domains via `GET /api/DirectoryService/GetDomains` if your tenant uses on-prem AD or a non-default IS realm.
116+
- `--type <type>` -- `DirectoryUser` (default) or `DirectoryGroup`.
117+
- `--folder-path <path>` / `--folder-key <key>` + `--role-keys <guids>` -- Optional. Imports the user **and** assigns folder roles in a single call. Both must be present together; pass neither for an import-only call. The next step covers folder assignment as a separate flow.
118118

119-
Save the `Key` from the response for the next step.
119+
Save the `UserName` from the response and look up the `Key` via `users list` for the next step.
120120

121121
### Step 5: Assign Users to Folders
122122

@@ -203,11 +203,9 @@ uip or roles edit-role r1r2r3r4-... \
203203
--add-permissions "Assets.View,Assets.Edit,Queues.View,Jobs.Create,Jobs.View,Processes.View" \
204204
--output json
205205

206-
# 4. Create a user
207-
uip or users create --username "jane.doe@example.com" \
208-
--name "Jane" --surname "Doe" --email "jane.doe@example.com" \
209-
--allow-unattended --output json
210-
# Response: { "Data": { "Key": "u1u2u3u4-..." } }
206+
# 4. Import a user from Identity Service
207+
uip or users import --username "jane.doe@example.com" --output json
208+
# (Look up the assigned Key with: uip or users list --search "jane.doe")
211209

212210
# 5. Assign user to folder with role
213211
uip or users assign \

skills/uipath-platform/references/resources/triggers-and-webhooks.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,19 @@ uip resource triggers create --type time \
5959
--name "WeekdayInvoiceRun" \
6060
--release-key <process-key> \
6161
--cron "0 0 9 ? * 1-5" \
62-
--time-zone "UTC" \
62+
--time-zone "Europe/Bucharest" \
6363
--runtime-type Unattended \
6464
--job-priority Normal \
6565
--folder-path "Finance" --output json
6666
```
6767

68-
Additional options: `--calendar-key` (skip holidays, from `uip or calendars list`), `--stop-strategy` (`SoftStop`|`Kill`), `--input-arguments` (JSON).
68+
`--time-zone` takes an IANA time zone ID (e.g. `UTC`, `Europe/Bucharest`, `America/Los_Angeles`).
69+
70+
Additional options:
71+
- `--disabled` — create the trigger in disabled state (default is enabled). Useful when you want to stage triggers ahead of activation, then enable them in bulk via `triggers enable`.
72+
- `--calendar-key` — skip holidays, from `uip or calendars list`.
73+
- `--stop-strategy``SoftStop` or `Kill`.
74+
- `--input-arguments` — JSON-encoded input arguments map.
6975

7076
### Queue Trigger
7177

skills/uipath-platform/references/solution/activate-and-manage.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,11 @@ graph LR
3131

3232
## Step 1: Activate a Deployment
3333

34-
Activate a deployment that was deployed without auto-activation. Activation provisions all solution components (processes, queues, assets, etc.) in the target folder:
34+
`solution deploy run` activates by default. Use `deploy activate` only when:
35+
- the deploy was started with `--skip-activate`, or
36+
- the previous activation failed (e.g. missing config) and you've fixed the cause and want to retry without redeploying.
37+
38+
Activation provisions all solution components (processes, queues, assets, etc.) in the target folder:
3539

3640
```bash
3741
uip solution deploy activate "MyDeployment" --output json
@@ -86,6 +90,9 @@ uip solution packages list --output json
8690

8791
# Paginate and sort
8892
uip solution packages list --take 20 --order-by "Name" --order-direction "asc" --output json
93+
94+
# Filter by name (server-side substring match on the package name)
95+
uip solution packages list --name "Invoice" --output json
8996
```
9097

9198
| Option | Description | Default |

skills/uipath-platform/references/solution/develop-solution.md

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,21 @@ Unregister a project from the `.uipx` manifest. Does NOT delete files from disk.
6868
uip solution project remove ./InvoiceAutomation/OldProject --output json
6969
```
7070

71-
## Step 5: List Resources
71+
## Step 5: List Projects
72+
73+
Enumerate the projects registered in the local `.uipx` manifest. Reads only on-disk metadata — no backend call, so safe to use offline or in CI checks.
74+
75+
```bash
76+
# from inside the solution dir
77+
uip solution project list --output json
78+
79+
# or with an explicit solution folder
80+
uip solution project list --solution-folder ./InvoiceAutomation --output json
81+
```
82+
83+
`Name` is read from each project's `project.uiproj`, falling back to the directory basename if the manifest is missing or unreadable. Empty solutions return `Data: []`.
84+
85+
## Step 6: List Resources
7286

7387
Show resources declared in the solution, available in Orchestrator, or both. Run from inside the solution directory (default), or pass `--solution-folder <path>` to target another location.
7488

@@ -90,7 +104,7 @@ uip solution resource list --solution-folder ./InvoiceAutomation --output json
90104
| `--source <source>` | `all`, `local`, `remote` | `all` |
91105
| `--login-validity <minutes>` | Minimum minutes left on token before refresh | `10` |
92106

93-
## Step 6: Refresh Resources
107+
## Step 7: Refresh Resources
94108

95109
Re-scan all projects and sync resource declarations from their `bindings_v2.json` files. Refresh is the only way to reconcile a solution's local artefacts with cloud entities — run it after adding/importing projects, after editing `bindings_v2.json`, or before any `pack` / `upload`.
96110

@@ -137,7 +151,7 @@ When a name (e.g. `orders` queue) exists in multiple cloud folders, refresh pref
137151

138152
The placeholder `solution_folder` (and `.`) in a binding's folder field means "no folder" / tenant scope — they're not real cloud folders.
139153

140-
## Step 7: Get a Single Resource Configuration
154+
## Step 8: Get a Single Resource Configuration
141155

142156
Fetch the full configuration (`spec`, `apiVersion`, `isOverridable`, `resourceOverwrite`) for a specific resource by key. Useful when you need the resolved server state for a binding — e.g., constructing a deploy override, resolving an entry-point ID, inspecting a connection's authentication mode.
143157

@@ -181,7 +195,7 @@ If you need the full server spec for a resource that's already in the solution (
181195

182196
`list --source remote` returns entities from RCS that are **visible to your user** — including ones not bound to this solution. `get` is solution-context-aware: it considers anything in your `.uipx`'s solution_folder as "local", and falls back to RCS for everything else. A key shown by `list --source remote` that isn't bound to the solution will resolve via the FPS fallback.
183197

184-
## Step 8: Upload to Studio Web
198+
## Step 9: Upload to Studio Web
185199

186200
Upload the solution for browser-based editing. Accepts a directory, `.uipx` file, or `.uis` archive.
187201

@@ -191,7 +205,7 @@ uip solution upload ./InvoiceAutomation --output json
191205

192206
If the `SolutionId` in `.uipx` matches an existing Studio Web solution, the upload overwrites it.
193207

194-
## Step 9: Delete from Studio Web
208+
## Step 10: Delete from Studio Web
195209

196210
Remove a solution from Studio Web by its UUID (returned by `upload`).
197211

skills/uipath-platform/references/solution/pack-and-deploy.md

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,11 @@ graph LR
2222
A[solution pack] --> B[solution publish]
2323
B --> C[deploy config get]
2424
C --> D[config set / link]
25-
D --> E[deploy run]
25+
D --> E["deploy run<br/>(auto-activate by default)"]
2626
B --> E
2727
E --> F[deploy status]
2828
E --> G[deploy list]
29+
E -->|--skip-activate| H[deploy activate]
2930
```
3031

3132
---
@@ -75,14 +76,22 @@ This uploads to Studio Web for collaborative editing. It does **not** place the
7576

7677
## Step 4: Deploy to Orchestrator
7778

78-
Deploy the published package. This creates a new Orchestrator folder and provisions all solution resources inside it:
79+
Deploy the published package. By default this creates a new Orchestrator folder, provisions all solution resources, **and activates the deployment** in one call:
7980

8081
```bash
8182
uip solution deploy run -n "InvoiceAutomation-v2" \
8283
--package-name "MySolution" --package-version "2.0.0" \
8384
--folder-name "MySolutionFolder" --output json
8485
```
8586

87+
A successful run returns `Status: DeploymentSucceeded` and `ActivationStatus: SuccessfulActivate`. If the package requires configuration before it can activate, deploy still succeeds but activation surfaces an explicit error pointing at `deploy activate <name>` — fix the config and retry the activate.
88+
89+
To skip auto-activation (legacy behaviour — leaves the deployment in `Inactive (Ready to activate)`):
90+
91+
```bash
92+
uip solution deploy run … --skip-activate --output json
93+
```
94+
8695
Key options:
8796

8897
| Option | Description | Default |
@@ -94,8 +103,9 @@ Key options:
94103
| `--folder-path <path>` | Parent folder under which the new folder is created | -- |
95104
| `--folder-key <key>` | Parent folder key (GUID, alternative to `--folder-path`) | -- |
96105
| `--config-file <path>` | Configuration file from `deploy config get` | -- |
97-
| `--timeout <seconds>` | Polling timeout | 360 |
98-
| `--poll-interval <ms>` | Polling interval | 5000 |
106+
| `--skip-activate` | Skip the post-deploy activation; leaves the deployment in `Inactive (Ready to activate)` | (off — auto-activate) |
107+
| `--timeout <seconds>` | Polling timeout, applied per phase (deploy and, when not skipped, activate) | 360 |
108+
| `--poll-interval <ms>` | Polling interval used during both phases | 5000 |
99109
| `-t, --tenant <name>` | Tenant override | Current tenant |
100110

101111
## Step 5: Check Deployment Status
@@ -106,12 +116,7 @@ The `deploy run` command returns a pipeline deployment ID. Use it to check progr
106116
uip solution deploy status <pipeline-deployment-id> --output json
107117
```
108118

109-
> **Heads up:** `deploy run`'s polling is unreliable for long-running deployments. The CLI may print
110-
> `Result: Failure / Deployment polling failed: Response returned an error code` and `deploy status`
111-
> may then return `HTTP 404 Pipeline deployment not found` even when the deployment **succeeded**
112-
> server-side (the pipeline record can expire shortly after completion). Always cross-check with
113-
> `solution deploy list` and look up the deployment by name before treating a polling failure as a
114-
> real error.
119+
The CLI also falls back to the persistent `searchSearchDeployments22` record if the pipeline service has already recycled the in-flight tracking ID — so a deployment that finishes while the CLI is between polls is still surfaced as `DeploymentSucceeded` rather than a polling failure.
115120

116121
## Step 6: List Deployments
117122

@@ -255,10 +260,6 @@ These are different commands with different destinations:
255260

256261
On `deploy run`, `--folder-path` is the **parent** folder, not the deployment folder itself. The deployment folder is `--folder-name`, created inside `--folder-path`. To produce a nested layout like `Shared/Nica/Solution`, pre-create `Shared/Nica` (or use a previous deploy to make it) and pass `--folder-path "Shared/Nica" --folder-name "Solution"`.
257262

258-
### Polling false-positives on `deploy run`
259-
260-
`deploy run` may report `Failure / Deployment polling failed` even when the deployment succeeded — the pipeline ID expires after completion and `deploy status` then 404s. Always verify with `solution deploy list` (look up the deployment by name + check `OperationStatus`) before treating it as a real error. CI scripts should fall back to `deploy list` on polling failure rather than failing the pipeline.
261-
262263
### Config `link` Connects to Existing Resources
263264

264265
`config link` does not copy or move a resource. It tells the deployment to use an existing Orchestrator resource instead of creating a new one. The linked resource must already exist in the specified folder.

skills/uipath-platform/references/solution/solution.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ graph LR
3737
B --> C[resource refresh]
3838
C --> D[pack]
3939
D --> E[publish]
40-
E --> F[deploy run]
41-
F --> G[activate]
40+
E --> F["deploy run<br/>(auto-activate by default)"]
41+
F -->|--skip-activate| G[activate]
4242
C --> H[upload]
4343
```
4444

@@ -62,16 +62,17 @@ uip solution
6262
├── project
6363
│ ├── add <projectPath> [solutionFile] Register an existing subfolder in .uipx
6464
│ ├── remove <projectPath> [solutionFile] Unregister a project from .uipx
65-
│ └── import --source <path> Copy external project into solution and register
65+
│ ├── import --source <path> Copy external project into solution and register
66+
│ └── list List projects registered in the local .uipx (no backend call)
6667
├── resource
6768
│ ├── list List local, remote, or all resources (--solution-folder, default cwd)
6869
│ ├── refresh Sync resource declarations from project bindings (--solution-folder, default cwd)
6970
│ └── get <resource-key> Get full configuration for a single resource — local or remote (--solution-folder, default cwd)
7071
├── deploy
71-
│ ├── run -n <name> Deploy a published solution package
72+
│ ├── run -n <name> Deploy a published solution package (auto-activates by default; pass --skip-activate to opt out)
7273
│ ├── status <id> Check deployment status
7374
│ ├── list List deployments
74-
│ ├── activate <name> Activate a deployment
75+
│ ├── activate <name> Activate a deployment (only needed after --skip-activate or to retry a failed auto-activation)
7576
│ ├── uninstall <name> Uninstall a deployment
7677
│ └── config
7778
│ ├── get <package-name> Fetch default deploy config

0 commit comments

Comments
 (0)