@uipath/solution-tool 1.196.0 → 1.197.0-preview.59

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.
@@ -19,6 +19,5 @@ export declare class PackCommandService {
19
19
  */
20
20
  executeAsync(solutionPath: string, options: PackCommandOptions): Promise<ToolResult>;
21
21
  private ensurePackagerAsync;
22
- private readFileAsUint8Array;
23
22
  private createPackOptions;
24
23
  }
@@ -1,13 +1,3 @@
1
- import "@uipath/packager-tool-apiworkflow";
2
- import "@uipath/packager-tool-bpmn";
3
- import "@uipath/packager-tool-case";
4
- import "@uipath/packager-tool-connector";
5
- import "@uipath/packager-tool-flow";
6
- import "@uipath/packager-tool-functions";
7
- import "@uipath/packager-tool-webapp";
8
- import "@uipath/packager-tool-workflowcompiler";
9
- import "@uipath/resource-builder-tool";
10
- import "@uipath/tool-agent";
11
1
  import type { PackCommandOptions } from "../models/pack-command-types";
12
2
  export type { PackCommandOptions };
13
3
  /**
@@ -0,0 +1,25 @@
1
+ import type { IFileSystem } from "@uipath/filesystem";
2
+ import { type ISolutionPackager, type SolutionPackOptions } from "@uipath/solution-packager/node";
3
+ import { LogLevel } from "@uipath/solutionpackager-tool-core";
4
+ /**
5
+ * Shared building blocks for the solution packager command services
6
+ * (`pack`, `restore`). Both run the same SDK packager with the same auth
7
+ * connection and log-level mapping; keeping that logic here avoids duplicating
8
+ * it across the per-command services.
9
+ */
10
+ /** Create a node solution packager wired to the CLI logger and telemetry. */
11
+ export declare function createSolutionPackager(): Promise<ISolutionPackager>;
12
+ /**
13
+ * Read a solution file as a `Uint8Array`. `IFileSystem.readFile` may hand back
14
+ * a `Buffer`/array depending on the backend, so coerce it before passing the
15
+ * bytes to the packager.
16
+ */
17
+ export declare function readSolutionFileAsUint8Array(fs: IFileSystem, filePath: string): Promise<Uint8Array>;
18
+ /** Map the CLI logger level to the packager SDK log level (defaults to Error). */
19
+ export declare function resolveSdkLogLevel(): LogLevel;
20
+ /**
21
+ * Attach the authenticated cloud connection to the packager options when a
22
+ * session is available. No-op when the user is not logged in (the packager
23
+ * then runs against public feeds only).
24
+ */
25
+ export declare function applyAuthConnection(options: SolutionPackOptions, loginValidity?: number): Promise<void>;
@@ -66,6 +66,14 @@ export interface RcsMatch {
66
66
  path?: string;
67
67
  };
68
68
  }
