@uipath/skills 1.204.0-preview.1149 → 1.204.0-preview.1160

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/package.json +1 -1
  2. package/skills/uipath-agents/references/authentication.md +5 -11
  3. package/skills/uipath-agents/references/coded/quickstart.md +3 -3
  4. package/skills/uipath-api-workflow/assets/templates/connector-call-example.json +1 -1
  5. package/skills/uipath-api-workflow/references/connector-activity-discovery.md +2 -2
  6. package/skills/uipath-coded-apps/SKILL.md +7 -7
  7. package/skills/uipath-coded-apps/references/create-action-app.md +3 -4
  8. package/skills/uipath-coded-apps/references/create-web-app.md +3 -4
  9. package/skills/uipath-coded-apps/references/dashboards/plugins/build/impl.md +1 -2
  10. package/skills/uipath-coded-apps/references/debug.md +1 -2
  11. package/skills/uipath-coded-apps/references/oauth-client-setup.md +1 -2
  12. package/skills/uipath-coded-apps/references/patterns.md +5 -6
  13. package/skills/uipath-governance/references/access-policy/access-policy-commands.md +1 -1
  14. package/skills/uipath-governance/references/aops-policy/aops-policy-commands.md +1 -1
  15. package/skills/uipath-governance/references/aops-policy/aops-policy-overview-guide.md +1 -1
  16. package/skills/uipath-governance/references/auth-context.md +4 -4
  17. package/skills/uipath-governance/references/cli-cheatsheet.md +1 -1
  18. package/skills/uipath-maestro-flow/examples/ObservatorySeeing.flow.ts +1 -1
  19. package/skills/uipath-planner/references/sdd-generation-guide.md +1 -1
  20. package/skills/uipath-platform/SKILL.md +2 -2
  21. package/skills/uipath-rpa/references/activity-docs/UiPath.Web.Activities/2.5/coded/coded-api.md +2 -2
  22. package/skills/uipath-rpa/references/is-connector-xaml-guide.md +1 -2
  23. package/skills/uipath-tasks/SKILL.md +2 -3
  24. package/skills/uipath-tasks/references/action-center-urls.md +5 -6
  25. package/skills/uipath-troubleshoot/references/products/coded-apps/playbooks/cors-error-wrong-base-url.md +2 -3
  26. package/version-manifest.json +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uipath/skills",
3
- "version": "1.204.0-preview.1149",
3
+ "version": "1.204.0-preview.1160",
4
4
  "description": "UiPath agent skills for Claude Code, Codex, Cursor, Copilot, Gemini and OpenCode — RPA, UI automation, UI testing, coded agents/apps/workflows, and troubleshooting. Distributed as the UiPath Claude Code plugin.",
