@uipath/flow-tool 1.0.1 → 1.1.0
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.
- package/README.md +43 -46
- package/dist/index.js +1 -1
- package/dist/packager-tool.js +69474 -50247
- package/dist/services/connector-binding-validator.d.ts +95 -0
- package/dist/services/flow-validate-service.d.ts +149 -0
- package/dist/services/node-service.d.ts +94 -0
- package/dist/services/node-validators/expression-prefix-validator.d.ts +45 -0
- package/dist/services/node-validators/index.d.ts +3 -0
- package/dist/services/node-validators/ixp-node-validator.d.ts +2 -0
- package/dist/services/node-validators/model-source-validator.d.ts +25 -0
- package/dist/services/node-validators/types.d.ts +1 -1
- package/dist/services/packaging-utils.d.ts +107 -0
- package/dist/tool.js +254129 -217036
- package/dist/utils/flow-io.d.ts +11 -0
- package/dist/utils/handle-expansion.d.ts +50 -0
- package/dist/validation.d.ts +1 -1
- package/dist/validation.js +99154 -100096
- package/package.json +19 -27
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@ CLI tool for managing UiPath Flow processes and jobs. This is a uip plugin that
|
|
|
9
9
|
Create a new Flow project with boilerplate files.
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
uip flow init <projectName> [--force]
|
|
12
|
+
uip maestro flow init <projectName> [--force]
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
### `flow validate`
|
|
@@ -17,7 +17,7 @@ uip flow init <projectName> [--force]
|
|
|
17
17
|
Validate a `.flow` file against the Flow schema (Zod-based) with structural cross-field checks.
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
|
-
uip flow validate <flowFile>
|
|
20
|
+
uip maestro flow validate <flowFile>
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
### `flow pack`
|
|
@@ -25,7 +25,7 @@ uip flow validate <flowFile>
|
|
|
25
25
|
Pack a Flow project into a NuGet package (`.nupkg`).
|
|
26
26
|
|
|
27
27
|
```bash
|
|
28
|
-
uip flow pack <
|
|
28
|
+
uip maestro flow pack <project-path> <output-path> [-n <name>] [-v <version>]
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
### Known Issues
|
|
@@ -36,16 +36,18 @@ uip flow pack <projectPath> <outputPath> [-n <name>] [-v <version>]
|
|
|
36
36
|
>
|
|
37
37
|
> **Root cause:** The published `@uipath/tool-flow` npm package has a non-recursive `copyFiles()` method that only copies top-level files from the project directory, silently skipping the `content/` and `flow_files/` subdirectories. The local `flow-pack-service.ts` correctly uses `copyDirectory()` for recursive copies, but the npm-published tool does not.
|
|
38
38
|
>
|
|
39
|
-
> **Workaround:** Use `uip flow pack` directly to produce a correct `.nupkg` for deployment.
|
|
39
|
+
> **Workaround:** Use `uip maestro flow pack` directly to produce a correct `.nupkg` for deployment.
|
|
40
40
|
|
|
41
41
|
### Flow Process Commands
|
|
42
42
|
|
|
43
43
|
#### `flow process list`
|
|
44
44
|
|
|
45
|
-
List available Flow processes.
|
|
45
|
+
List available Flow processes in a folder. Provide either `--folder-key`
|
|
46
|
+
(GUID) or `--folder-path` (e.g. `Shared/Invoices`).
|
|
46
47
|
|
|
47
48
|
```bash
|
|
48
|
-
uip flow process list
|
|
49
|
+
uip maestro flow process list --folder-key "<folder-key>"
|
|
50
|
+
uip maestro flow process list --folder-path "Shared/Invoices"
|
|
49
51
|
```
|
|
50
52
|
|
|
51
53
|
#### `flow process get`
|
|
@@ -53,10 +55,10 @@ uip flow process list
|
|
|
53
55
|
Get Flow process schema and details.
|
|
54
56
|
|
|
55
57
|
```bash
|
|
56
|
-
uip flow process get "<process-key>" "<feed-id>"
|
|
58
|
+
uip maestro flow process get "<process-key>" "<feed-id>" --folder-key "<folder-key>"
|
|
57
59
|
|
|
58
60
|
# Example
|
|
59
|
-
uip flow process get "MyFlow.flow.Flow:1.0.0" "6d98ceb8-becb-46ec-80d7-df213fbec06c"
|
|
61
|
+
uip maestro flow process get "MyFlow.flow.Flow:1.0.0" "6d98ceb8-becb-46ec-80d7-df213fbec06c" --folder-key "c3d4e5f6-0000-0000-0000-000000000001"
|
|
60
62
|
```
|
|
61
63
|
|
|
62
64
|
#### `flow process run`
|
|
@@ -66,7 +68,7 @@ Run a Flow process.
|
|
|
66
68
|
**Syntax:**
|
|
67
69
|
|
|
68
70
|
```bash
|
|
69
|
-
uip flow process run "<process-key>" "<folder-key>" [options]
|
|
71
|
+
uip maestro flow process run "<process-key>" "<folder-key>" [options]
|
|
70
72
|
```
|
|
71
73
|
|
|
72
74
|
**Arguments:**
|
|
@@ -79,7 +81,6 @@ uip flow process run "<process-key>" "<folder-key>" [options]
|
|
|
79
81
|
- `-i, --inputs <json>` - Input parameters as JSON string or @file.json
|
|
80
82
|
- `-t, --tenant <name>` - Tenant name (defaults to authenticated tenant)
|
|
81
83
|
- `--release-key <key>` - Release key (GUID, from list command)
|
|
82
|
-
- `--folder-id <id>` - Folder ID (from list command)
|
|
83
84
|
- `--feed-id <id>` - Feed ID for package lookup (optional)
|
|
84
85
|
- `--robot-ids <ids>` - Comma-separated robot IDs (optional)
|
|
85
86
|
- `--validate` - Validate inputs against project schema before running
|
|
@@ -88,22 +89,19 @@ uip flow process run "<process-key>" "<folder-key>" [options]
|
|
|
88
89
|
|
|
89
90
|
```bash
|
|
90
91
|
# Run with JSON inputs
|
|
91
|
-
uip flow process run "TestFlow.flow.Flow:1.0.0" "folder-guid-here" \
|
|
92
|
+
uip maestro flow process run "TestFlow.flow.Flow:1.0.0" "folder-guid-here" \
|
|
92
93
|
--release-key "release-guid" \
|
|
93
|
-
--folder-id "2553016" \
|
|
94
94
|
--inputs '{"name": "John", "age": 30}'
|
|
95
95
|
|
|
96
96
|
# Run with inputs from file
|
|
97
|
-
uip flow process run "TestFlow.flow.Flow:1.0.0" "folder-guid-here" \
|
|
97
|
+
uip maestro flow process run "TestFlow.flow.Flow:1.0.0" "folder-guid-here" \
|
|
98
98
|
--release-key "release-guid" \
|
|
99
|
-
--folder-id "2553016" \
|
|
100
99
|
--inputs @inputs.json
|
|
101
100
|
|
|
102
101
|
# Run with piped inputs
|
|
103
102
|
echo '{"name": "John", "age": 30}' | \
|
|
104
|
-
uip flow process run "TestFlow.flow.Flow:1.0.0" "folder-guid-here" \
|
|
105
|
-
--release-key "release-guid"
|
|
106
|
-
--folder-id "2553016"
|
|
103
|
+
uip maestro flow process run "TestFlow.flow.Flow:1.0.0" "folder-guid-here" \
|
|
104
|
+
--release-key "release-guid"
|
|
107
105
|
```
|
|
108
106
|
|
|
109
107
|
### Flow Job Commands
|
|
@@ -113,14 +111,14 @@ echo '{"name": "John", "age": 30}' | \
|
|
|
113
111
|
Stream execution traces for a running job.
|
|
114
112
|
|
|
115
113
|
```bash
|
|
116
|
-
uip flow job traces "<job-key>" [options]
|
|
114
|
+
uip maestro flow job traces "<job-key>" [options]
|
|
117
115
|
|
|
118
116
|
# Options:
|
|
119
117
|
# --poll-interval <ms> - Polling interval in milliseconds (default: 2000)
|
|
120
118
|
# --traces-service <name> - Traces service name (default: llmopstenant_)
|
|
121
119
|
|
|
122
120
|
# Example
|
|
123
|
-
uip flow job traces "06478292-f9cf-4234-9d1b-03f4bcd95fed"
|
|
121
|
+
uip maestro flow job traces "06478292-f9cf-4234-9d1b-03f4bcd95fed"
|
|
124
122
|
```
|
|
125
123
|
|
|
126
124
|
#### `flow job status`
|
|
@@ -128,35 +126,34 @@ uip flow job traces "06478292-f9cf-4234-9d1b-03f4bcd95fed"
|
|
|
128
126
|
Get detailed status of a Flow job.
|
|
129
127
|
|
|
130
128
|
```bash
|
|
131
|
-
uip flow job status "<job-key>" --folder-
|
|
129
|
+
uip maestro flow job status "<job-key>" --folder-key "<key>" [options]
|
|
132
130
|
|
|
133
131
|
# Options:
|
|
134
132
|
# --detailed - Show full response with all fields
|
|
135
133
|
|
|
136
134
|
# Example
|
|
137
|
-
uip flow job status "06478292-f9cf-4234-9d1b-03f4bcd95fed" --folder-
|
|
135
|
+
uip maestro flow job status "06478292-f9cf-4234-9d1b-03f4bcd95fed" --folder-key "c3d4e5f6-0000-0000-0000-000000000001"
|
|
138
136
|
```
|
|
139
137
|
|
|
140
138
|
## Complete Workflow
|
|
141
139
|
|
|
142
140
|
```bash
|
|
143
141
|
# 1. List available processes
|
|
144
|
-
uip flow process list
|
|
142
|
+
uip maestro flow process list --folder-key "folder-key"
|
|
145
143
|
|
|
146
144
|
# 2. Get process schema (to see required inputs)
|
|
147
|
-
uip flow process get "MyFlow.flow.Flow:1.0.0" "feed-id-from-list"
|
|
145
|
+
uip maestro flow process get "MyFlow.flow.Flow:1.0.0" "feed-id-from-list" --folder-key "folder-key"
|
|
148
146
|
|
|
149
147
|
# 3. Run the process
|
|
150
|
-
JOB_KEY=$(uip flow process run "MyFlow.flow.Flow:1.0.0" "folder-key" \
|
|
148
|
+
JOB_KEY=$(uip maestro flow process run "MyFlow.flow.Flow:1.0.0" "folder-key" \
|
|
151
149
|
--release-key "release-key" \
|
|
152
|
-
--
|
|
153
|
-
--inputs '{}' 2>/dev/null)
|
|
150
|
+
--inputs '{}')
|
|
154
151
|
|
|
155
152
|
# 4. Watch execution traces
|
|
156
|
-
uip flow job traces "$JOB_KEY"
|
|
153
|
+
uip maestro flow job traces "$JOB_KEY"
|
|
157
154
|
|
|
158
155
|
# 5. Check final status
|
|
159
|
-
uip flow job status "$JOB_KEY" --folder-
|
|
156
|
+
uip maestro flow job status "$JOB_KEY" --folder-key "folder-key"
|
|
160
157
|
```
|
|
161
158
|
|
|
162
159
|
## Output
|
|
@@ -181,7 +178,7 @@ uip flow job status "$JOB_KEY" --folder-id "2553016"
|
|
|
181
178
|
| `flow registry pull` | Fetch and cache all available nodes from the Flow registry |
|
|
182
179
|
| `flow registry list` | List all locally cached nodes |
|
|
183
180
|
| `flow registry search [keyword]` | Find nodes by keyword and/or structured filters |
|
|
184
|
-
| `flow registry get <
|
|
181
|
+
| `flow registry get <node-type>` | Get full node schema; auto-enriches connector nodes with input/output fields |
|
|
185
182
|
|
|
186
183
|
---
|
|
187
184
|
|
|
@@ -190,8 +187,8 @@ uip flow job status "$JOB_KEY" --folder-id "2553016"
|
|
|
190
187
|
Fetches the node registry and writes it to local cache. Subsequent commands (`list`, `search`, `get`) read from this cache.
|
|
191
188
|
|
|
192
189
|
```bash
|
|
193
|
-
uip flow registry pull
|
|
194
|
-
uip flow registry pull --force # bypass 30-minute cache, always refresh
|
|
190
|
+
uip maestro flow registry pull
|
|
191
|
+
uip maestro flow registry pull --force # bypass 30-minute cache, always refresh
|
|
195
192
|
```
|
|
196
193
|
|
|
197
194
|
**Output fields:**
|
|
@@ -218,7 +215,7 @@ uip flow registry pull --force # bypass 30-minute cache, always refresh
|
|
|
218
215
|
Lists all nodes in the local cache. If no cache exists, fetches live data first.
|
|
219
216
|
|
|
220
217
|
```bash
|
|
221
|
-
uip flow registry list
|
|
218
|
+
uip maestro flow registry list
|
|
222
219
|
```
|
|
223
220
|
|
|
224
221
|
**Output fields:** `NodesCount`, `Nodes[]`
|
|
@@ -230,9 +227,9 @@ uip flow registry list
|
|
|
230
227
|
Searches for nodes by keyword and/or structured filters.
|
|
231
228
|
|
|
232
229
|
```bash
|
|
233
|
-
uip flow registry search slack
|
|
234
|
-
uip flow registry search slack --filter "displayname:contains=send message"
|
|
235
|
-
uip flow registry search --filter "category=connector"
|
|
230
|
+
uip maestro flow registry search slack
|
|
231
|
+
uip maestro flow registry search slack --filter "displayname:contains=send message"
|
|
232
|
+
uip maestro flow registry search --filter "category=connector"
|
|
236
233
|
```
|
|
237
234
|
|
|
238
235
|
**Options:**
|
|
@@ -284,8 +281,8 @@ Examples:
|
|
|
284
281
|
Returns full details for a single node, looked up by `nodeType` (case-insensitive).
|
|
285
282
|
|
|
286
283
|
```bash
|
|
287
|
-
uip flow registry get "uipath.agent"
|
|
288
|
-
uip flow registry get "uipath.connector.slack.send-message"
|
|
284
|
+
uip maestro flow registry get "uipath.agent"
|
|
285
|
+
uip maestro flow registry get "uipath.connector.slack.send-message"
|
|
289
286
|
```
|
|
290
287
|
|
|
291
288
|
**Output fields:** `Node` (enriched FlowNode object)
|
|
@@ -320,24 +317,24 @@ All commands support `--output-filter <expression>` (global option) to extract s
|
|
|
320
317
|
|
|
321
318
|
```bash
|
|
322
319
|
# List all nodeTypes from a search
|
|
323
|
-
uip flow registry search slack --output-filter "Nodes[*].nodeType"
|
|
320
|
+
uip maestro flow registry search slack --output-filter "Nodes[*].nodeType"
|
|
324
321
|
|
|
325
322
|
# Get the full enriched node
|
|
326
|
-
uip flow registry get "uipath.connector.slack.send-message" \
|
|
323
|
+
uip maestro flow registry get "uipath.connector.slack.send-message" \
|
|
327
324
|
--output-filter "Node"
|
|
328
325
|
|
|
329
326
|
# Extract only the input fields
|
|
330
|
-
uip flow registry get "uipath.connector.slack.send-message" \
|
|
327
|
+
uip maestro flow registry get "uipath.connector.slack.send-message" \
|
|
331
328
|
--output-filter "Node.inputDefinition.fields"
|
|
332
329
|
|
|
333
330
|
# Get the node count after a pull
|
|
334
|
-
uip flow registry pull --output-filter "NodesCount"
|
|
331
|
+
uip maestro flow registry pull --output-filter "NodesCount"
|
|
335
332
|
```
|
|
336
333
|
|
|
337
334
|
Combine with `--output json` to get clean JSON output:
|
|
338
335
|
|
|
339
336
|
```bash
|
|
340
|
-
uip flow registry get "uipath.connector.slack.send-message" \
|
|
337
|
+
uip maestro flow registry get "uipath.connector.slack.send-message" \
|
|
341
338
|
--output-filter "Node.inputDefinition.fields" --output json
|
|
342
339
|
```
|
|
343
340
|
|
|
@@ -347,20 +344,20 @@ uip flow registry get "uipath.connector.slack.send-message" \
|
|
|
347
344
|
|
|
348
345
|
```bash
|
|
349
346
|
# 1. Pull the registry (once per session)
|
|
350
|
-
uip flow registry pull
|
|
347
|
+
uip maestro flow registry pull
|
|
351
348
|
|
|
352
349
|
# 2. Search for candidates
|
|
353
|
-
uip flow registry search slack --filter "displayname:contains=send" \
|
|
350
|
+
uip maestro flow registry search slack --filter "displayname:contains=send" \
|
|
354
351
|
--output-filter "Nodes[*].nodeType"
|
|
355
352
|
# → uipath.connector.slack.send-message
|
|
356
353
|
# uipath.agent.resource.tool.connector.slack.send-message
|
|
357
354
|
# Pick the uipath.connector.* variant for direct flow use.
|
|
358
355
|
|
|
359
356
|
# 3. Inspect the full schema (with IS enrichment if logged in)
|
|
360
|
-
uip flow registry get "uipath.connector.slack.send-message" --output json
|
|
357
|
+
uip maestro flow registry get "uipath.connector.slack.send-message" --output json
|
|
361
358
|
|
|
362
359
|
# 4. Extract just the input fields to build a request body
|
|
363
|
-
uip flow registry get "uipath.connector.slack.send-message" \
|
|
360
|
+
uip maestro flow registry get "uipath.connector.slack.send-message" \
|
|
364
361
|
--output-filter "Node.inputDefinition.fields" --output json
|
|
365
362
|
```
|
|
366
363
|
|
package/dist/index.js
CHANGED