69
+ /**
70
+ * Find a resource in RCS by key (UUID). RCS's `SearchFolderEntities` endpoint
71
+ * has no key-based filter — only `name`/`entityTypes`/`entitySubTypes`. We
72
+ * paginate all resources of this kind and filter locally by key, exiting
73
+ * early on the match. Used for connections, whose binding carries the UUID
74
+ * directly via `bindingKey`.
75
+ */
76
+ export declare function findResourceByKeyInRcs(builder: ISolutionBuilder, kind: string, expectedKey: string, folderPath?: string, propagateErrors?: boolean): Promise<RcsMatch | undefined>;
69
77
  /**
70
78
  * Page through RCS for a given (kind, name) and collect every match. Returns
71
79
  * an empty array on lookup error (logged as a warning). Callers decide what
@@ -49,7 +49,7 @@ You must manage membership via the CLI, never by editing the manifest. All these
49
49
  | Unregister a project (does not delete the project files on disk) | `uip solution project remove <project-path> [<solution-file>]` |
50
50
  | List projects in the solution | `uip solution project list` |
51
51
 
52
- The `uip ... init` scaffolders (`agent init`, `maestro flow init`, `maestro bpmn init`, `maestro case init`) **auto-register** the new project when run inside a solution directory — they walk up for the enclosing `.uipx` and add it to `Projects[]` automatically, so a separate `project add` is not needed. Pass `--skip-solution-registration` to scaffold standalone without registering; the output's `Data.SolutionRegistration.Status` is then `OptedOut`. The full set of `Status` values is: `Registered` / `AlreadyRegistered` (added in this run / already present), `NotInSolution` (no enclosing `.uipx` found), `OptedOut` (`--skip-solution-registration` passed), `Skipped` (a candidate solution was found but registration was not safe to attempt — e.g. multiple `.uipx` in one directory, or the project sits outside the solution dir), and `Failed` (manifest read/parse/write error).
52
+ The `uip ... init` scaffolders (`agent init`, `maestro flow init`, `maestro bpmn init`, `maestro case init`, `api-workflow init`) **auto-register** the new project when run inside a solution directory — they walk up for the enclosing `.uipx` and add it to `Projects[]` automatically, so a separate `project add` is not needed. Pass `--skip-solution-registration` to scaffold standalone without registering; the output's `Data.SolutionRegistration.Status` is then `OptedOut`. The full set of `Status` values is: `Registered` / `AlreadyRegistered` (added in this run / already present), `NotInSolution` (no enclosing `.uipx` found), `OptedOut` (`--skip-solution-registration` passed), `Skipped` (a candidate solution was found but registration was not safe to attempt — e.g. multiple `.uipx` in one directory, or the project sits outside the solution dir), and `Failed` (manifest read/parse/write error).
53
53
 
54
54
  ## Project Types
55
55
 
@@ -66,7 +66,7 @@ A solution can contain multiple projects of different types. The table below lis
66
66
  | `Agent` | LLM agent project — **low-code** (configured via `agent.json`; no Python) or **coded** (Python: LangGraph / LlamaIndex / OpenAI Agents). Both subtypes share `ProjectType: "Agent"`; the discriminator is `agent.json#type`. | `uip agent init <path>` (low-code) · `uip codedagent new [name]` (coded — see the `uipath-agents` skill for the full flow) | `uipath-agents` |
67
67
  | `AppV2` | Coded App — web application | `uip codedapp init <path>` | `uipath-coded-apps` |
68
68
  | `Function` | UiPath Function (JS / TS / Python) | `uip functions new [name]` | none |
69
- | `Api` | API Workflow project | no CLI scaffolding | none |
69
+ | `Api` | API Workflow project | `uip api-workflow init <name>` | none |
70
70
  | `Connector` | Integration Service connector | no CLI scaffolding — use `uip is connectors` to list / get / export existing connectors | none |
71
71
  | `WebApp` | Legacy low-code UiPath App (the coded variant is `AppV2`) | no CLI scaffolding | none |
72
72
 
@@ -85,6 +85,13 @@ uip login
85
85
  # Non-interactive (CI / CD) with client credentials:
86
86
  uip login --client-id <ID> --client-secret <SECRET> --tenant <TENANT>
87
87
 
88
+ # 1a. (Optional) Restore project dependencies before packing. Resolves NuGet
89
+ # deps (including authenticated Orchestrator feeds) so pack can compile.
90
+ # Useful in CI: login -> restore -> pack. Takes <solutionPath> only; it
91
+ # does not produce a package. Pack also restores internally, so this is an
92
+ # optimization, not a requirement.
93
+ uip solution restore .
94
+
88
95
  # 2. Pack the solution into a .zip. Two positional args:
89
96
  # <solutionPath> — solution dir (containing .uipx) or a .uis file
90
97
  # <output-path> — directory where the .zip is written (required unless --dry-run)
@@ -128,6 +135,10 @@ uip solution deploy uninstall <deployment-name> --yes # remove the deployment
128
135
 
129
136
  `uninstall` and `activate` take the deployment name as a **positional** argument (no `--name` flag). `status` takes the **pipeline deployment ID** (the GUID returned by `deploy run`), also positional.
130
137
 
138
+ ## Package Signing
139
+
140
+ `solution pack` can sign each packed project `.nupkg` with a code-signing certificate. Signing is opt-in: add `--signing-certificate-path <cert.pfx>` to the pack command. The certificate password (`--signing-certificate-password`) is optional — passing it as `env.VAR` (e.g. `env.SIGNING_PASSWORD`) is recommended, though an inline value also works. An optional timestamp server is set with `--signing-timestamp-server <url>`.
141
+
131
142
  ## Studio Web (Browser Editing)
132
143
 
133
144
  Studio Web is a separate target from the Orchestrator deploy chain — it hosts a browser-based collaborative editor for solutions. The `solution upload` command pushes the local solution there and returns a `DesignerUrl` to open the solution in a browser; this is independent of `pack` / `publish` / `deploy` and does *not* produce a runtime-deployable artifact.
@@ -198,6 +209,8 @@ The CLI talks about the same resource types Orchestrator does:
198
209
  - **Connections** — Integration Service connections to external systems (Salesforce, ServiceNow, …).
199
210
  - **Processes / Releases** — published packages bound to a folder.
200
211
  - **Triggers** & **Webhooks** — event-, time-, or queue-based job firing; outbound HTTP notifications.
212
+ - **Entities** — Data Service tables. Add or bind with kind `Entity`.
213
+ - **ChoiceSets** — enumerations used by entity fields. Add with kind `ChoiceSet`.
201
214
 
202
215
  Resources outside a solution are managed under the orchestrator tool, which exposes per-type subgroups (`uip or assets …`, `uip or queues …`, `uip or buckets …`, `uip or bucket-files …`, `uip or libraries …`, `uip or queue-items …`, `uip or triggers …`, `uip or webhooks …`). Run `uip or --help` for the live list. Example:
203
216