5
5
  "author": {
6
6
  "name": "UiPath"
@@ -21,11 +21,8 @@ uip login status --output json
21
21
  # Production cloud (one-shot browser sign-in, org/tenant pre-selected — see Critical Rules for who runs it)
22
22
  uip login --organization "<ORG>" --tenant "<TENANT>" --output json
23
23
 
24
- # Staging
25
- uip login --authority "https://staging.uipath.com/identity_" --organization "<ORG>" --tenant "<TENANT>" --output json
26
-
27
- # Alpha
28
- uip login --authority "https://alpha.uipath.com/identity_" --organization "<ORG>" --tenant "<TENANT>" --output json
24
+ # Non-default host (Automation Suite, dedicated, or other custom authority)
25
+ uip login --authority "<AUTHORITY_URL>" --organization "<ORG>" --tenant "<TENANT>" --output json
29
26
 
30
27
  # Service principal (unattended)
31
28
  uip login --client-id "<ID>" --client-secret "<SECRET>" --base-url "<URL>" --output json
@@ -34,12 +31,12 @@ uip login --client-id "<ID>" --client-secret "<SECRET>" --base-url "<URL>" --out
34
31
  ## Critical Rules
35
32
 
36
33
  - **`uip login status --output json` once per invocation.** Reports `Status`, `Organization`, `Tenant`, `Expiration Date`. When the user has not asked to connect to a specific org/tenant, trust one `Logged in` result — the wrapper auto-refreshes tokens on forwarded cloud calls. No `uip login refresh` subcommand exists. Re-auth only on a real `401`.
37
- - **If the user supplied environment + organization + tenant, connect with those exact values.** First run/capture `uip login status --output json` if requested or required, then use the matching one-shot command from the Quick Reference (`uip login --organization "<ORG>" --tenant "<TENANT>" --output json`, plus `--authority` for staging/alpha) — see the next rule for who runs it. Do this even if the status check reports an existing `Logged in` session, because the active session may point at a different org/tenant. Do not ask another auth question when all three values are already present.
34
+ - **If the user supplied environment + organization + tenant, connect with those exact values.** First run/capture `uip login status --output json` if requested or required, then use the matching one-shot command from the Quick Reference (`uip login --organization "<ORG>" --tenant "<TENANT>" --output json`, plus `--authority` for any non-default host) — see the next rule for who runs it. Do this even if the status check reports an existing `Logged in` session, because the active session may point at a different org/tenant. Do not ask another auth question when all three values are already present.
38
35
  - **Interactive sign-ins belong in the user's own terminal.** Every `uip login` without `--client-secret` is a browser sign-in: it blocks until the person completes it, and run from your shell tool it shows them nothing while your tool's timeout can kill it mid-wait. Prefer asking the user to run the one-shot command themselves (in Claude Code, prefix it with `!` so it runs inside the session); if you do run it, first tell the user a browser window is about to open and the command will wait for them. **Never pass `--no-browser` for a human sign-in** — that flag is for automation that opens the printed URL programmatically; relaying the URL by copy/paste is fragile (a line-wrapped or truncated copy is rejected by the identity server with an opaque browser-side error).
39
36
  - **NEVER run `uip login` without `--tenant`.** The interactive tenant picker cannot be driven from Claude's Bash tool.
40
37
  - **When auth is needed and the user did not supply all values, ask one question, then stop.** If the status check shows the user is not logged in and any of environment / organization / tenant is missing, your entire response must be exactly this question — no headers, no bullets, no next-steps:
41
38
 
42
- > What is your UiPath **environment** (cloud / staging / alpha), **organization name**, and **tenant name**?
39
+ > What is your UiPath **environment** (cloud, or your custom host URL), **organization name**, and **tenant name**?
43
40
 
44
41
  Wait for the reply, then follow the interactive-sign-ins rule above: give the user the exact one-shot command from the Quick Reference to run in their own terminal (or, if you run it, first tell them a browser window is about to open), and confirm with `uip login status --output json`.
45
42
 
@@ -48,10 +45,7 @@ uip login --client-id "<ID>" --client-secret "<SECRET>" --base-url "<URL>" --out
48
45
  | User says | Flag to use |
49
46
  |-----------|-------------|
50
47
  | cloud (default) | no `--authority` flag |
51
- | staging | `--authority "https://staging.uipath.com/identity_"` |
52
- | alpha | `--authority "https://alpha.uipath.com/identity_"` |
53
-
54
- For on-premise Automation Suite, use `--authority <identity-url>` pointing at your instance.
48
+ | A custom host URL (Automation Suite, dedicated, other) | `--authority "<AUTHORITY_URL>"` — the URL the user gave, pointing at their instance |
55
49
 
56
50
  ## Unattended (Service Principal)
57
51
 
@@ -45,10 +45,10 @@ Use `uip codedagent <cmd>`, not `uv run uipath <cmd>`. The wrapper injects sessi
45
45
  - **Runtime captures only the last node's delta as output.** `Annotated[list, operator.add]` reducers accumulate inside the graph but vanish from `--output-file` JSON and eval trajectories. Carry aggregate fields forward in each node's return (`{"items": [*state.get("items", []), x]}`) — see [frameworks/langgraph-integration.md](frameworks/langgraph-integration.md) § Runtime Output Quirk.
46
46
  - **Verify the JSON, not the streamed display.** After `uip codedagent run --output-file out.json`, inspect `out.json` — the streamed view shows per-node deltas; the JSON is the runtime's actual final result. Mismatches expose the runtime quirk above.
47
47
  - **Use `uip codedagent deploy` for packaging/publishing.** `uip codedagent pack` and `uip codedagent publish` are filtered by the wrapper.
48
- - **NEVER run `uip login` without `--tenant`.** The interactive tenant picker does not work from Claude's Bash tool. Use the one-shot form `uip login --organization "<ORG>" --tenant "<TENANT>"`, mapping staging/alpha to `--authority` (see [../authentication.md](../authentication.md)).
48
+ - **NEVER run `uip login` without `--tenant`.** The interactive tenant picker does not work from Claude's Bash tool. Use the one-shot form `uip login --organization "<ORG>" --tenant "<TENANT>"`, adding `--authority` for a non-default host (see [../authentication.md](../authentication.md)).
49
49
  - **Auth MUST be an interactive question only when needed and values are missing.** If the session check fails and the user did not provide all of environment / organization / tenant, your ENTIRE response must be a single direct question. Do NOT wrap it in bullet points, "Next Steps" headers, or status summaries. Just ask and stop:
50
50
 
51
- > What is your UiPath **environment** (cloud/staging/alpha), **organization name**, and **tenant name**?
51
+ > What is your UiPath **environment** (cloud, or your custom host URL), **organization name**, and **tenant name**?
52
52
  - **In a flow, coded agents are referenced via the `agent` plugin (uipath-maestro-flow skill)** — node type `uipath.core.agent.{key}`, `Orchestrator.StartAgentJob`. See [flow-integration.md](flow-integration.md) for the three patterns: in-solution sibling folder, Orchestrator-published, tool resource.
53
53
 
54
54
  ## Lifecycle Stages
@@ -110,7 +110,7 @@ Steps 8 and 9 are mandatory stops **for greenfield**: always ask the user, even
110
110
  4. **Bindings** — Sync `bindings.json` with the code using [lifecycle/bindings-reference.md](lifecycle/bindings-reference.md).
111
111
  5. **Auth (one-shot)** — Run `uip login status --output json` once. If the user supplied environment + organization + tenant, have them run the matching one-shot login command from [../authentication.md](../authentication.md) in their own terminal, using both `--organization` and `--tenant` in the same `uip login` command (a browser sign-in — if you run it yourself, first tell the user a browser window is about to open). Do this even when `Status: Logged in`, because the existing session may be for a different tenant. If no credentials were supplied and `Status: Logged in`, trust the wrapper for the rest of the run (it auto-refreshes tokens). Otherwise ask for credentials — output ONLY this question as your entire response:
112
112
 
113
- > What is your UiPath **environment** (cloud/staging/alpha), **organization name**, and **tenant name**?
113
+ > What is your UiPath **environment** (cloud, or your custom host URL), **organization name**, and **tenant name**?
114
114
 
115
115
  Then STOP and wait. On reply, hand the user the matching one-shot login from [../authentication.md](../authentication.md) to run in their own terminal (maps environment → `--authority`), then confirm with `uip login status --output json`. Never run `uip login` without `--tenant`.
116
116
  6. **Run** — Re-run `uip codedagent init` first whenever any of these changed since the last init, **or** when `has_entry_points == false`:
@@ -77,7 +77,7 @@
77
77
  "bodyParameters": {
78
78
  "authentication": "manual",
79
79
  "method": "GET",
80
- "url": "https://catfact.ninja/fact",
80
+ "url": "https://api.example.com/facts/random",
81
81
  "headers": {}
82
82
  }
83
83
  },
