- 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
- 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 maestro authoring commands
Syntax and options for `uip maestro flow`, `case`, and `bpmn` `compile`, `check`, `decompile`, and `merge`, which convert between authored TypeScript and Maestro artifacts.
The authoring commands convert between authored TypeScript source and the artifacts Maestro runs. The same four verbs are registered on each Maestro family:
| Family | Authored source | Artifact |
|---|---|---|
uip maestro flow | <name>.flow.ts | .flow file |
uip maestro case | <name>.case.ts | caseplan.json |
uip maestro bpmn | <name>.bpmn.ts | .bpmn file |
uip maestro bpmn also registers tidy, which adds diagram layout to a compiled .bpmn file.
The connector library these commands read comes from uip maestro registry.
Requirements
@uipath/maestro-builder-sdk6.11.1 or later, installed in the project or globally. The command looks for the package from the current directory first, then in the global npm folder. A project install takes precedence over a global one.- Node.js on
PATH. - For
uip maestro bpmn compile --connectors-local, and foruip maestro bpmn checkwhen a connector library is available,@uipath/maestro-builder-sdk6.15.0 or later.
When the package is missing or older than the required version, the command fails with Result: "ConfigError" and exit code 1. Instructions gives the install command: npm install --save-dev @uipath/maestro-builder-sdk@latest when the outdated copy is installed in the project, otherwise npm install -g @uipath/maestro-builder-sdk@latest.
Synopsis
uip maestro <family> compile <source> [-o, --output <file>] [--library <dir>] [--bindings <file>] [--connectors-local <dir>] [--no-check]
uip maestro <family> check <input> [--source] [--library <dir>] [--connectors-local <dir>] [--graph]
uip maestro <family> decompile <input> [-o, --output <file>] [--import <specifier>] [--strict] [--library <dir>] [--best-effort] [--style <style>] [--no-pipeline]
uip maestro <family> merge <edited> --original <file> [-o, --output <file>] [--baseline <file>]
uip maestro bpmn tidy <input> [-o, --output <file>]
uip maestro <family> compile <source> [-o, --output <file>] [--library <dir>] [--bindings <file>] [--connectors-local <dir>] [--no-check]
uip maestro <family> check <input> [--source] [--library <dir>] [--connectors-local <dir>] [--graph]
uip maestro <family> decompile <input> [-o, --output <file>] [--import <specifier>] [--strict] [--library <dir>] [--best-effort] [--style <style>] [--no-pipeline]
uip maestro <family> merge <edited> --original <file> [-o, --output <file>] [--baseline <file>]
uip maestro bpmn tidy <input> [-o, --output <file>]
<family> is flow, case, or bpmn. Some options apply to specific families only, as listed in each command's options table.
All invocations honor the global options (--output, --output-filter, --log-level, --log-file). Exit codes follow the standard contract.
Output
Each command returns Code: "<Family><Verb>", for example FlowCompile, CaseCheck, or BpmnMerge. Data holds the builder SDK's result with PascalCase keys. The SDK's progress messages go to stderr.
When the SDK reports an error, the command returns Result: "Failure" with the SDK's reason in Message, and exits with the SDK's exit code.
Connector library
compile, the flow and bpmn check, and the case decompile read the connector library:
--library <dir>sets the library directory.- Without
--library, the command uses the library thatuip maestro registry pulldownloaded. - When the
FLOW_SDK_LIBRARY_JSONenvironment variable is set and--libraryis not passed, the builder SDK reads the library from the variable.
--connectors-local <dir> points at the connection-resolved overlay that uip maestro registry prepare writes. Default: ./connectors-local.
compile
Compile an authored TypeScript source file to an artifact.
Arguments
<source>(required) — the authored source file.
Options
| Option | Families | Description |
|---|---|---|
-o, --output <file> | all | Output artifact path. |
--library <dir> | all | Connector library directory. Default: the pulled registry. |
--bindings <file> | all | bindings.json path. |
--connectors-local <dir> | all | Connection-resolved connector overlay. Default: ./connectors-local. |
--no-check | flow | Skip the source-level check. |
Examples
uip maestro flow compile Order.flow.ts --output Order.flow
uip maestro case compile Claims.case.ts --output caseplan.json
uip maestro bpmn compile Approval.bpmn.ts --output Approval.bpmn
uip maestro flow compile Order.flow.ts --output Order.flow
uip maestro case compile Claims.case.ts --output caseplan.json
uip maestro bpmn compile Approval.bpmn.ts --output Approval.bpmn
Data shape (--output json)
{
"Code": "FlowCompile",
"Data": {
"Path": "/work/Order.flow",
"Nodes": 3,
"Edges": 2,
"Sidecars": [],
"Errors": 0,
"Warnings": 0,
"Diagnostics": []
}
}
{
"Code": "FlowCompile",
"Data": {
"Path": "/work/Order.flow",
"Nodes": 3,
"Edges": 2,
"Sidecars": [],
"Errors": 0,
"Warnings": 0,
"Diagnostics": []
}
}
case compile returns { Path, Stages }. bpmn compile returns { Path, Elements }.
check
Check a source file for authoring errors before compiling it. To check a compiled artifact, use uip maestro <family> validate: flow, bpmn, or case.
Arguments
<input>(required) — the authored source file.
Options
| Option | Families | Description |
|---|---|---|
--source | all | Check authored TypeScript. |
--library <dir> | flow, bpmn | Connector library directory. Default: FLOW_SDK_LIBRARY_JSON, then the pulled library. |
--connectors-local <dir> | flow, bpmn | Connection-resolved connector overlay. Default: ./connectors-local. |
--graph | bpmn | Also print the resolved wiring: every element with the sequence flows leaving it. Implied flows are marked ~>. |
Example
uip maestro flow check Order.flow.ts --source
uip maestro flow check Order.flow.ts --source
Data shape (--output json)
{
"Code": "FlowCheck",
"Data": { "Errors": 0, "Warnings": 0, "Diagnostics": [] }
}
{
"Code": "FlowCheck",
"Data": { "Errors": 0, "Warnings": 0, "Diagnostics": [] }
}
All three families return the same { Errors, Warnings, Diagnostics } shape.
decompile
Convert an artifact to authored TypeScript.
Arguments
<input>(required) — the artifact: a.flowfile, acaseplan.jsonfile, or a.bpmnfile.
Options
| Option | Families | Description |
|---|---|---|
-o, --output <file> | all | Output source path (.flow.ts, .case.ts, or .bpmn.ts). |
--import <specifier> | all | SDK import specifier in the generated source. |
--strict | flow | Fail on unsupported constructs. |
--library <dir> | case | Connector library directory. Default: the pulled registry. |
--best-effort | case | Emit a marked repair scaffold for unsupported constructs. |
--style <style> | bpmn | explicit (default) or nested. nested lifts boundary events, gateways, and event subprocesses into nesting constructs where the resulting graph is the same. |
--no-pipeline | flow, case | Do not write the pipeline helper (<name>.pipeline.mjs) next to the source. |
Examples
uip maestro flow decompile Order.flow --output Order.flow.ts
uip maestro case decompile caseplan.json --output Claims.case.ts
uip maestro bpmn decompile Approval/Approval.bpmn --output Approval.bpmn.ts --style nested
uip maestro flow decompile Order.flow --output Order.flow.ts
uip maestro case decompile caseplan.json --output Claims.case.ts
uip maestro bpmn decompile Approval/Approval.bpmn --output Approval.bpmn.ts --style nested
Data shape (--output json)
{
"Code": "FlowDecompile",
"Data": {
"Path": "/work/Order.flow.ts",
"Pipeline": "/work/Order.pipeline.mjs"
}
}
{
"Code": "FlowDecompile",
"Data": {
"Path": "/work/Order.flow.ts",
"Pipeline": "/work/Order.pipeline.mjs"
}
}
case decompile also returns Diagnostics. bpmn decompile returns { Path }.
merge
Merge an edited artifact into its original artifact.
Arguments
<edited>(required) — the edited artifact.
Options
| Option | Families | Description |
|---|---|---|
--original <file> | all | Original artifact to merge into. Required. |
-o, --output <file> | all | Merged output path. |
--baseline <file> | flow, bpmn | The compiled output of the unedited decompiled source. |
Examples
uip maestro flow merge Edited.flow --original Original.flow --output Merged.flow --baseline Baseline.flow
uip maestro case merge edited.caseplan.json --original original.caseplan.json --output merged.caseplan.json
# BPMN: elements you did not edit are kept byte for byte
uip maestro bpmn merge Edited.bpmn --original Original.bpmn --output Merged.bpmn --baseline Baseline.bpmn
uip maestro flow merge Edited.flow --original Original.flow --output Merged.flow --baseline Baseline.flow
uip maestro case merge edited.caseplan.json --original original.caseplan.json --output merged.caseplan.json
# BPMN: elements you did not edit are kept byte for byte
uip maestro bpmn merge Edited.bpmn --original Original.bpmn --output Merged.bpmn --baseline Baseline.bpmn
Data shape (--output json)
{
"Code": "BpmnMerge",
"Data": {
"Path": "/work/Merged.bpmn",
"Preserved": 5,
"Authored": 1,
"Removed": 0
}
}
{
"Code": "BpmnMerge",
"Data": {
"Path": "/work/Merged.bpmn",
"Preserved": 5,
"Authored": 1,
"Removed": 0
}
}
flow merge returns { Path, Nodes, Edges }. case merge returns { Path, Stages }.
uip maestro bpmn tidy
Add diagram layout to a compiled .bpmn file. To generate or replace the layout of any .bpmn file without the builder SDK, use uip maestro bpmn format.
Arguments
<input>(required) — the compiled.bpmnfile.
Options
| Option | Description |
|---|---|
-o, --output <file> | Output .bpmn path. |
Example
uip maestro bpmn tidy Approval.bpmn --output Approval.tidied.bpmn
uip maestro bpmn tidy Approval.bpmn --output Approval.tidied.bpmn
Data shape (--output json)
{
"Code": "BpmnTidy",
"Data": { "Path": "/work/Approval.tidied.bpmn", "Shapes": 4 }
}
{
"Code": "BpmnTidy",
"Data": { "Path": "/work/Approval.tidied.bpmn", "Shapes": 4 }
}
Related
uip maestro registry— download, locate, search, and prepare the connector library.uip maestro flow init—--sdk-sourcewrites the authored source for a new Flow project.uip maestro flow,uip maestro case,uip maestro bpmn
- Requirements
- Synopsis
- Output
- Connector library
- compile
- Arguments
- Options
- Examples
- Data shape (--output json)
- check
- Arguments
- Options
- Example
- Data shape (--output json)
- decompile
- Arguments
- Options
- Examples
- Data shape (--output json)
- merge
- Arguments
- Options
- Examples
- Data shape (--output json)
- uip maestro bpmn tidy
- Arguments
- Options
- Example
- Data shape (--output json)
- Related