@@ -139,9 +139,9 @@ Never use Http kind with a vendor UUID, the simple `call: "http"` form, or a ven
139
139
 
140
140
  `with.method` is always `POST`; `with.endpoint` is always `/http-request`. Put the actual request in `bodyParameters`: `authentication` (`"manual"` or `"connector"`), actual `method`, `url`, `headers`, `body`, and other inputs. Output is an envelope; use `Data.ExportBucketKey`, then `.content`, `.statusCode`, `.headers`, etc.
141
141
 
142
- Example: stub the HTTP Request activity with `--inputs '{"url":"https://catfact.ninja/fact","method":"GET"}'`.
142
+ Example: stub the HTTP Request activity with `--inputs '{"url":"https://api.example.com/facts/random","method":"GET"}'`.
143
143
 
144
- Verified end-to-end: `uip api-workflow run --no-auth` on the resulting workflow returns `statusCode: 200`, `content.fact: "..."`. StudioWeb's designer renders the activity as the unified HTTP Request card. See [../assets/templates/connector-call-example.json](../assets/templates/connector-call-example.json) for a complete stub-generated workflow.
144
+ Against a live endpoint, `uip api-workflow run --no-auth` on the resulting workflow returns `statusCode: 200` with the parsed response body under `content`. StudioWeb's designer renders the activity as the unified HTTP Request card. See [../assets/templates/connector-call-example.json](../assets/templates/connector-call-example.json) for a complete stub-generated workflow.
145
145
 
146
146
  ### IntSvc kind
147
147
 
@@ -147,7 +147,7 @@ Authenticate before any cloud command:
147
147
  ```bash
148
148
  uip login status --output json # check if logged in
149
149
  uip login # interactive OAuth (opens browser)
150
- uip login --authority https://alpha.uipath.com # non-production environments
150
+ uip login --authority "<AUTHORITY_URL>" # non-default host (Automation Suite, dedicated)
151
151
 
152
152
  # Client-credentials (headless/CI) — scope MUST name one Orchestrator scope AND
153
153
  # the two Apps-service scopes. Neither set covers the other:
@@ -162,7 +162,7 @@ uip login \
162
162
  --organization <org> \
163
163
  --tenant <tenant> \
164
164
  --scope "OR.Default Apps.Read Apps.Write" \
165
- --authority https://alpha.uipath.com # omit --authority for production
165
+ --authority "<AUTHORITY_URL>" # omit --authority for cloud.uipath.com
166
166
  ```
167
167
 
168
168
  > **Never handle the client secret in the conversation.** Do not ask the user to paste it into chat, do not write it into a command line or file, and do not echo it. If `UIPATH_CLIENT_ID` / `UIPATH_CLIENT_SECRET` are not set, ask the user to export them in their own shell, then run the command above.
@@ -181,13 +181,13 @@ To change any of these values, edit `uipath.json`.
181
181
  |----------|---------|-------------|
182
182
  | `UIPATH_PROJECT_ID` | `uip codedapp push` / `uip codedapp pull` | Studio Web project ID |
183
183
 
184
- **Base URL by environment:**
184
+ **Base URL by environment** — derive from the portal host the user signed in to (`uip login status --output json` → `Data.BaseUrl`):
185
185
 
186
- | Environment | Correct Base URL |
186
+ | Portal host | Correct Base URL |
187
187
  |---|---|
188
- | Production (cloud) | `https://api.uipath.com` |
189
- | Staging | `https://staging.api.uipath.com` |
190
- | Alpha | `https://alpha.api.uipath.com` |
188
+ | `https://cloud.uipath.com` (default) | `https://api.uipath.com` |
189
+ | `https://<PREFIX>.uipath.com` (any other UiPath-hosted portal) | `https://<PREFIX>.api.uipath.com` |
190
+ | Any other host (Automation Suite, custom) | The API URL the user supplies — use it verbatim |
191
191
 
192
192
  ## Quick Deploy (Full Pipeline)
193
193
 
@@ -157,17 +157,16 @@ If the deduction surfaces **Storage Buckets** and Q3-doc was not already asked f
157
157
  #### Q4a — Environment (only if SDK needed)
158
158
 
159
159
  Ask:
160
- > "Which UiPath environment are you targeting? `cloud` (production), `staging`, or `alpha`?"
160
+ > "Which UiPath environment are you targeting? `cloud` (`cloud.uipath.com`), or paste your portal URL if you use a different host."
161
161
 
162
162
  Map the answer to the cloud host:
163
163
 
164
164
  | Environment | Cloud Host |
165
165
  |---|---|
166
166
  | cloud | `https://cloud.uipath.com` |
167
- | staging | `https://staging.uipath.com` |
168
- | alpha | `https://alpha.uipath.com` |
167
+ | Custom | The portal URL the user gave, verbatim (origin only, no path) |
169
168
 
170
- Store the cloud host as `<cloud-host>`. It tells the External-App creation step (Q4b) which org/environment portal to target — **do not** skip it and default to `https://cloud.uipath.com`, or staging/alpha users will create the External App in the wrong environment. It is also passed as the redirect URI in Q4b to satisfy the create form's mandatory field. Note that this is **not** the URI the deployed app authenticates with — see Q4b below for the `.../actions_` form that has to be registered separately.
169
+ Store the cloud host as `<cloud-host>`. It tells the External-App creation step (Q4b) which org/environment portal to target — **do not** skip it and default to `https://cloud.uipath.com`, or users on a non-default host will create the External App in the wrong environment. It is also passed as the redirect URI in Q4b to satisfy the create form's mandatory field. Note that this is **not** the URI the deployed app authenticates with — see Q4b below for the `.../actions_` form that has to be registered separately.
171
170
 
172
171
  #### Q4b — Client ID (only if SDK needed)
173
172
 
@@ -25,9 +25,8 @@ Please answer these questions to continue:
25
25
  **1. App name** — lowercase kebab-case project folder name (e.g. `my-dashboard`)
26
26
 
27
27
  **2. Environment** — which UiPath environment?
28
- - `cloud` — Production *(most common)*
29
- - `staging` — Staging
30
- - `alpha` — Alpha
28
+ - `cloud` — `cloud.uipath.com` *(most common)*
29
+ - Custom — paste your portal or API URL (Automation Suite, dedicated, or other non-default host)
31
30
 
32
31
  **3. Org name** — your UiPath organization slug (from `cloud.uipath.com/<orgName>`)
33
32
 
@@ -59,7 +58,7 @@ Once you have the answers (app name, environment, org, tenant, styling), execute
59
58
 
60
59
  ### 3.1 — Resolve the base URL
61
60
 
62
- Map the `<environment>` answer from Step 1 to a base URL using the table in [SKILL.md](../SKILL.md) (Production → `https://api.uipath.com`, Staging → `https://staging.api.uipath.com`, Alpha → `https://alpha.api.uipath.com`). If the user gave a custom URL, use that verbatim. Store as `<base-url>`.
61
+ Map the `<environment>` answer from Step 1 to a base URL using the table in [SKILL.md](../SKILL.md) (`cloud` → `https://api.uipath.com`; a custom portal URL → its API host per that table). If the user gave a custom API URL, use that verbatim. Store as `<base-url>`.
63
62
 
64
63
  ### 3.2 — Create the Vite project
65
64
 
@@ -27,9 +27,8 @@ Verify `Data.Status === "Logged in"` — if not, stop and tell the user to run `
27
27
 
28
28
  | cloudUrl | apiUrl |
29
29
  |----------|--------|
30
- | `https://alpha.uipath.com` | `https://alpha.api.uipath.com` |
31
- | `https://staging.uipath.com` | `https://staging.api.uipath.com` |
32
30
  | `https://cloud.uipath.com` | `https://api.uipath.com` |
31
+ | `https://<PREFIX>.uipath.com` | `https://<PREFIX>.api.uipath.com` |
33
32
 
34
33
  Rule: insert `api.` before `uipath.com`. Exception: `cloud.uipath.com` → `api.uipath.com`.
35
34
 
@@ -288,8 +288,7 @@ The `baseUrl` in `uipath.json` **must** use the API subdomain — not the portal
288
288
  | Environment | Correct | Wrong |
289
289
  |---|---|---|
290
290
  | cloud | `https://api.uipath.com` | `https://cloud.uipath.com` |
291
- | staging | `https://staging.api.uipath.com` | `https://staging.uipath.com` |
292
- | alpha | `https://alpha.api.uipath.com` | `https://alpha.uipath.com` |
291
+ | Other UiPath-hosted portal | `https://<PREFIX>.api.uipath.com` | `https://<PREFIX>.uipath.com` |
293
292
 
294
293
  Fix by setting `baseUrl` in `uipath.json` to the correct API-subdomain URL, then restart the dev server so the plugin re-injects the `<meta name="uipath:base-url">` tag.
295
294
 
@@ -17,8 +17,7 @@ Needed inputs: app name, redirect URI(s), required OAuth scopes (from [oauth-sco
17
17
  | Environment | Cloud Host |
18
18
  |---|---|
19
19
  | cloud | `https://cloud.uipath.com` |
20
- | staging | `https://staging.uipath.com` |
21
- | alpha | `https://alpha.uipath.com` |
20
+ | Custom | The portal host from `uip login status --output json` → `Data.BaseUrl` |
22
21
 
23
22
  ## Scope model — CLI vs portal
24
23
 
@@ -885,10 +885,10 @@ https://cloud.uipath.com/embed_/{orgName}/{tenantName}/actions_/current-task/tas
885
885
  | API URL | Cloud UI URL |
886
886
  |---------|-------------|
887
887
  | `https://api.uipath.com` | `https://cloud.uipath.com` |
888
- | `https://staging.api.uipath.com` | `https://staging.uipath.com` |
889
- | `https://alpha.api.uipath.com` | `https://alpha.uipath.com` |
888
+ | `https://<PREFIX>.api.uipath.com` | `https://<PREFIX>.uipath.com` |
889
+ | Any other host (Automation Suite, custom) | Same host, unchanged |
890
890
 
891
- **NEVER use naive string replacement** like `baseUrl.replace('api.', 'cloud.')` — this breaks for staging/alpha (produces `staging.cloud.uipath.com` which is wrong).
891
+ **NEVER use naive string replacement** like `baseUrl.replace('api.', 'cloud.')` — this breaks for prefixed hosts (produces `<PREFIX>.cloud.uipath.com`, which is wrong).
892
892
 
893
893
  Add this helper to `src/utils/formatters.ts`:
894
894
 
@@ -898,8 +898,7 @@ export function apiToCloudUrl(apiBaseUrl: string): string {
898
898
  try {
899
899
  const url = new URL(apiBaseUrl);
900
900
  // "api.uipath.com" → "cloud.uipath.com"
901
- // "staging.api.uipath.com" → "staging.uipath.com"
902
- // "alpha.api.uipath.com" → "alpha.uipath.com"
901
+ // "<prefix>.api.uipath.com" → "<prefix>.uipath.com"
903
902
  let cloudHost = url.hostname.replace('api.uipath.com', 'uipath.com');
904
903
  if (cloudHost === 'uipath.com') cloudHost = 'cloud.uipath.com';
905
904
  return `${url.protocol}//${cloudHost}`;
@@ -967,7 +966,7 @@ if (pendingTask) {
967
966
  }
968
967
  ```
969
968
 
970
- **Do NOT construct the URL manually** — always use the `apiToCloudUrl` + `buildTaskUrl` helpers to ensure correct environment mapping across cloud/staging/alpha.
969
+ **Do NOT construct the URL manually** — always use the `apiToCloudUrl` + `buildTaskUrl` helpers to ensure correct environment mapping across cloud and other UiPath-hosted environments.
971
970
 
972
971
  ### iframe component
973
972
 
@@ -36,7 +36,7 @@ If not logged in:
36
36
 
37
37
  ```bash
38
38
  uip login # interactive OAuth
39
- uip login --authority https://alpha.uipath.com # non-production environments
39
+ uip login --authority "<AUTHORITY_URL>" # non-default host (Automation Suite, dedicated)
40
40
  ```
41
41
 
42
42
  For `evaluate`, login must target a specific tenant (not just an organization).
@@ -407,7 +407,7 @@ Interactive OAuth — default for all commands.
407
407
 
408
408
  ```bash
409
409
  uip login # production (opens browser)
410
- uip login --authority https://alpha.uipath.com # non-production environments
410
+ uip login --authority "<AUTHORITY_URL>" # non-default host (Automation Suite, dedicated)
411
411
  uip login status --output json # verify logged-in state
412
412
  ```
413
413
 
@@ -94,7 +94,7 @@ uip login status --output json
94
94
  If not logged in:
95
95
  ```bash
96
96
  uip login # interactive OAuth (opens browser)
97
- uip login --authority https://alpha.uipath.com # non-production environments
97
+ uip login --authority "<AUTHORITY_URL>" # non-default host (Automation Suite, dedicated)
98
98
  ```
99
99
 
100
100
  ### Step 2 — Create a session directory and bootstrap every product's schema
@@ -42,7 +42,7 @@ Before any capability runs, verify:
42
42
  1. `uip login status --output json` returns `Data.Status == "Logged in"`.
43
43
  2. `~/.uipath/.auth` exists and `UIPATH_TENANT_ID` is non-empty.
44
44
 
45
- If either fails, halt and ask the user to run `uip login` (or `uip login --authority https://alpha.uipath.com` for non-prod).
45
+ If either fails, halt and ask the user to run `uip login` (or `uip login --authority "<AUTHORITY_URL>"` for a non-default host).
46
46
 
47
47
  ## Tenant-intent validation (Apply / Advise / Diagnose)
48
48
 
@@ -64,7 +64,7 @@ On mismatch, halt with:
64
64
 
65
65
  If you need a different org or authority:
66
66
  uip login # interactive (cloud.uipath.com)
67
- uip login --authority https://alpha.uipath.com # non-prod alpha
67
+ uip login --authority "<AUTHORITY_URL>" # non-default host
68
68
 
69
69
  Or, if this IS the tenant you meant, reply 'yes, continue on <currentTenantName>'.
70
70
  ```
@@ -90,12 +90,12 @@ uip login status --output json
90
90
  # → Data.Tenant should now show the new tenant
91
91
  ```
92
92
 
93
- When the user needs a different **org** or **authority** (e.g. alpha vs cloud.uipath.com):
93
+ When the user needs a different **org** or **authority** (e.g. an Automation Suite host vs cloud.uipath.com):
94
94
 
95
95
  ```bash
96
96
  # Full re-login — browser OAuth flow
97
97
  uip login # cloud.uipath.com (default)
98
- uip login --authority https://alpha.uipath.com # non-prod alpha
98
+ uip login --authority "<AUTHORITY_URL>" # non-default host (Automation Suite, dedicated)
99
99
  ```
100
100
 
101
101
  **Show this to the user** when the mismatch block fires — the tenant set path is much faster than a full re-login when they're already in the right org.
@@ -15,7 +15,7 @@ Every command accepts `--output json`. Parse the structured response:
15
15
  ```bash
16
16
  uip login status --output json # Data.Status == "Logged in"
17
17
  uip login # interactive OAuth
18
- uip login --authority https://alpha.uipath.com # non-prod
18
+ uip login --authority "<AUTHORITY_URL>" # non-default host
19
19
  ```
20
20
 
21
21
  See [auth-context.md](auth-context.md) for reading `~/.uipath/.auth` (the canonical source for `UIPATH_TENANT_ID`, `UIPATH_TENANT_NAME`, `UIPATH_ORGANIZATION_ID`, `UIPATH_ACCESS_TOKEN`).
@@ -27,7 +27,7 @@ export default flow('observatory-seeing')
27
27
 
28
28
  // Somebody else's uptime, so the call has to ROUTE on failure.
29
29
  .step('fetchSun', http({
30
- url: tmpl`https://api.sunrise-sunset.org/json?lat=${input('lat')}&lng=${input('lng')}&formatted=0`,
30
+ url: tmpl`https://api.example.com/sun?lat=${input('lat')}&lng=${input('lng')}`,
31
31
  managed: true,
32
32
  // Declare what we read, or the read is refused.
33
33
  returns: { results: 'object' },
@@ -18,7 +18,7 @@ uip login status --output json
18
18
 
19
19
  | `Data.BaseUrl` host | Resolves to | Question 2 |
20
20
  |---|---|---|
21
- | `cloud.uipath.com` (or `alpha.uipath.com` / `staging.uipath.com`) | **Automation Cloud** — full catalog, entitlement-gated per tenant | skip (confidently resolved) |
21
+ | `cloud.uipath.com` | **Automation Cloud** — full catalog, entitlement-gated per tenant | skip (confidently resolved) |
22
22
  | any other `*.uipath.com` host | **Automation Cloud variant** (Public Sector / Dedicated / Test Cloud / region-specific) — catalog is variant-, region-, and entitlement-gated | skip the platform question, but verify each gated product (Maestro, Agents, Coded Apps, API Workflows, Solutions) against the tenant's actual entitlements; unverifiable → `[SME REVIEW]` per product |
23
23
  | any other (customer / on-prem) host | **self-hosted — Automation Suite OR standalone Orchestrator (ambiguous)** | **do not skip** — ask the custom-host follow-up below |
24
24
  | `Status` ≠ `Logged in`, call errors, or no `BaseUrl` | unknown | ask Question 2 in full; tell the user that running `uip login` first lets the next run auto-detect |
@@ -162,9 +162,9 @@ For a named interactive login:
162
162
  uip login --profile dev --output json
163
163
  ```
164
164
 
165
- For a custom authority (e.g., alpha.uipath.com):
165
+ For a custom authority (Automation Suite, dedicated, or other non-default host):
166
166
  ```bash
167
- uip login --authority "https://alpha.uipath.com/identity_" --it --output json
167
+ uip login --authority "<AUTHORITY_URL>" --it --output json
168
168
  ```
169
169
 
170
170
  For non-interactive (CI/CD) scenarios, use client credentials read from environment variables with the CLI's `env.<NAME>` syntax. Never ask the user to paste the secret into chat or put it on the command line:
@@ -506,7 +506,7 @@ Used by `ResponseOptions.FileOverwrite`.
506
506
  [Workflow]
507
507
  public void Execute()
508
508
  {
509
- var response = http.GetAsync("https://httpbin.org/get").GetAwaiter().GetResult();
509
+ var response = http.GetAsync("https://api.example.com/items").GetAwaiter().GetResult();
510
510
  Log($"Status: {response.StatusCode}");
511
511
  }
512
512
  ```
@@ -517,7 +517,7 @@ public void Execute()
517
517
  [Workflow]
518
518
  public void Execute()
519
519
  {
520
- var options = HttpRequestOptions.ForPost("https://httpbin.org/post")
520
+ var options = HttpRequestOptions.ForPost("https://api.example.com/items")
521
521
  .WithJsonBody("{\"name\":\"uipath\"}")
522
522
  .WithHeader("X-Trace-Id", Guid.NewGuid().ToString())
523
523
  .WithBearerToken("token-value")
@@ -70,8 +70,7 @@ Same principle throughout: **pass the selector the activity needs, get back its
70
70
 
71
71
  ```bash
72
72
  uip login # production (cloud.uipath.com)
73
- uip login --authority https://alpha.uipath.com/identity_ # alpha
74
- uip login --authority https://staging.uipath.com/identity_ # staging
73
+ uip login --authority "<AUTHORITY_URL>" # non-default host (Automation Suite, dedicated)
75
74
  ```
76
75
 
77
76
  The command is **interactive** (opens a browser). If you need the user to run it themselves, ask them to type `! uip login` so the token lands in the current session.
@@ -24,9 +24,8 @@ All operations go through `uip tasks <verb> --output json`.
24
24
  When switching is required:
25
25
  1. Check current login: `uip login status --output json` — verify `UIPATH_URL`, `Organization`, and `Tenant`
26
26
  2. Re-login with `--authority` only if environment differs:
27
- - Alpha: `uip login --authority https://alpha.uipath.com --tenant <tenant>`
28
- - Staging: `uip login --authority https://staging.uipath.com --tenant <tenant>`
29
- - Production: `uip login --tenant <tenant>` (default, no `--authority` needed)
27
+ - Non-default host (Automation Suite, dedicated, other): `uip login --authority "<AUTHORITY_URL>" --tenant <tenant>`
28
+ - `cloud.uipath.com`: `uip login --tenant <tenant>` (default, no `--authority` needed)
30
29
  3. If already on the right environment but wrong tenant: `uip login tenant set <tenant-name>`
31
30
 
32
31
  ```bash
@@ -43,7 +43,7 @@ Every URL above MUST include:
43
43
 
44
44
  | Segment | Source | Notes |
45
45
  |------------|-------------------------------------------------------|-------|
46
- | `{host}` | UI host (NOT the API host — see "Environment mapping" below) | `cloud.uipath.com`, `staging.uipath.com`, `alpha.uipath.com` |
46
+ | `{host}` | UI host (NOT the API host — see "Environment mapping" below) | `cloud.uipath.com`, or the session's UI host |
47
47
  | `{org}` | Organization name or ID | URL-encode if it contains spaces/unicode. |
48
48
  | `{tenant}` | Tenant **name** (e.g. `DefaultTenant`) | **Mandatory.** Never substitute a path keyword like `actions` here. |
49
49
  | `{taskKey}` or `{taskId}` | From `uip tasks get` / `uip tasks list` JSON | Use `Key` (string GUID) for inbox; numeric `Id` for standalone. |
@@ -51,7 +51,7 @@ Every URL above MUST include:
51
51
  ## Anti-pattern: missing tenant slug
52
52
 
53
53
  ```text
54
- ❌ https://alpha.uipath.com/popoc/orchestrator_/actions/inbox/<taskKey>
54
+ ❌ https://cloud.uipath.com/popoc/orchestrator_/actions/inbox/<taskKey>
55
55
  ^^^^^^^
56
56
  tenant slug missing
57
57
  ```
@@ -77,14 +77,13 @@ these URLs.
77
77
  | API host | UI host |
78
78
  |----------------------------|----------------------------|
79
79
  | `api.uipath.com` | `cloud.uipath.com` |
80
- | `staging.api.uipath.com` | `staging.uipath.com` |
81
- | `alpha.api.uipath.com` | `alpha.uipath.com` |
82
80
  | `gov.api.uipath.com` | `gov.uipath.com` |
81
+ | `<PREFIX>.api.uipath.com` | `<PREFIX>.uipath.com` |
83
82
 
84
- If `uip login status` reports a base URL of `https://alpha.api.uipath.com`,
83
+ If `uip login status` reports a base URL of `https://<PREFIX>.api.uipath.com`,
85
84
  strip the `api.` prefix before building an Action Center URL.
86
85
 
87
- > **Note:** the table covers the four common public environments. Regional
86
+ > **Note:** the table covers the common public patterns. Regional
88
87
  > (e.g. EU-specific) and private/dedicated cloud hosts may use different
89
88
  > prefixes. When in doubt, take the host from `uip login status --output
90
89
  > json` and apply the same `api.X → X` transformation; if the base URL
@@ -20,7 +20,7 @@ What can cause it:
20
20
  - `baseUrl` in `uipath.json` (injected as the `uipath:base-url` meta tag) points at the **portal domain** (`cloud.uipath.com`) instead of the **API subdomain** (`api.uipath.com`). The portal domain does not return `Access-Control-Allow-Origin` for browser XHR/fetch, so every SDK call is blocked.
21
21
 
22
22
  What to look for:
23
- - The host in the blocked request URL — if it is `cloud.uipath.com` (or `staging.uipath.com` / `alpha.uipath.com`), the base URL is wrong
23
+ - The host in the blocked request URL — if it is a portal host such as `cloud.uipath.com` (no `api.` label), the base URL is wrong
24
24
  - The `baseUrl` value in `uipath.json`
25
25
 
26
26
  ## Investigation
@@ -40,7 +40,6 @@ What to look for:
40
40
  | Environment | Correct (`baseUrl`) | Wrong |
41
41
  |-------------|---------------------|-------|
42
42
  | cloud | `https://api.uipath.com` | `https://cloud.uipath.com` |
43
- | staging | `https://staging.api.uipath.com` | `https://staging.uipath.com` |
44
- | alpha | `https://alpha.api.uipath.com` | `https://alpha.uipath.com` |
43
+ | Other UiPath-hosted portal | `https://<PREFIX>.api.uipath.com` | `https://<PREFIX>.uipath.com` |
45
44
 
46
45
  After restarting, re-test. The API subdomain returns the CORS headers the browser requires.
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
- "skillsVersion": "1.204.0-preview.1149",
3
+ "skillsVersion": "1.204.0-preview.1160",
4
4
  "targetCli": "^1.204.0"
5
5
  }