@uipath/skills 1.201.0-preview.621 → 1.202.0-preview.635
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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/.cursor-plugin/plugin.json +1 -1
- package/CODEOWNERS +41 -29
- package/README.md +1 -0
- package/assets/skill-status.json +13 -2
- package/assets/uip-catalog-snapshot.json +95 -46
- package/package.json +2 -1
- package/skills/uipath-admin/SKILL.md +107 -197
- package/skills/uipath-admin/references/audit-commands.md +69 -120
- package/skills/uipath-admin/references/audit-workflow-guide.md +101 -152
- package/skills/uipath-admin/references/authorization/authorization-commands.md +121 -210
- package/skills/uipath-admin/references/authorization/check-access.md +39 -63
- package/skills/uipath-admin/references/authorization/grant-permissions.md +38 -49
- package/skills/uipath-admin/references/authorization/permission-catalog.md +32 -34
- package/skills/uipath-admin/references/authorization/role-assignment-management.md +96 -99
- package/skills/uipath-admin/references/authorization/role-management.md +113 -142
- package/skills/uipath-admin/references/diagnose/CAPABILITY.md +13 -14
- package/skills/uipath-admin/references/diagnose/{references/failure-modes.md → failure-modes.md} +90 -46
- package/skills/uipath-admin/references/diagnose/{references/troubleshooting-guide.md → troubleshooting-guide.md} +21 -14
- package/skills/uipath-admin/references/external-app-management.md +42 -39
- package/skills/uipath-admin/references/identity-commands.md +72 -625
- package/skills/uipath-admin/references/identity-troubleshoot-guide.md +73 -95
- package/skills/uipath-admin/references/ip-restriction/bypass-rule-management.md +25 -54
- package/skills/uipath-admin/references/ip-restriction/enforcement-management.md +19 -31
- package/skills/uipath-admin/references/ip-restriction/ip-range-management.md +48 -45
- package/skills/uipath-admin/references/ip-restriction/ip-restriction-commands.md +89 -146
- package/skills/uipath-admin/references/key-concepts.md +24 -0
- package/skills/uipath-admin/references/organization-management.md +49 -70
- package/skills/uipath-admin/references/organizations-commands.md +39 -74
- package/skills/uipath-admin/references/pat-management.md +25 -38
- package/skills/uipath-admin/references/robot-account-management.md +16 -14
- package/skills/uipath-admin/references/smtp-management.md +19 -14
- package/skills/uipath-admin/references/tenant-management.md +1 -1
- package/skills/uipath-admin/references/tenants-commands.md +82 -148
- package/skills/uipath-admin/references/user-management.md +70 -56
- package/skills/uipath-agents/SKILL.md +4 -3
- package/skills/uipath-agents/references/authentication.md +4 -3
- package/skills/uipath-agents/references/coded/capabilities/datafabric.md +465 -0
- package/skills/uipath-agents/references/coded/capabilities/guardrails/guardrails-recommend.md +5 -0
- package/skills/uipath-agents/references/coded/capabilities/guardrails/guardrails.md +2 -0
- package/skills/uipath-agents/references/coded/capabilities/human-in-the-loop.md +12 -6
- package/skills/uipath-agents/references/coded/flow-integration.md +2 -2
- package/skills/uipath-agents/references/coded/frameworks/langgraph-integration.md +48 -16
- package/skills/uipath-agents/references/coded/frameworks/openai-agents-integration.md +1 -1
- package/skills/uipath-agents/references/coded/lifecycle/deployment.md +11 -1
- package/skills/uipath-agents/references/coded/quickstart.md +11 -8
- package/skills/uipath-agents/references/lowcode/capabilities/inline-in-flow/inline-in-flow.md +3 -3
- package/skills/uipath-agents/references/lowcode/capabilities/memory/memory.md +19 -2
- package/skills/uipath-agents/references/lowcode/evaluations/evaluate.md +2 -2
- package/skills/uipath-agents/references/lowcode/evaluations/orchestrator-eval-run.md +409 -155
- package/skills/uipath-agents/references/lowcode/evaluations/running-evaluations.md +2 -2
- package/skills/uipath-agents/references/lowcode/prompting/autonomous-agent-prompting-guide.md +1 -1
- package/skills/uipath-aops/SKILL.md +313 -0
- package/skills/uipath-aops/assets/templates/pipeline-dto-template.json +15 -0
- package/skills/uipath-aops/references/discovery-flow.md +312 -0
- package/skills/uipath-aops/references/migration-guide.md +146 -0
- package/skills/uipath-aops/references/pipeline-dto-guide.md +276 -0
- package/skills/uipath-aops/references/save-and-run-guide.md +156 -0
- package/skills/uipath-api-workflow/SKILL.md +48 -6
- package/skills/uipath-api-workflow/assets/templates/file-base64-roundtrip-example.json +154 -0
- package/skills/uipath-api-workflow/assets/templates/nested-control-flow-example.json +0 -1
- package/skills/uipath-api-workflow/references/cli-reference.md +20 -1
- package/skills/uipath-api-workflow/references/expressions-and-context.md +19 -0
- package/skills/uipath-api-workflow/references/files-and-base64.md +153 -0
- package/skills/uipath-api-workflow/references/operating-published-workflows.md +3 -2
- package/skills/uipath-api-workflow/references/task-types.md +89 -3
- package/skills/uipath-api-workflow/references/testing-and-evals.md +224 -0
- package/skills/uipath-api-workflow/references/troubleshooting.md +124 -4
- package/skills/uipath-coded-apps/SKILL.md +4 -2
- package/skills/uipath-coded-apps/assets/scripts/dashboards/build-dashboard.mjs +1 -1
- package/skills/uipath-coded-apps/references/dashboards/CAPABILITY.md +11 -1
- package/skills/uipath-coded-apps/references/dashboards/plugins/build/impl.md +5 -3
- package/skills/uipath-coded-apps/references/dashboards/plugins/deploy/impl.md +1 -0
- package/skills/uipath-coded-apps/references/oauth-client-setup.md +2 -0
- package/skills/uipath-coded-apps/references/pack-publish-deploy.md +18 -0
- package/skills/uipath-coded-apps/references/sdk/orchestrator.md +4 -0
- package/skills/uipath-connector-builder/SKILL.md +7 -5
- package/skills/uipath-connector-builder/references/debugging.md +5 -1
- package/skills/uipath-connector-builder/references/element-json.md +3 -1
- package/skills/uipath-connector-builder/references/standard-resources.md +37 -6
- package/skills/uipath-functions/SKILL.md +134 -222
- package/skills/uipath-functions/references/js/authoring-guide.md +141 -0
- package/skills/uipath-functions/references/js/bindings-guide.md +120 -0
- package/skills/uipath-functions/references/js/calling-uipath-apis-guide.md +112 -0
- package/skills/uipath-functions/references/js/coded-app-wiring-guide.md +103 -0
- package/skills/uipath-functions/references/js/deployment-guide.md +109 -0
- package/skills/uipath-functions/references/js/http-semantics-guide.md +80 -0
- package/skills/uipath-functions/references/js/job-mode-guide.md +114 -0
- package/skills/uipath-functions/references/js/local-dev-guide.md +107 -0
- package/skills/uipath-functions/references/python/workflow-guide.md +224 -0
- package/skills/uipath-governance/SKILL.md +9 -8
- package/skills/uipath-governance/references/compliance-pack/catalog/impl.md +36 -8
- package/skills/uipath-governance/references/compliance-pack/coverage/impl.md +14 -12
- package/skills/uipath-governance/references/compliance-pack/disable/impl.md +5 -3
- package/skills/uipath-governance/references/compliance-pack/full-apply/impl.md +7 -5
- package/skills/uipath-governance/references/compliance-pack/partial-apply/impl.md +14 -7
- package/skills/uipath-governance/references/compliance-pack/partial-apply/planning.md +3 -1
- package/skills/uipath-governance/references/compliance-pack/preview-gate.md +1 -1
- package/skills/uipath-governance/references/compliance-pack/query/impl.md +4 -2
- package/skills/uipath-governance/references/diagnose/CAPABILITY.md +12 -12
- package/skills/uipath-governance/references/diagnose/{references/failure-modes.md → failure-modes.md} +5 -5
- package/skills/uipath-governance/references/diagnose/{references/troubleshooting-guide.md → troubleshooting-guide.md} +2 -2
- package/skills/uipath-governance/references/disambiguation-guide.md +15 -7
- package/skills/uipath-human-in-the-loop/SKILL.md +107 -9
- package/skills/uipath-human-in-the-loop/references/hitl-casetask-action.md +413 -0
- package/skills/uipath-insights/SKILL.md +21 -14
- package/skills/uipath-insights/references/alerts-reads-guide.md +242 -0
- package/skills/uipath-insights/references/filter-discovery-guide.md +1 -1
- package/skills/uipath-insights/references/jobs-commands-guide.md +2 -2
- package/skills/uipath-ixp/references/cli-reference.md +1 -1
- package/skills/uipath-ixp/references/improve-prompts-guide.md +5 -6
- package/skills/uipath-maestro-bpmn/SKILL.md +87 -15
- package/skills/uipath-maestro-bpmn/references/diagnose/CAPABILITY.md +10 -10
- package/skills/uipath-maestro-bpmn/references/diagnose/{references/troubleshooting-guide.md → troubleshooting-guide.md} +1 -1
- package/skills/uipath-maestro-bpmn/references/expression-authoring.md +12 -2
- package/skills/uipath-maestro-bpmn/references/operate/CAPABILITY.md +12 -12
- package/skills/uipath-maestro-bpmn/references/operate/{references/run.md → run.md} +2 -2
- package/skills/uipath-maestro-bpmn/references/operate/{references/ship.md → ship.md} +3 -3
- package/skills/uipath-maestro-bpmn/references/patterns/ai-decision-review-guide.md +138 -0
- package/skills/uipath-maestro-bpmn/references/patterns/approval-chain-guide.md +136 -0
- package/skills/uipath-maestro-bpmn/references/patterns/composing-guide.md +113 -0
- package/skills/uipath-maestro-bpmn/references/patterns/external-wait-guide.md +145 -0
- package/skills/uipath-maestro-bpmn/references/patterns/failure-escalation-guide.md +103 -0
- package/skills/uipath-maestro-bpmn/references/patterns/high-volume-batch-guide.md +107 -0
- package/skills/uipath-maestro-bpmn/references/patterns/queue-distribution-guide.md +129 -0
- package/skills/uipath-maestro-bpmn/references/patterns/smart-triage-guide.md +129 -0
- package/skills/uipath-maestro-bpmn/references/registry-workflow.md +15 -0
- package/skills/uipath-maestro-bpmn/references/shared/local-metadata-regeneration-guide.md +67 -36
- package/skills/uipath-maestro-bpmn/references/shared/project-layout.md +6 -5
- package/skills/uipath-maestro-bpmn/references/structural-bpmn.md +23 -5
- package/skills/uipath-maestro-bpmn/validator/bpmn-spec.json +101 -53
- package/skills/uipath-maestro-case/SKILL.md +23 -24
- package/skills/uipath-maestro-case/references/bindings-and-expressions.md +30 -17
- package/skills/uipath-maestro-case/references/bindings-v2-sync.md +5 -5
- package/skills/uipath-maestro-case/references/brownfield.md +3 -3
- package/skills/uipath-maestro-case/references/case-commands.md +8 -4
- package/skills/uipath-maestro-case/references/case-editing-operations.md +19 -19
- package/skills/uipath-maestro-case/references/case-schema.md +17 -3
- package/skills/uipath-maestro-case/references/connector-integration.md +25 -16
- package/skills/uipath-maestro-case/references/connector-trigger-impl.md +15 -15
- package/skills/uipath-maestro-case/references/connector-trigger-planning.md +32 -29
- package/skills/uipath-maestro-case/references/entry-points-sync.md +2 -1
- package/skills/uipath-maestro-case/references/evals/evals.json +11 -11
- package/skills/uipath-maestro-case/references/implementation.md +74 -44
- package/skills/uipath-maestro-case/references/phased-execution.md +23 -21
- package/skills/uipath-maestro-case/references/placeholder-tasks.md +28 -23
- package/skills/uipath-maestro-case/references/planning.md +37 -252
- package/skills/uipath-maestro-case/references/plugins/case/impl-json.md +3 -3
- package/skills/uipath-maestro-case/references/plugins/case/planning.md +8 -6
- package/skills/uipath-maestro-case/references/plugins/conditions/case-exit-conditions/impl-json.md +3 -3
- package/skills/uipath-maestro-case/references/plugins/conditions/case-exit-conditions/planning.md +11 -10
- package/skills/uipath-maestro-case/references/plugins/conditions/stage-entry-conditions/impl-json.md +6 -6
- package/skills/uipath-maestro-case/references/plugins/conditions/stage-entry-conditions/planning.md +12 -12
- package/skills/uipath-maestro-case/references/plugins/conditions/stage-exit-conditions/impl-json.md +4 -4
- package/skills/uipath-maestro-case/references/plugins/conditions/stage-exit-conditions/planning.md +10 -9
- package/skills/uipath-maestro-case/references/plugins/conditions/task-entry-conditions/impl-json.md +5 -5
- package/skills/uipath-maestro-case/references/plugins/conditions/task-entry-conditions/planning.md +16 -14
- package/skills/uipath-maestro-case/references/plugins/logging/impl-json.md +3 -3
- package/skills/uipath-maestro-case/references/plugins/sla/impl-json.md +15 -15
- package/skills/uipath-maestro-case/references/plugins/sla/planning.md +20 -21
- package/skills/uipath-maestro-case/references/plugins/stages/impl-json.md +6 -6
- package/skills/uipath-maestro-case/references/plugins/stages/planning.md +9 -9
- package/skills/uipath-maestro-case/references/plugins/tasks/action/impl-json.md +9 -9
- package/skills/uipath-maestro-case/references/plugins/tasks/action/planning.md +38 -38
- package/skills/uipath-maestro-case/references/plugins/tasks/agent/impl-json.md +3 -3
- package/skills/uipath-maestro-case/references/plugins/tasks/agent/planning.md +24 -20
- package/skills/uipath-maestro-case/references/plugins/tasks/api-workflow/impl-json.md +3 -3
- package/skills/uipath-maestro-case/references/plugins/tasks/api-workflow/planning.md +24 -20
- package/skills/uipath-maestro-case/references/plugins/tasks/case-management/impl-json.md +4 -4
- package/skills/uipath-maestro-case/references/plugins/tasks/case-management/planning.md +25 -21
- package/skills/uipath-maestro-case/references/plugins/tasks/connector-activity/impl-json.md +30 -22
- package/skills/uipath-maestro-case/references/plugins/tasks/connector-activity/planning.md +44 -28
- package/skills/uipath-maestro-case/references/plugins/tasks/connector-trigger/impl-json.md +10 -10
- package/skills/uipath-maestro-case/references/plugins/tasks/connector-trigger/planning.md +27 -23
- package/skills/uipath-maestro-case/references/plugins/tasks/create-inline-common.md +3 -3
- package/skills/uipath-maestro-case/references/plugins/tasks/process/impl-json.md +3 -3
- package/skills/uipath-maestro-case/references/plugins/tasks/process/planning.md +25 -22
- package/skills/uipath-maestro-case/references/plugins/tasks/rpa/impl-json.md +3 -3
- package/skills/uipath-maestro-case/references/plugins/tasks/rpa/planning.md +25 -21
- package/skills/uipath-maestro-case/references/plugins/tasks/wait-for-timer/impl-json.md +4 -4
- package/skills/uipath-maestro-case/references/plugins/tasks/wait-for-timer/planning.md +5 -4
- package/skills/uipath-maestro-case/references/plugins/triggers/event/impl-json.md +9 -9
- package/skills/uipath-maestro-case/references/plugins/triggers/event/planning.md +30 -19
- package/skills/uipath-maestro-case/references/plugins/triggers/manual/impl-json.md +4 -4
- package/skills/uipath-maestro-case/references/plugins/triggers/manual/planning.md +8 -7
- package/skills/uipath-maestro-case/references/plugins/triggers/timer/impl-json.md +3 -3
- package/skills/uipath-maestro-case/references/plugins/triggers/timer/planning.md +5 -4
- package/skills/uipath-maestro-case/references/plugins/variables/bindings/impl-json.md +5 -5
- package/skills/uipath-maestro-case/references/plugins/variables/global-vars/impl-json.md +7 -7
- package/skills/uipath-maestro-case/references/plugins/variables/global-vars/planning.md +21 -17
- package/skills/uipath-maestro-case/references/plugins/variables/io-binding/impl-json.md +29 -21
- package/skills/uipath-maestro-case/references/plugins/variables/io-binding/planning.md +23 -21
- package/skills/uipath-maestro-case/references/registry-discovery.md +5 -5
- package/skills/uipath-maestro-flow/.maintenance/README.md +35 -28
- package/skills/uipath-maestro-flow/.maintenance/check-anchors.sh +19 -1
- package/skills/uipath-maestro-flow/.maintenance/check-links.sh +3 -0
- package/skills/uipath-maestro-flow/.maintenance/check-plugin-pairs.sh +2 -2
- package/skills/uipath-maestro-flow/SKILL.md +66 -76
- package/skills/uipath-maestro-flow/references/author/CAPABILITY.md +75 -72
- package/skills/uipath-maestro-flow/references/author/brownfield.md +90 -0
- package/skills/uipath-maestro-flow/references/author/{references/editing-operations-cli.md → editing-operations-cli.md} +9 -4
- package/skills/uipath-maestro-flow/references/author/editing-operations-json.md +373 -0
- package/skills/uipath-maestro-flow/references/author/editing-operations.md +103 -0
- package/skills/uipath-maestro-flow/references/author/{references/greenfield.md → greenfield.md} +32 -20
- package/skills/uipath-maestro-flow/references/author/planning-arch.md +342 -0
- package/skills/uipath-maestro-flow/references/author/planning-impl.md +283 -0
- package/skills/uipath-maestro-flow/references/author/plugins/agent/impl.md +227 -0
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/agent/planning.md +2 -2
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/agentic-process/impl.md +2 -2
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/agentic-process/planning.md +1 -1
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/api-workflow/impl.md +2 -2
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/api-workflow/planning.md +1 -1
- package/skills/uipath-maestro-flow/references/author/plugins/batch-transform/impl.md +171 -0
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/batch-transform/planning.md +1 -1
- package/skills/uipath-maestro-flow/references/author/plugins/connector/impl.md +449 -0
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/connector/planning.md +3 -3
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/connector-trigger/impl.md +20 -18
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/connector-trigger/planning.md +2 -2
- package/skills/uipath-maestro-flow/references/author/plugins/data-fabric/impl.md +427 -0
- package/skills/uipath-maestro-flow/references/author/plugins/data-fabric/planning.md +185 -0
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/decision/impl.md +5 -0
- package/skills/uipath-maestro-flow/references/author/plugins/delay/impl.md +38 -0
- package/skills/uipath-maestro-flow/references/author/plugins/end/impl.md +56 -0
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/flow/impl.md +2 -2
- package/skills/uipath-maestro-flow/references/author/plugins/hitl/impl.md +178 -0
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/hitl/planning.md +14 -1
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/http/impl-connector.md +4 -4
- package/skills/uipath-maestro-flow/references/author/plugins/http/impl-manual.md +68 -0
- package/skills/uipath-maestro-flow/references/author/plugins/http/impl.md +173 -0
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/http/planning.md +3 -3
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/inline-agent/impl.md +6 -6
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/inline-agent/planning.md +1 -1
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/inline-voice-agent/impl.md +4 -4
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/inline-voice-agent/planning.md +1 -1
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/ixp/impl.md +8 -8
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/loop/impl.md +1 -1
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/loop/planning.md +1 -1
- package/skills/uipath-maestro-flow/references/author/plugins/merge/impl.md +43 -0
- package/skills/uipath-maestro-flow/references/author/plugins/merge/planning.md +24 -0
- package/skills/uipath-maestro-flow/references/author/plugins/rpa/impl.md +117 -0
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/rpa/planning.md +1 -1
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/scheduled-trigger/impl.md +6 -8
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/script/impl.md +5 -5
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/script/planning.md +1 -1
- package/skills/uipath-maestro-flow/references/author/plugins/subflow/impl.md +164 -0
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/subflow/planning.md +1 -1
- package/skills/uipath-maestro-flow/references/author/plugins/summarize/impl.md +189 -0
- package/skills/uipath-maestro-flow/references/author/plugins/summarize/planning.md +66 -0
- package/skills/uipath-maestro-flow/references/author/plugins/switch/planning.md +34 -0
- package/skills/uipath-maestro-flow/references/author/plugins/terminate/impl.md +48 -0
- package/skills/uipath-maestro-flow/references/author/plugins/transform/impl.md +241 -0
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/transform/planning.md +1 -1
- package/skills/uipath-maestro-flow/references/diagnose/CAPABILITY.md +39 -37
- package/skills/uipath-maestro-flow/references/diagnose/{references/failure-modes.md → failure-modes.md} +22 -22
- package/skills/uipath-maestro-flow/references/diagnose/{references/troubleshooting-guide.md → troubleshooting-guide.md} +60 -1
- package/skills/uipath-maestro-flow/references/evaluate/CAPABILITY.md +27 -25
- package/skills/uipath-maestro-flow/references/evaluate/{references/commands-reference.md → commands-reference.md} +58 -7
- package/skills/uipath-maestro-flow/references/evaluate/eval-sets-guide.md +227 -0
- package/skills/uipath-maestro-flow/references/evaluate/upload-safety.md +94 -0
- package/skills/uipath-maestro-flow/references/operate/CAPABILITY.md +21 -21
- package/skills/uipath-maestro-flow/references/operate/{references/manage.md → manage.md} +4 -4
- package/skills/uipath-maestro-flow/references/operate/run.md +121 -0
- package/skills/uipath-maestro-flow/references/operate/{references/ship.md → ship.md} +5 -5
- package/skills/uipath-maestro-flow/references/shared/action-nodes.md +30 -22
- package/skills/uipath-maestro-flow/references/shared/cli-commands.md +76 -184
- package/skills/uipath-maestro-flow/references/shared/cli-conventions.md +49 -60
- package/skills/uipath-maestro-flow/references/shared/file-format.md +32 -11
- package/skills/uipath-maestro-flow/references/shared/node-output-wiring.md +49 -104
- package/skills/uipath-maestro-flow/references/shared/ux-narration-and-todos.md +66 -103
- package/skills/uipath-maestro-flow/references/shared/variables-and-expressions.md +4 -4
- package/skills/uipath-planner/SKILL.md +1 -1
- package/skills/uipath-planner/assets/templates/case/case-sdd-template.md +5 -3
- package/skills/uipath-planner/references/case/case-design-lane-guide.md +1 -1
- package/skills/uipath-planner/references/case/case-design-layers-guide.md +2 -2
- package/skills/uipath-planner/references/non-pdd-lane-guide.md +2 -1
- package/skills/uipath-planner/references/pdd-driven-lane-guide.md +3 -2
- package/skills/uipath-planner/references/sdd-generation-guide.md +1 -0
- package/skills/uipath-planner/scripts/case/audit_sdd.py +77 -1
- package/skills/uipath-platform/SKILL.md +6 -4
- package/skills/uipath-platform/references/integration-service/activities.md +7 -4
- package/skills/uipath-platform/references/integration-service/reference-resolution.md +28 -0
- package/skills/uipath-platform/references/integration-service/resources.md +11 -0
- package/skills/uipath-platform/references/integration-service/triggers.md +2 -2
- package/skills/uipath-platform/references/licensing/diagnose/CAPABILITY.md +80 -0
- package/skills/uipath-platform/references/licensing/diagnose/references/failure-modes.md +147 -0
- package/skills/uipath-platform/references/licensing/diagnose/references/troubleshooting-guide.md +125 -0
- package/skills/uipath-platform/references/licensing/licensing.md +3 -0
- package/skills/uipath-platform/references/licensing/user-licenses-allocations.md +5 -0
- package/skills/uipath-platform/references/orchestrator/run-jobs.md +11 -2
- package/skills/uipath-platform/references/traces/feedback.md +4 -4
- package/skills/uipath-platform/references/traces/traces.md +1 -1
- package/skills/uipath-process-mining/SKILL.md +6 -6
- package/skills/uipath-process-mining/references/lifecycle-and-rbac.md +10 -8
- package/skills/uipath-process-mining/references/model-editing.md +1 -1
- package/skills/uipath-process-mining/references/querying.md +4 -3
- package/skills/uipath-review/SKILL.md +171 -541
- package/skills/uipath-review/references/agents/agents-lowcode-rules.md +73 -92
- package/skills/uipath-review/references/agents/guardrails/coded-guardrails-review.md +4 -0
- package/skills/uipath-review/references/agents/guardrails/guardrails-review.md +73 -180
- package/skills/uipath-review/references/architecture-assessment-guide.md +93 -105
- package/skills/uipath-review/references/review-workflow-guide.md +1 -1
- package/skills/uipath-review/references/rpa/modern-studio-issues.md +44 -44
- package/skills/uipath-review/references/rpa/rpa-common-issues.md +251 -321
- package/skills/uipath-review/references/rpa/rpa-review-checklist.md +1 -1
- package/skills/uipath-review/references/rule-catalog-workflow.md +25 -45
- package/skills/uipath-review/references/rule-format.md +21 -21
- package/skills/uipath-rpa/.maintenance/pattern-card-maintenance.md +1 -1
- package/skills/uipath-rpa/CLAUDE.md +4 -5
- package/skills/uipath-rpa/SKILL.md +40 -246
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/FindText.md +2 -10
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/GetColorAtPosition.md +2 -10
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/GetCursorPosition.md +2 -10
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/GetField.md +13 -13
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/GetFieldAtPosition.md +2 -10
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/GetScreenArea.md +27 -8
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/GetText.md +2 -14
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/GetTextAtPosition.md +2 -10
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/MoveCursor.md +3 -11
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/MoveCursorToText.md +2 -10
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/SendControlKey.md +2 -8
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/SendKeys.md +2 -10
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/SendKeysSecure.md +2 -10
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/SetField.md +14 -13
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/SetFieldAtPosition.md +4 -7
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/TerminalSession/_common-options.md +29 -0
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/TerminalSession/authoring-paths.md +58 -0
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/TerminalSession.md +197 -11
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/WaitFieldText.md +2 -10
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/WaitScreenReady.md +9 -10
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/WaitScreenText.md +2 -14
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/WaitTextAtPosition.md +2 -10
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities.json +271 -0
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/coded/coded-api.md +61 -3
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/overview.md +76 -0
- package/skills/uipath-rpa/references/cli-reference.md +63 -29
- package/skills/uipath-rpa/references/coded/codedworkflow-reference.md +59 -1
- package/skills/uipath-rpa/references/coded/operations-guide.md +2 -1
- package/skills/uipath-rpa/references/debugging.md +29 -12
- package/skills/uipath-rpa/references/environment-setup.md +54 -1
- package/skills/uipath-rpa/references/execution-maps-guide.md +10 -9
- package/skills/uipath-rpa/references/legacy/activity-docs/_INVOKE-CODE.md +1 -1
- package/skills/uipath-rpa/references/uia-starter-guide.md +46 -8
- package/skills/uipath-rpa/references/xaml/common-pitfalls.md +3 -4
- package/skills/uipath-rpa/references/xaml/csharp-activity-binding-guide.md +7 -8
- package/skills/uipath-rpa/references/xaml/xaml-basics-and-rules.md +132 -42
- package/skills/uipath-solution/SKILL.md +9 -6
- package/skills/uipath-solution/references/activate-and-manage.md +11 -6
- package/skills/uipath-solution/references/develop-solution.md +39 -28
- package/skills/uipath-solution/references/pack-and-deploy.md +49 -1
- package/skills/uipath-solution/references/scenarios/failure-modes.md +1 -1
- package/skills/uipath-solution/references/scenarios/intra-solution-references.md +3 -3
- package/skills/uipath-solution/references/scenarios/manual-edits.md +1 -1
- package/skills/uipath-solution/references/scenarios.md +2 -2
- package/skills/uipath-solution/references/solution-overview.md +15 -6
- package/skills/uipath-tasks/SKILL.md +11 -6
- package/skills/uipath-tasks/references/task-assignment.md +5 -0
- package/skills/uipath-tasks/references/task-catalogs.md +7 -4
- package/skills/uipath-tasks/references/task-completion.md +3 -1
- package/skills/uipath-tasks/references/task-data.md +3 -3
- package/skills/uipath-tasks/references/task-lifecycle.md +11 -0
- package/skills/uipath-tasks/references/task-metadata.md +4 -3
- package/skills/uipath-test/SKILL.md +13 -28
- package/skills/uipath-test/references/failure-triage-guide.md +90 -0
- package/skills/uipath-test/references/playwright-first-mile-guide.md +2 -2
- package/skills/uipath-test/references/publish-and-link-guide.md +0 -1
- package/skills/uipath-test/references/test-result-report-guide.md +1 -2
- package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/interpretations/healing-agent-data.md +1 -1
- package/skills/uipath-troubleshoot/references/presenting.md +1 -1
- package/skills/uipath-troubleshoot/references/products/maestro/playbooks/folder-not-accessible.md +1 -1
- package/skills/uipath-troubleshoot/references/products/maestro/playbooks/generic-error-400.md +4 -4
- package/skills/uipath-troubleshoot/references/products/maestro/playbooks/integration-service-400.md +2 -2
- package/skills/uipath-troubleshoot/references/products/maestro/playbooks/job-operation-timeout.md +1 -1
- package/skills/uipath-troubleshoot/references/products/maestro/playbooks/no-suitable-runtime-machine.md +1 -1
- package/version-manifest.json +2 -2
- package/skills/uipath-maestro-case/scripts/audit_plan.py +0 -231
- package/skills/uipath-maestro-flow/references/author/references/brownfield.md +0 -93
- package/skills/uipath-maestro-flow/references/author/references/editing-operations-json.md +0 -545
- package/skills/uipath-maestro-flow/references/author/references/editing-operations.md +0 -131
- package/skills/uipath-maestro-flow/references/author/references/planning-arch.md +0 -638
- package/skills/uipath-maestro-flow/references/author/references/planning-impl.md +0 -306
- package/skills/uipath-maestro-flow/references/author/references/plugins/agent/impl.md +0 -229
- package/skills/uipath-maestro-flow/references/author/references/plugins/batch-transform/impl.md +0 -174
- package/skills/uipath-maestro-flow/references/author/references/plugins/connector/impl.md +0 -741
- package/skills/uipath-maestro-flow/references/author/references/plugins/delay/impl.md +0 -75
- package/skills/uipath-maestro-flow/references/author/references/plugins/end/impl.md +0 -65
- package/skills/uipath-maestro-flow/references/author/references/plugins/hitl/impl.md +0 -204
- package/skills/uipath-maestro-flow/references/author/references/plugins/http/impl-manual.md +0 -65
- package/skills/uipath-maestro-flow/references/author/references/plugins/http/impl.md +0 -201
- package/skills/uipath-maestro-flow/references/author/references/plugins/merge/impl.md +0 -43
- package/skills/uipath-maestro-flow/references/author/references/plugins/merge/planning.md +0 -29
- package/skills/uipath-maestro-flow/references/author/references/plugins/rpa/impl.md +0 -121
- package/skills/uipath-maestro-flow/references/author/references/plugins/subflow/impl.md +0 -230
- package/skills/uipath-maestro-flow/references/author/references/plugins/summarize/impl.md +0 -198
- package/skills/uipath-maestro-flow/references/author/references/plugins/summarize/planning.md +0 -71
- package/skills/uipath-maestro-flow/references/author/references/plugins/switch/planning.md +0 -38
- package/skills/uipath-maestro-flow/references/author/references/plugins/terminate/impl.md +0 -48
- package/skills/uipath-maestro-flow/references/author/references/plugins/transform/impl.md +0 -287
- package/skills/uipath-maestro-flow/references/evaluate/references/eval-sets-guide.md +0 -226
- package/skills/uipath-maestro-flow/references/evaluate/references/upload-safety.md +0 -82
- package/skills/uipath-maestro-flow/references/operate/references/run.md +0 -99
- /package/skills/uipath-maestro-bpmn/references/diagnose/{references/failure-modes.md → failure-modes.md} +0 -0
- /package/skills/uipath-maestro-bpmn/references/operate/{references/manage.md → manage.md} +0 -0
- /package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/decision/planning.md +0 -0
- /package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/delay/planning.md +0 -0
- /package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/end/planning.md +0 -0
- /package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/flow/planning.md +0 -0
- /package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/ixp/planning.md +0 -0
- /package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/queue/impl.md +0 -0
- /package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/queue/planning.md +0 -0
- /package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/scheduled-trigger/planning.md +0 -0
- /package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/switch/impl.md +0 -0
- /package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/terminate/planning.md +0 -0
- /package/skills/uipath-maestro-flow/references/evaluate/{references/evaluators-guide.md → evaluators-guide.md} +0 -0
- /package/skills/uipath-maestro-flow/references/evaluate/{references/running-guide.md → running-guide.md} +0 -0
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: uipath-aops
|
|
3
|
+
description: "UiPath StudioAdmin AOps (`uip aops`) — SourceControl discovery plus CICD pipelines. Drives `aops connection` / `repo` / `project` / `solution` to resolve a GitHub or Azure source binding, `aops pipeline processes` to pick an already-published Orchestrator process, then composes a PipelineDto for `pipeline create` / `save-and-run` and follows runs via `aops execution logs --follow`. Replaces the retired `uip sc` and `uip cicd` tools. For AOps governance policies (`uip gov aops-policy`)→uipath-governance. For `uip solution pack/publish/deploy`→uipath-platform. For workflow authoring (.xaml/.cs)→uipath-rpa." # <!-- uip-check-skip -->
|
|
4
|
+
when_to_use: "User wants to discover StudioAdmin SourceControl state or create, run, or edit a UiPath CICD pipeline that builds source from an SC-synced Studio Solution or standalone project and binds it to an already-published Orchestrator process. Triggers: 'create a pipeline for X process', 'set up CI/CD for this solution', 'build + run my pipeline', 'list my source control connections', `uip aops`, `uip sc`, `uip cicd`, StudioAdmin SourceControl, PipelineDto." # <!-- uip-check-skip -->
|
|
5
|
+
allowed-tools: Bash, Read, Write, Edit, Glob, Grep
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# UiPath StudioAdmin AOps — Source Control + CICD Pipelines
|
|
9
|
+
|
|
10
|
+
Depends on the `@uipath/aops-tool` CLI plugin; install via `uip tools install @uipath/aops-tool` before using.
|
|
11
|
+
|
|
12
|
+
> **Tool migration.** `@uipath/sc-tool` (`uip sc`) and `@uipath/cicd-tool` (`uip cicd`) were unified into `@uipath/aops-tool` (`uip aops`). `@uipath/cicd-tool` is gone from npm. Every `uip sc <verb>` and `uip cicd <verb>` becomes `uip aops <verb>` — the verb trees merged without renaming any subcommand. See [migration-guide.md](references/migration-guide.md). <!-- uip-check-skip -->
|
|
13
|
+
|
|
14
|
+
Build a StudioAdmin CICD pipeline that binds two independent things:
|
|
15
|
+
|
|
16
|
+
- **Source** — one Studio project the pipeline checks out on every run. Two equivalent ways to reach it:
|
|
17
|
+
- **Solution path** — a project inside a Studio Solution surfaced by `aops connection solutions <connection-id>`
|
|
18
|
+
- **Standalone-project path** — a project surfaced directly by `aops connection projects <connection-id>` (no enclosing Solution)
|
|
19
|
+
- **Target** — an already-published Orchestrator automation process surfaced by `aops pipeline processes`. The pipeline runs / updates this process as part of its execution.
|
|
20
|
+
|
|
21
|
+
## When to Use This Skill
|
|
22
|
+
|
|
23
|
+
- User wants a new pipeline for a Studio Solution or standalone project already synced to StudioAdmin
|
|
24
|
+
- User names a published Orchestrator process and wants a pipeline that runs / updates it
|
|
25
|
+
- User says "create / build / wire a pipeline" against a Solution or a process
|
|
26
|
+
- User wants a one-shot "create and run" with execution id + log follow
|
|
27
|
+
- User wants to inspect or kick off an existing pipeline run, or edit one after creation
|
|
28
|
+
- User wants to inspect SourceControl state — connections, repos, branches, project files, commit history
|
|
29
|
+
|
|
30
|
+
Do NOT use this skill for:
|
|
31
|
+
|
|
32
|
+
- AOps **governance** policies (`uip gov aops-policy` — Studio / Robot feature restrictions) → `uipath-governance`. Same "AOps" word, different product surface.
|
|
33
|
+
- Packing or publishing a `.nupkg` (`uip solution pack/publish/deploy`) → `uipath-platform`
|
|
34
|
+
- Authoring or editing workflow code (`.xaml`, `.cs`) → `uipath-rpa`
|
|
35
|
+
- Creating the SourceControl connection itself — connections are UI-only via the StudioAdmin web app
|
|
36
|
+
- Publishing a new process — processes are published separately (Studio publish / `uip solution publish`)
|
|
37
|
+
|
|
38
|
+
## Vocabulary
|
|
39
|
+
|
|
40
|
+
| Term in this skill | What it means |
|
|
41
|
+
|---|---|
|
|
42
|
+
| **SourceControl connection** | A StudioAdmin-side link to GitHub or Azure DevOps. Lists via `aops connection list`. UI-provisioned. |
|
|
43
|
+
| **Studio Solution** | A `.uipx` container surfaced by SourceControl, holding one or more projects. Lists via `aops connection solutions <connection-id>`. |
|
|
44
|
+
| **Project** (in this skill) | A Studio project — the **source** for the pipeline build. Reached two ways: nested inside a Solution (via `connection solutions`) OR standalone (via `connection projects`). Any project `Type` is eligible for source binding. |
|
|
45
|
+
| **Published (automation) process** | An already-deployed Orchestrator process the pipeline runs / updates. Lists via `aops pipeline processes`. **Independent of any project type.** |
|
|
46
|
+
| **PipelineDto** | The wire format `pipeline create` / `save-and-run` consume via `--file`. Carries source binding (project + repository + branch) AND target binding (`processIdentifier`). |
|
|
47
|
+
| **EditPipelineDto** | The narrower shape `pipeline update --file` consumes — `identifier`, `name`, `runMode`, `description`, `arguments` only. |
|
|
48
|
+
|
|
49
|
+
The published process is NOT the same thing as a Studio project of type "Process". Studio project types describe how to build / package source. Published processes are runnable artifacts in Orchestrator. The pipeline glues them: build source → update / run the target process.
|
|
50
|
+
|
|
51
|
+
## Critical Rules
|
|
52
|
+
|
|
53
|
+
1. **The tool is `aops`, not `sc` / `cicd`.** Run `uip tools list --output json` and confirm an entry with `commandPrefix: "aops"`. If missing: `uip tools install @uipath/aops-tool`. If the registry does not know the package, see [migration-guide.md § Install](references/migration-guide.md#install). Then `uip login status --output json`; if not logged in, `uip login`.
|
|
54
|
+
2. **Response keys are PascalCase; `--file` input keys are camelCase.** The CLI PascalCases every key inside the stdout `Data` payload (`Identifier`, `RemoteId`, `CloneUrl`, `DefaultBranch`, `ProjectRelativePath`). The JSON you *write* for `--file` must use the DTO's own camelCase names (`repositoryId`, `projectPath`, `processIdentifier`). Never round-trip stdout into `--file`. Use `--output-file` when you need a raw DTO on disk.
|
|
55
|
+
3. **Sources come from AOps, not local disk.** Do NOT scan `*.sln` / `*.uipx` / `project.json` files. Discover via `uip aops connection solutions <connection-id>` and `uip aops connection projects <connection-id>`. Local files don't carry `connectionIdentifier` / `remoteId` / project SourceControl UUIDs — fields the CICD API requires.
|
|
56
|
+
4. **Source project and target process are independent picks.** The pipeline binds one Studio project (for source) AND one already-published Orchestrator process (for run / update). Do NOT auto-derive the process from the project's name or type, and do NOT filter projects by `Type`. Both come from separate API calls; the user (or context) picks each.
|
|
57
|
+
5. **`pipeline create --file` consumes a PipelineDto, NOT an EditPipelineDto.** The two shapes differ — EditPipelineDto is for `pipeline update`. See [pipeline-dto-guide.md](references/pipeline-dto-guide.md).
|
|
58
|
+
6. **`branch` is the only hard-required field on PipelineDto.** Everything else is optional in the type system, but a useful pipeline needs `name`, `connectionIdentifier`, `repositoryId`, `projectPath`, `processIdentifier`, and `runMode`. Default `branch` to the repository's `DefaultBranch` unless the user specifies one.
|
|
59
|
+
7. **`--output json` on every command.** All `uip aops` calls are parsed by the agent. Never run them without it. Do NOT add `--output-filter` to a command that has a defaulted `--limit` unless you also pass `--limit` explicitly — the CLI refuses that combination (Rule 13).
|
|
60
|
+
8. **The published process is the user's pick.** `pipeline processes` returns `{ProcessId, Name, Description, Package, Version}`. When the user names a process by `Name` or `Package`, find the exact match — if 2+ candidates remain (same `Package`, different versions), prefer the highest `Version` and confirm. Never silently bind a process the user didn't name.
|
|
61
|
+
9. **Process arguments are process-specific — inspect, infer, then ask.** Before composing `PipelineDto.arguments`: (1) run `aops pipeline process <PROCESS_ID> --output json` to read `Arguments` (declared schema) + `InputArguments` (JSON string of default values). (2) Infer overrides from conversation context. (3) Ask the user only for parameters that cannot be inferred AND have no schema default. Default the field to `null` (= use process defaults). See [pipeline-dto-guide.md § arguments](references/pipeline-dto-guide.md#arguments).
|
|
62
|
+
10. **Connection-and-source discovery is two calls, in order.** `connection list` → pick the connection → `connection solutions` / `connection projects`. Never assume there is exactly one connection or one solution.
|
|
63
|
+
11. **If discovery returns nothing, then sync.** Try `connection solutions <id>` / `connection projects <id>` first. If both return an empty list OR the user reports a missing solution / project that was just added, check `connection state --connection <id>` and offer `connection sync <id> --wait`. A `SyncState: "Fail"` value is not by itself a reason to bail — cached data from the last successful sync is usually still usable.
|
|
64
|
+
12. **Never invent identifiers.** Source map:
|
|
65
|
+
- `connectionIdentifier` ← `connection list` → `Identifier` (SourceControl UUID).
|
|
66
|
+
- `repositoryId` ← `connection repos` → **`RemoteId`** (provider-native id: numeric for GitHub, UUID for Azure DevOps). NOT `Identifier` (SourceControl's internal UUID). Sending the SourceControl UUID makes `pipeline create` succeed but the pipeline fails runtime resolution — the StudioAdmin UI flags it "connection no longer valid".
|
|
67
|
+
- `projectPath` ← `connection solutions` → `Projects[].ProjectRelativePath`, or `repo project-files <repo-id>` → `Path`.
|
|
68
|
+
- `processIdentifier` ← `pipeline processes` → `ProcessId`.
|
|
69
|
+
13. **Pagination is page-based.** `--offset` must be an exact multiple of `--limit` or the command fails client-side before any request. Defaults: `connection projects` / `project list` 10; `connection solutions` / `pipeline list` / `pipeline executions` 20. `--take` / `--skip` are deprecated aliases on the `connection` and `project` verbs and do not exist at all on `pipeline executions`.
|
|
70
|
+
14. **`pipeline delete` requires `-y` / `--yes`.** The CLI never prompts. Without the flag the command refuses and no request is sent. Confirm with the user before passing it.
|
|
71
|
+
15. **`pipeline update --file` is a full-replace PUT that rejects unknown keys.** It accepts exactly `identifier`, `name`, `runMode`, `description`, `arguments`. Any other key — including one differing only in case — is a `ValidationError` (exit 3) and nothing is sent. Produce the file with `pipeline get <id> --for-update --output-file <path>`, never by capturing stdout.
|
|
72
|
+
16. **`pipeline create` returns the persisted PipelineDto.** Success is `{Result: "Success", Code: "PipelineCreated", Data: {…, "Identifier": "<new-id>"}}`. Capture `Data.Identifier` for follow-up `run` / `update` / `delete` calls.
|
|
73
|
+
17. **`pipeline save-and-run` returns `Data.Pipeline` + `Data.ExecutionId`.** `ExecutionId` is lifted out of the persisted DTO's `latestPipelineExecution`; when it is `null` the run was queued but the response didn't surface the row — fall back to `pipeline executions <pipeline-id> --limit 1 --output json`. See [save-and-run-guide.md](references/save-and-run-guide.md).
|
|
74
|
+
|
|
75
|
+
## Quick Start
|
|
76
|
+
|
|
77
|
+
The end-to-end flow is 7 steps (Step 3 has two variants — `3a` for Solution-nested sources, `3b` for standalone projects). The full procedure with example output and error handling is in [discovery-flow.md](references/discovery-flow.md). Reach for it whenever a step needs more detail than the snippet below.
|
|
78
|
+
|
|
79
|
+
### Step 0 — Tool + auth check
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
uip tools list --output json
|
|
83
|
+
uip login status --output json
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
If `aops` is missing: `uip tools install @uipath/aops-tool`. If not logged in: `uip login`. The SourceControl and CICD halves share one token but are separately entitled — SourceControl verbs need the StudioAdmin SourceControl service; pipeline verbs need StudioAdmin CICD plus `Pipelines.View` (mutations need `Pipelines.Edit` / `Pipelines.Run`) on the active runtime environment.
|
|
87
|
+
|
|
88
|
+
### Step 1 — Pick the SourceControl connection
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
uip aops connection list --output json
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Row shape: `{Identifier, Name, Type, SyncState}`. `Type` is `"GitHub"` or `"Azure"`. Save the chosen `Identifier` as `CONNECTION_ID`. If multiple connections are returned and the user didn't name one, ask the user.
|
|
95
|
+
|
|
96
|
+
### Step 2 — Pick the source: Solution-nested project OR standalone project
|
|
97
|
+
|
|
98
|
+
Both kinds of source live on the same connection. List both, then let the user pick from the combined set:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
uip aops connection solutions <CONNECTION_ID> --output json
|
|
102
|
+
uip aops connection projects <CONNECTION_ID> --output json
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
- `connection solutions` returns `Data.Result[]` (paged, default 20) of `SolutionDto`. Each row has `Identifier`, `Name`, `Path`, `Repository` (full RepositoryDto), and `Projects[]` (each `{ProjectId, Type, ProjectRelativePath}`).
|
|
106
|
+
- `connection projects` returns `Data[]` of curated rows `{ProjectId, Name, Description, Type, Repository}` (paged, default 10). **`Repository` is just the name** — the curated view drops the full RepositoryDto and the project file's path. Recover the rest in Step 3b.
|
|
107
|
+
|
|
108
|
+
Decision:
|
|
109
|
+
|
|
110
|
+
- **User named a Solution** → Solution path (Step 3a).
|
|
111
|
+
- **User named a standalone project that appears only in `connection projects`** → standalone path (Step 3b).
|
|
112
|
+
- **User named a name appearing in both** → ask the user.
|
|
113
|
+
- **No user hint** → list every Solution + every standalone project (label which is which) and ask the user.
|
|
114
|
+
|
|
115
|
+
### Step 3a — Solution path: pick a project inside the Solution
|
|
116
|
+
|
|
117
|
+
For the chosen Solution, list `Projects[]`. Common `Type` values: `Process`, `Library`, `TestCase`. **Do not filter by `Type`** — any project can serve as a pipeline's source binding.
|
|
118
|
+
|
|
119
|
+
- **1 project** → use it.
|
|
120
|
+
- **2+ projects** → ask the user, listing each project's `Type` and `ProjectRelativePath`.
|
|
121
|
+
- **0 projects** → fail with `Result: "Failure"`, instruct the user to add a project to the Solution and re-sync.
|
|
122
|
+
|
|
123
|
+
The Solution's embedded `Repository` lacks `RemoteId`. One extra call:
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
uip aops connection repos <CONNECTION_ID> --output json
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Find the row whose `Identifier` matches `solution.Repository.Identifier`. That row carries `RemoteId`.
|
|
130
|
+
|
|
131
|
+
Derive the DTO fields:
|
|
132
|
+
|
|
133
|
+
| Variable | From |
|
|
134
|
+
|---|---|
|
|
135
|
+
| `REPOSITORY_ID` | matched repo's `RemoteId` (NOT `Identifier` — see Critical Rule 12) |
|
|
136
|
+
| `REPOSITORY_URL` | `solution.Repository.CloneUrl` |
|
|
137
|
+
| `REPOSITORY_NAME` | `solution.Repository.Name` |
|
|
138
|
+
| `DEFAULT_BRANCH` | `solution.Repository.DefaultBranch` |
|
|
139
|
+
| `PROJECT_PATH` | `project.ProjectRelativePath` exactly (e.g. `<project-dir>/project.json`) |
|
|
140
|
+
| `PROJECT_NAME` | `""` (empty string) — StudioAdmin's UI leaves it blank. Pipeline binding works without it. |
|
|
141
|
+
|
|
142
|
+
Skip to Step 4.
|
|
143
|
+
|
|
144
|
+
### Step 3b — Standalone-project path: recover repository and project path
|
|
145
|
+
|
|
146
|
+
The curated standalone views drop the data needed. Two extra calls fill the gaps:
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
uip aops connection repos <CONNECTION_ID> --output json
|
|
150
|
+
uip aops repo project-files <REPOSITORY_SC_UUID> --output json
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
- `connection repos` returns full RepositoryDtos. Look up the row whose `Name` matches the project's `Repository` field. Take its `Identifier` (for the next call), `RemoteId`, `CloneUrl`, `Name`, `DefaultBranch`.
|
|
154
|
+
- `repo project-files <repo-id>` takes the repo's **SourceControl UUID** (`Identifier`), not `RemoteId`, and returns one row per automation project file in the repo: `{Name, Path, Type, BuildableUnitType}`. `Path` is `PROJECT_PATH`. Add `--reference <branch|tag|sha>` to inspect a non-default branch.
|
|
155
|
+
|
|
156
|
+
Optional confirmation of the project's own metadata:
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
uip aops project get --project-id <PROJECT_ID> --output json
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Returns `Name`, `Type`, `DefaultBranch`, and a flattened `Repository` name string — do not rely on it for any identifier. Add `--with-branches` for `AvailableBranches` (one extra round-trip).
|
|
163
|
+
|
|
164
|
+
Derive the DTO fields:
|
|
165
|
+
|
|
166
|
+
| Variable | From |
|
|
167
|
+
|---|---|
|
|
168
|
+
| `REPOSITORY_ID` | matched repo's `RemoteId` (NOT `Identifier`) |
|
|
169
|
+
| `REPOSITORY_URL` | matched repo's `CloneUrl` |
|
|
170
|
+
| `REPOSITORY_NAME` | matched repo's `Name` |
|
|
171
|
+
| `DEFAULT_BRANCH` | matched repo's `DefaultBranch` (agrees with `project get`'s `DefaultBranch`) |
|
|
172
|
+
| `PROJECT_NAME` | `""` (empty string) — UI-created pipelines leave it blank |
|
|
173
|
+
| `PROJECT_PATH` | `repo project-files` row's `Path`. If several rows come back, ask the user which project to build. |
|
|
174
|
+
|
|
175
|
+
### Step 4 — Pick the already-published Orchestrator process
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
uip aops pipeline processes --output json
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Row shape: `{ProcessId, Name, Description, Package, Version}`. This is the catalog of processes already deployed in Orchestrator and available for binding — independent of any Studio project.
|
|
182
|
+
|
|
183
|
+
- **User named a process** (by `Name` or `Package`) → exact-match (case-insensitive). If 2+ rows share that `Name` / `Package` (different versions), pick the highest `Version` and confirm with the user.
|
|
184
|
+
- **No user name** → ask the user, listing each candidate's `Name`, `Package`, and `Version`.
|
|
185
|
+
|
|
186
|
+
Save `ProcessId` as `PROCESS_ID`.
|
|
187
|
+
|
|
188
|
+
### Step 5 — Inspect and resolve process arguments
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
uip aops pipeline process <PROCESS_ID> --output json
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
Read `Data.Arguments` (declared parameter schema) and `Data.InputArguments` (JSON-encoded string of default values). Parse `InputArguments` with `JSON.parse` to get the default-value object.
|
|
195
|
+
|
|
196
|
+
For each parameter declared in `Data.Arguments`:
|
|
197
|
+
|
|
198
|
+
1. **Try to infer the override from conversation context.** Example: user said "process the May 2026 batch" → infer `BatchDate: "2026-05"`.
|
|
199
|
+
2. **If inferable** → record the override value.
|
|
200
|
+
3. **If not inferable and the parameter has a default** (present in parsed `InputArguments`) → skip it; the default fires at runtime.
|
|
201
|
+
4. **If not inferable and no default** → ask the user. Use a choice-style prompt for enum / boolean parameters and a free-form prompt for strings / numbers / paths. Required parameters with no default fail at run time if omitted.
|
|
202
|
+
|
|
203
|
+
Build `PIPELINE_ARGUMENTS` as an override object containing only the parameters to change. Set to `null` when no overrides apply — that's the signal to use all process defaults. If `pipeline process` returns no arguments, default the field to `null`.
|
|
204
|
+
|
|
205
|
+
Full workflow, the four argument surfaces, and the wire-shape caveat: [pipeline-dto-guide.md § arguments](references/pipeline-dto-guide.md#arguments).
|
|
206
|
+
|
|
207
|
+
### Step 6 — Compose the PipelineDto
|
|
208
|
+
|
|
209
|
+
Start from [assets/templates/pipeline-dto-template.json](assets/templates/pipeline-dto-template.json) and fill the fields. Keys are **camelCase** — this is an input file, not CLI output. The minimum useful shape:
|
|
210
|
+
|
|
211
|
+
```json
|
|
212
|
+
{
|
|
213
|
+
"name": "<PIPELINE_NAME>",
|
|
214
|
+
"runMode": "Manually",
|
|
215
|
+
"description": "<OPTIONAL>",
|
|
216
|
+
"connectionIdentifier": "<CONNECTION_ID>",
|
|
217
|
+
"repositoryId": "<REPOSITORY_REMOTE_ID>",
|
|
218
|
+
"repositoryUrl": "<REPOSITORY_URL>",
|
|
219
|
+
"repositoryName": "<REPOSITORY_NAME>",
|
|
220
|
+
"repositoryType": "git",
|
|
221
|
+
"branch": "<DEFAULT_BRANCH>",
|
|
222
|
+
"projectName": "",
|
|
223
|
+
"projectPath": "<PROJECT_PATH>",
|
|
224
|
+
"processIdentifier": "<PROCESS_ID>",
|
|
225
|
+
"arguments": null
|
|
226
|
+
}
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
Write the JSON to disk via `Write` — pick a path under the current working directory, e.g. `./pipeline-<name-kebab>.json`. Do NOT include `identifier`; that field is server-assigned. Replace `arguments` with the override object from Step 5 when there is one. `repositoryType` is normalized server-side to `"git"`. `projectName` is intentionally `""`; pipeline binding resolves on `repositoryId` + `projectPath` + `branch`.
|
|
230
|
+
|
|
231
|
+
Before calling create, sanity-check the name is free:
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
uip aops pipeline list --search "<PIPELINE_NAME>" --output json
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
Empty `Data: []` means the name is available. Prefer `pipeline list --search` over `pipeline search --name` for uniqueness checks — `list --search` returns a curated list reliably, while `search --name` exits 1 with a not-found error when nothing matches.
|
|
238
|
+
|
|
239
|
+
### Step 7 — Create the pipeline
|
|
240
|
+
|
|
241
|
+
**Create only:**
|
|
242
|
+
|
|
243
|
+
```bash
|
|
244
|
+
uip aops pipeline create --file ./pipeline-<name-kebab>.json --output json
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
Returns `Code: "PipelineCreated"` and the persisted DTO — capture `Data.Identifier`.
|
|
248
|
+
|
|
249
|
+
**Create + run + capture execution id:**
|
|
250
|
+
|
|
251
|
+
```bash
|
|
252
|
+
uip aops pipeline save-and-run --file ./pipeline-<name-kebab>.json --output json
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
Returns `Code: "PipelineSavedAndRunStarted"` with `Data.Pipeline` and `Data.ExecutionId`. If `ExecutionId` is `null`, look it up via `uip aops pipeline executions <new-pipeline-id> --limit 1 --output json`. See [save-and-run-guide.md](references/save-and-run-guide.md) for log-follow.
|
|
256
|
+
|
|
257
|
+
## PipelineRunMode
|
|
258
|
+
|
|
259
|
+
| Value | Semantics |
|
|
260
|
+
|---|---|
|
|
261
|
+
| `Manually` | Default. Pipeline runs only on explicit `pipeline run <id>` or `save-and-run`. |
|
|
262
|
+
| `AtSpecificTime` | Time-scheduled. Server-side trigger; the schedule itself is configured in the StudioAdmin UI. |
|
|
263
|
+
| `ForEachCommit` | Runs automatically on every commit to `branch`. |
|
|
264
|
+
|
|
265
|
+
Default to `Manually` unless the user asks for commit-driven or scheduled.
|
|
266
|
+
|
|
267
|
+
## Command Map
|
|
268
|
+
|
|
269
|
+
Every verb, grouped by subject. Details in the references.
|
|
270
|
+
|
|
271
|
+
| Subject | Verbs |
|
|
272
|
+
|---|---|
|
|
273
|
+
| `connection` | `list`, `state`, `sync`, `delete`, `repos`, `repos-bulk`, `projects`, `solutions`, `azure-projects` |
|
|
274
|
+
| `repo` | `branches`, `project-files` |
|
|
275
|
+
| `project` | `list`, `get`, `files`, `content`, `commits`, `commit` |
|
|
276
|
+
| `solution` | `get`, `commits` |
|
|
277
|
+
| `pipeline` | `list`, `state`, `processes`, `process`, `repos`, `get`, `search`, `create`, `update`, `delete`, `run`, `save-and-run`, `executions`, `executions-bulk` |
|
|
278
|
+
| `execution` | `get`, `logs`, `details`, `stop` |
|
|
279
|
+
|
|
280
|
+
## Reference Navigation
|
|
281
|
+
|
|
282
|
+
| I need to... | Read |
|
|
283
|
+
|---|---|
|
|
284
|
+
| **Translate an old `uip sc` / `uip cicd` command** | [migration-guide.md](references/migration-guide.md) | <!-- uip-check-skip -->
|
|
285
|
+
| **Full discovery sequence with example outputs** | [discovery-flow.md](references/discovery-flow.md) |
|
|
286
|
+
| **Every PipelineDto field + where to source it** | [pipeline-dto-guide.md](references/pipeline-dto-guide.md) |
|
|
287
|
+
| **Create + run + follow logs in one flow** | [save-and-run-guide.md](references/save-and-run-guide.md) |
|
|
288
|
+
| **JSON skeleton for a new PipelineDto** | [assets/templates/pipeline-dto-template.json](assets/templates/pipeline-dto-template.json) |
|
|
289
|
+
|
|
290
|
+
## Completion Output
|
|
291
|
+
|
|
292
|
+
After a successful create / save-and-run, report:
|
|
293
|
+
|
|
294
|
+
1. The new `Data.Identifier` (UUID) and `Name`
|
|
295
|
+
2. For save-and-run: the `ExecutionId` and the `uip aops execution logs <execution-id> --follow` command the user can run to track it
|
|
296
|
+
3. The PipelineDto JSON file path on disk (so the user can edit + re-apply)
|
|
297
|
+
4. Next steps: list executions (`uip aops pipeline executions <id>`), edit (`uip aops pipeline get <id> --for-update --output-file <path>` → edit → `pipeline update <id> --file <path>`), or delete (`uip aops pipeline delete <id> --yes`)
|
|
298
|
+
|
|
299
|
+
## Anti-patterns
|
|
300
|
+
|
|
301
|
+
1. **Running `uip sc …` or `uip cicd …`.** Both tools are retired; `@uipath/cicd-tool` no longer exists on npm. Every verb lives under `uip aops`. <!-- uip-check-skip -->
|
|
302
|
+
2. **Feeding stdout JSON back into `--file`.** Stdout `Data` keys are PascalCased. `pipeline update` rejects such a file outright (ValidationError, exit 3) rather than applying it as a partial wipe. Use `pipeline get <id> --for-update --output-file <path>`, which writes the raw camelCase DTO.
|
|
303
|
+
3. **Reading a local `*.sln` / `*.uipx` / `project.json` from disk.** The CICD API needs SourceControl-side identifiers (`connectionIdentifier`, `remoteId`, project UUIDs) local files don't expose.
|
|
304
|
+
4. **Filtering source projects by `Type`.** All Studio project types (`Process`, `Library`, `TestCase`, etc.) are valid source bindings.
|
|
305
|
+
5. **Auto-matching a project to a process by name / package.** Source and target are independent — always let the user pick the process explicitly (or confirm an inferred match).
|
|
306
|
+
6. **Building one pipeline for multiple projects.** Each pipeline binds a single source project. Two projects → two pipelines.
|
|
307
|
+
7. **Feeding `pipeline get <id>` output straight into `pipeline create --file`.** `get` returns a PipelineDto including server-assigned fields like `latestPipelineExecution`. For round-trip editing use `--for-update` + `pipeline update`, not `create`.
|
|
308
|
+
8. **Inventing the `branch` value.** When the user doesn't name one, take the repository's `DefaultBranch`. Hand-typing `"main"` is a footgun on repos defaulting to `master` or a release branch.
|
|
309
|
+
9. **Bailing out on `SyncState: "Fail"`.** A failed last sync doesn't invalidate cached data from the previous successful one. Try the listing first; escalate to `connection sync --wait` only if it comes back empty.
|
|
310
|
+
10. **Passing `--take` / `--skip`.** Deprecated aliases; they warn on the `connection` / `project` verbs and do not exist on `pipeline executions`. Use `--limit` / `--offset`, keeping `--offset` a multiple of `--limit`.
|
|
311
|
+
11. **Adding `--output-filter` without `--limit`.** On any command with a defaulted `--limit` the CLI refuses the combination, because the filter would silently run over a capped page.
|
|
312
|
+
12. **Calling `pipeline delete <id>` without `--yes`.** The CLI never prompts; the call is refused and nothing happens.
|
|
313
|
+
13. **Re-implementing in raw REST.** `uip aops` handles the StudioAdmin base paths (`/{orgId}/roboticsops_/sourcecontrol_/`, `/{orgId}/roboticsops_/cicd_/`), pagination, and the `Result/Code/Data` envelope. Never `curl` these endpoints by hand.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "<PIPELINE_NAME>",
|
|
3
|
+
"runMode": "Manually",
|
|
4
|
+
"description": null,
|
|
5
|
+
"connectionIdentifier": "<CONNECTION_ID>",
|
|
6
|
+
"repositoryId": "<REPOSITORY_REMOTE_ID>",
|
|
7
|
+
"repositoryUrl": "<REPOSITORY_CLONE_URL>",
|
|
8
|
+
"repositoryName": "<REPOSITORY_NAME>",
|
|
9
|
+
"repositoryType": "git",
|
|
10
|
+
"branch": "<DEFAULT_BRANCH>",
|
|
11
|
+
"projectName": "",
|
|
12
|
+
"projectPath": "<PROJECT_PATH>",
|
|
13
|
+
"processIdentifier": "<PROCESS_ID>",
|
|
14
|
+
"arguments": null
|
|
15
|
+
}
|
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
# Discovery Flow — Connection → Source → Process
|
|
2
|
+
|
|
3
|
+
Full procedure for resolving the identifiers a `PipelineDto` needs. Run sequentially.
|
|
4
|
+
|
|
5
|
+
All response field names below are as they appear on stdout — **PascalCase**. The JSON written for `--file` uses camelCase. See [migration-guide.md § 1](migration-guide.md#1-stdout-data-keys-are-pascalcase).
|
|
6
|
+
|
|
7
|
+
## Inputs the user provides
|
|
8
|
+
|
|
9
|
+
One or more of:
|
|
10
|
+
|
|
11
|
+
- **Solution name** — "create a pipeline for the `<my-solution>` solution"
|
|
12
|
+
- **Standalone project name** — "create a pipeline for the `<my-project>` project"
|
|
13
|
+
- **Already-published process name / package** — "create a pipeline for the `<my-process>` process"
|
|
14
|
+
- **Connection name** — disambiguates when multiple connections are in play
|
|
15
|
+
|
|
16
|
+
If none of the above are clear, ask the user before running any CLI command.
|
|
17
|
+
|
|
18
|
+
## Step 1 — Confirm the CLI tool is installed
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
uip tools list --output json
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Expected: `Data` includes an entry with `"commandPrefix": "aops"` (from `@uipath/aops-tool`). If missing:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
uip tools install @uipath/aops-tool
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
`@uipath/sc-tool` and `@uipath/cicd-tool` are retired — do not install or invoke them. Install failure recovery: [migration-guide.md § Install](migration-guide.md#install).
|
|
31
|
+
|
|
32
|
+
## Step 2 — Confirm login
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
uip login status --output json
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
If `Result: "Failure"` or expired: `uip login`. One token covers both halves of the tool, but entitlements differ:
|
|
39
|
+
|
|
40
|
+
- SourceControl verbs (`connection`, `repo`, `project`, `solution`) need the StudioAdmin SourceControl service enabled on the organization.
|
|
41
|
+
- Pipeline / execution verbs need StudioAdmin CICD enabled, a selected runtime environment, and `Pipelines.View` at minimum. Mutations need `Pipelines.Edit` / `Pipelines.Run`.
|
|
42
|
+
|
|
43
|
+
A cheap reachability check for the CICD half before doing real work:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
uip aops pipeline state --output json
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Step 3 — List SourceControl connections
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
uip aops connection list --output json
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Row shape: `{Identifier, Name, Type, SyncState}`. `Type` is `"GitHub"` or `"Azure"`. `SyncState` is `"Success"`, `"Fail"`, or `"Broken"`.
|
|
56
|
+
|
|
57
|
+
Decision:
|
|
58
|
+
|
|
59
|
+
- **User named the connection** → exact-match `Name`, take its `Identifier`
|
|
60
|
+
- **1 connection returned** → use it
|
|
61
|
+
- **2+ connections, no user hint** → ask the user, listing each connection's `Name` and `Type`
|
|
62
|
+
|
|
63
|
+
Save: `CONNECTION_ID`.
|
|
64
|
+
|
|
65
|
+
`SyncState: "Fail"` on the chosen connection is **not** a reason to bail. Cached solutions / projects from the last successful sync are usually still usable. Only escalate to a sync if the data needed in Steps 4–5 is missing.
|
|
66
|
+
|
|
67
|
+
## Step 4 — Discover the source (solutions + standalone projects)
|
|
68
|
+
|
|
69
|
+
Both kinds of source live on the same connection. List both:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
uip aops connection solutions <CONNECTION_ID> --output json
|
|
73
|
+
uip aops connection projects <CONNECTION_ID> --output json
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Both paginate page-based (`--offset` must be a multiple of `--limit`). `solutions` defaults to 20 per page, `projects` to 10. Raise `--limit` rather than paging when the user's org is small. `--search <term>` does a server-side substring filter on the name.
|
|
77
|
+
|
|
78
|
+
### `connection solutions` response
|
|
79
|
+
|
|
80
|
+
`Data.Result[]` — paged with a singular `Result` key. Each row is a `SolutionDto`:
|
|
81
|
+
|
|
82
|
+
```json
|
|
83
|
+
{
|
|
84
|
+
"Identifier": "<SOLUTION_SC_UUID>",
|
|
85
|
+
"ConnectionIdentifier": "<CONNECTION_ID>",
|
|
86
|
+
"Name": "<my-solution>",
|
|
87
|
+
"Path": "Solutions/<my-solution>.uipx",
|
|
88
|
+
"Version": "1.0.0",
|
|
89
|
+
"SolutionId": "…",
|
|
90
|
+
"LastUpdated": "<iso-timestamp>",
|
|
91
|
+
"Repository": {
|
|
92
|
+
"Identifier": "<REPOSITORY_SC_UUID>",
|
|
93
|
+
"Name": "<my-repo>",
|
|
94
|
+
"CloneUrl": "https://github.com/<my-org>/<my-repo>.git",
|
|
95
|
+
"DefaultBranch": "main"
|
|
96
|
+
},
|
|
97
|
+
"Projects": [
|
|
98
|
+
{ "ProjectId": "<PROJECT_ID>", "Type": "Process", "ProjectRelativePath": "<process-dir>/project.json" },
|
|
99
|
+
{ "ProjectId": "…", "Type": "Library", "ProjectRelativePath": "<library-dir>/project.json" }
|
|
100
|
+
]
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Carries the full `Repository` and the full project list with `ProjectRelativePath`. The embedded `Repository` does not carry `RemoteId` — Step 5a recovers it.
|
|
105
|
+
|
|
106
|
+
### `connection projects` response
|
|
107
|
+
|
|
108
|
+
`Data[]` — curated 5-column rows:
|
|
109
|
+
|
|
110
|
+
```json
|
|
111
|
+
{
|
|
112
|
+
"ProjectId": "<PROJECT_SC_UUID>",
|
|
113
|
+
"Name": "<my-project>",
|
|
114
|
+
"Description": "",
|
|
115
|
+
"Type": "Process",
|
|
116
|
+
"Repository": "<my-repo>"
|
|
117
|
+
}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
The curated view drops the full RepositoryDto and the project file's path. Step 5b recovers both. A project nested in a Solution can also appear here — the same project reached either way, with distinct ids (SourceControl project UUID vs the Studio `ProjectId` inside the Solution).
|
|
121
|
+
|
|
122
|
+
Server-side filters available: `--repository-ids <csv>`, `--project-type <type>`, `--target-framework <name>`, `--search <term>`, `--sort-by <field>` + `--sort-order <asc|desc>`. Azure connections additionally take `--azure-projects-ids <csv>` and `--organization-identifier <name>`.
|
|
123
|
+
|
|
124
|
+
### Decision
|
|
125
|
+
|
|
126
|
+
- **User named a Solution** → Step 5a
|
|
127
|
+
- **User named a name appearing only in `connection projects`** → Step 5b
|
|
128
|
+
- **User named a name appearing in both** → ask the user which kind of source they want
|
|
129
|
+
- **No user hint** → present a combined list (label each "Solution" or "Standalone project") and ask the user
|
|
130
|
+
- **Both responses empty** → no source visible to this connection. Check `uip aops connection state --connection <CONNECTION_ID> --output json` and offer `uip aops connection sync <CONNECTION_ID> --wait --output json`. If sync still yields nothing, the connection is empty or misconfigured
|
|
131
|
+
|
|
132
|
+
## Step 5a — Solution path: resolve source fields
|
|
133
|
+
|
|
134
|
+
The chosen `SolutionDto` carries most of what's needed, but its embedded `Repository` lacks `RemoteId`. One extra call:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
uip aops connection repos <CONNECTION_ID> --output json
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Find the row whose `Identifier` matches `solution.Repository.Identifier`. That row carries `RemoteId` (provider-native repo id).
|
|
141
|
+
|
|
142
|
+
List every entry in `solution.Projects[]`. `Type` values seen in practice: `Process`, `Library`, `TestCase`. **Do not filter by `Type`** — any project is eligible for source binding.
|
|
143
|
+
|
|
144
|
+
- **1 project** → use it
|
|
145
|
+
- **2+ projects** → ask the user, listing each `Type` and `ProjectRelativePath`
|
|
146
|
+
- **0 projects** → fail; tell the user to add a project to the Solution and re-sync the connection
|
|
147
|
+
|
|
148
|
+
Map fields:
|
|
149
|
+
|
|
150
|
+
| Variable | From |
|
|
151
|
+
|---|---|
|
|
152
|
+
| `REPOSITORY_ID` | matched repo's `RemoteId` (numeric for GitHub, UUID for Azure DevOps) — **NOT** `Identifier` |
|
|
153
|
+
| `REPOSITORY_URL` | `solution.Repository.CloneUrl` |
|
|
154
|
+
| `REPOSITORY_NAME` | `solution.Repository.Name` |
|
|
155
|
+
| `DEFAULT_BRANCH` | `solution.Repository.DefaultBranch` |
|
|
156
|
+
| `PROJECT_PATH` | `project.ProjectRelativePath` exactly |
|
|
157
|
+
| `PROJECT_NAME` | `""` (empty string — matches UI behavior) |
|
|
158
|
+
|
|
159
|
+
Skip to Step 6.
|
|
160
|
+
|
|
161
|
+
## Step 5b — Standalone-project path: resolve source fields
|
|
162
|
+
|
|
163
|
+
The curated views drop the data needed. Two calls fill the gaps:
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
uip aops connection repos <CONNECTION_ID> --output json
|
|
167
|
+
uip aops repo project-files <REPOSITORY_SC_UUID> --output json
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### `connection repos` — full RepositoryDtos
|
|
171
|
+
|
|
172
|
+
```json
|
|
173
|
+
[
|
|
174
|
+
{
|
|
175
|
+
"Identifier": "<REPOSITORY_SC_UUID>",
|
|
176
|
+
"Name": "<my-repo>",
|
|
177
|
+
"CloneUrl": "https://github.com/<my-org>/<my-repo>.git",
|
|
178
|
+
"RemoteId": "<provider-native-repo-id>",
|
|
179
|
+
"CommitSha": "<sha>",
|
|
180
|
+
"DefaultBranch": "main",
|
|
181
|
+
"AzureProject": null
|
|
182
|
+
}
|
|
183
|
+
]
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Find the row whose `Name` matches the project's `Repository` field. Take `Identifier` (for the next call), `RemoteId`, `CloneUrl`, `Name`, `DefaultBranch`.
|
|
187
|
+
|
|
188
|
+
Azure DevOps connections spanning several projects / organizations: narrow with `--azure-projects-ids <csv>` (ids from `uip aops connection azure-projects <CONNECTION_ID> --output json`) and `--organization-identifier <name>`.
|
|
189
|
+
|
|
190
|
+
### `repo project-files` — the project file's path in the repo
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
uip aops repo project-files <REPOSITORY_SC_UUID> --output json
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Takes the repository's **SourceControl UUID** (`Identifier`), NOT `RemoteId`. Returns one row per automation project file at the default branch's HEAD:
|
|
197
|
+
|
|
198
|
+
```json
|
|
199
|
+
[
|
|
200
|
+
{ "Name": "project.json", "Path": "project.json", "Type": "File", "BuildableUnitType": "Process" },
|
|
201
|
+
{ "Name": "project.json", "Path": "Libraries/Shared/project.json", "Type": "File", "BuildableUnitType": "Library" }
|
|
202
|
+
]
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
`Path` is `PROJECT_PATH`. Add `--reference <branch|tag|sha>` for a non-default branch.
|
|
206
|
+
|
|
207
|
+
- **1 row** → use its `Path`
|
|
208
|
+
- **2+ rows** → match against the project the user named; if still ambiguous, ask the user, listing each `Path` and `BuildableUnitType`
|
|
209
|
+
- **0 rows** → the repo has no automation project at that reference. Re-check the branch, or re-sync the connection
|
|
210
|
+
|
|
211
|
+
### `project get` — optional metadata confirmation
|
|
212
|
+
|
|
213
|
+
```bash
|
|
214
|
+
uip aops project get --project-id <PROJECT_ID> --output json
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
```json
|
|
218
|
+
{
|
|
219
|
+
"Identifier": "<PROJECT_SC_UUID>",
|
|
220
|
+
"Name": "<my-project>",
|
|
221
|
+
"ConnectionIdentifier": "<CONNECTION_ID>",
|
|
222
|
+
"ProjectVersion": "1.0.0",
|
|
223
|
+
"Type": "Process",
|
|
224
|
+
"TargetFramework": "Portable",
|
|
225
|
+
"ExpressionLanguage": "CSharp",
|
|
226
|
+
"Repository": "<my-repo>",
|
|
227
|
+
"DefaultBranch": "main"
|
|
228
|
+
}
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
Confirms `Name`, `Type`, and `DefaultBranch`. `Repository` is a flattened name string — do not use it for any identifier. Optional flags: `--reference <ref>` to read the project at a non-default branch, `--with-branches` to add `AvailableBranches` (one extra round-trip).
|
|
232
|
+
|
|
233
|
+
Map fields:
|
|
234
|
+
|
|
235
|
+
| Variable | From |
|
|
236
|
+
|---|---|
|
|
237
|
+
| `REPOSITORY_ID` | matched repo's `RemoteId` — **NOT** `Identifier` |
|
|
238
|
+
| `REPOSITORY_URL` | matched repo's `CloneUrl` |
|
|
239
|
+
| `REPOSITORY_NAME` | matched repo's `Name` |
|
|
240
|
+
| `DEFAULT_BRANCH` | matched repo's `DefaultBranch` (agrees with `project get`'s `DefaultBranch`) |
|
|
241
|
+
| `PROJECT_NAME` | `""` (empty string — matches UI behavior) |
|
|
242
|
+
| `PROJECT_PATH` | `repo project-files` row's `Path` |
|
|
243
|
+
|
|
244
|
+
### Why `RemoteId` not `Identifier`?
|
|
245
|
+
|
|
246
|
+
`Identifier` is SourceControl's internal UUID. `RemoteId` is the provider's own repo id (numeric for GitHub, UUID for Azure DevOps). StudioAdmin's pipeline runtime resolves the repository via the provider's native id, not via the SourceControl index. Sending `Identifier` lets `pipeline create` return `Success`, but the resulting pipeline can't resolve its source — the UI flags it "connection no longer valid" even when the connection is healthy. Diff a UI-created pipeline's `repositoryId` against the `RemoteId` field of `connection repos` to confirm.
|
|
247
|
+
|
|
248
|
+
## Step 6 — Pick the already-published Orchestrator process
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
uip aops pipeline processes --output json
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
Row shape: `{ProcessId, Name, Description, Package, Version}`. This is the catalog of processes already deployed in Orchestrator — independent of any Studio project.
|
|
255
|
+
|
|
256
|
+
- **User named a process by `Name` or `Package`** → exact-match (case-insensitive). If 2+ rows share that `Name` / `Package` (different versions), prefer the highest semver `Version` and confirm with the user before picking.
|
|
257
|
+
- **No user name** → ask the user, listing each candidate's `Name`, `Package`, and `Version`.
|
|
258
|
+
|
|
259
|
+
Save: `PROCESS_ID`.
|
|
260
|
+
|
|
261
|
+
> The process is independent of the source project. A pipeline that builds project X can run process Y even when Y's source comes from a different repo. Do NOT auto-match.
|
|
262
|
+
|
|
263
|
+
## Step 7 — Inspect process arguments
|
|
264
|
+
|
|
265
|
+
```bash
|
|
266
|
+
uip aops pipeline process <PROCESS_ID> --output json
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
Read `Data.Arguments` (declared parameter schema) and `Data.InputArguments` (JSON-encoded string of default values). See [pipeline-dto-guide.md § arguments](pipeline-dto-guide.md#arguments) for the full inspect / infer / ask workflow.
|
|
270
|
+
|
|
271
|
+
If `pipeline process` errors or returns no arguments, fall back to `arguments: null` on the DTO — the pipeline will use whatever defaults the process declares server-side.
|
|
272
|
+
|
|
273
|
+
An unknown process id answers `Process <id> not found.` with exit 1 — re-run `pipeline processes` rather than retrying.
|
|
274
|
+
|
|
275
|
+
## Step 8 — (Optional) Verify a non-default branch exists
|
|
276
|
+
|
|
277
|
+
```bash
|
|
278
|
+
uip aops repo branches <REPOSITORY_SC_UUID> --output json
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
Rows are `{Name, Main}`. Takes the repository's SourceControl UUID. Skip this when using `DEFAULT_BRANCH` — that field is server-resolved and always exists. Only verify when the user named a specific branch.
|
|
282
|
+
|
|
283
|
+
## Output — identifiers needed for the PipelineDto
|
|
284
|
+
|
|
285
|
+
| Field on PipelineDto (camelCase) | Variable | Source |
|
|
286
|
+
|---|---|---|
|
|
287
|
+
| `connectionIdentifier` | `CONNECTION_ID` | Step 3 (`connection list` → `Identifier`) |
|
|
288
|
+
| `repositoryId` | `REPOSITORY_ID` | Step 5a / 5b — **`RemoteId`** (provider-native), NOT `Identifier` |
|
|
289
|
+
| `repositoryName` | `REPOSITORY_NAME` | Step 5a / 5b |
|
|
290
|
+
| `repositoryUrl` | `REPOSITORY_URL` | Step 5a / 5b |
|
|
291
|
+
| `repositoryType` | `"git"` | Server-normalized; safe to hard-code |
|
|
292
|
+
| `branch` | `DEFAULT_BRANCH` (or user-named) | Step 5a / 5b |
|
|
293
|
+
| `projectName` | `""` | Empty string — matches UI behavior |
|
|
294
|
+
| `projectPath` | `PROJECT_PATH` | Step 5a (`ProjectRelativePath`) / Step 5b (`repo project-files` → `Path`) |
|
|
295
|
+
| `processIdentifier` | `PROCESS_ID` | Step 6 |
|
|
296
|
+
| `arguments` | `PIPELINE_ARGUMENTS` or `null` | Step 7 |
|
|
297
|
+
|
|
298
|
+
Proceed to [pipeline-dto-guide.md](pipeline-dto-guide.md) for field-by-field composition.
|
|
299
|
+
|
|
300
|
+
## Error handling
|
|
301
|
+
|
|
302
|
+
| Failure | Recovery |
|
|
303
|
+
|---|---|
|
|
304
|
+
| `Unknown tool '@uipath/aops-tool'` | CLI registry index is stale — `uip update`, then retry. Do not fall back to `uip sc` / `uip cicd` | <!-- uip-check-skip -->
|
|
305
|
+
| `connection list` returns 0 rows | Connections are UI-only — direct the user to the StudioAdmin web app to create one |
|
|
306
|
+
| `connection solutions` AND `connection projects` both empty | Check `connection state --connection <id>`; offer `connection sync <id> --wait`. If sync still yields nothing, the connection is empty / misconfigured |
|
|
307
|
+
| `--offset (N) must be a multiple of --limit (M)` | Client-side pagination guard. Use offsets of 0, M, 2M, … |
|
|
308
|
+
| `project get` 404s / `Project <id> not found.` | Project UUID stale — re-run `connection projects` (or re-sync) and pick again |
|
|
309
|
+
| `repo project-files` returns 0 rows | Wrong `--reference`, or the repo holds no automation project. Verify with `repo branches` |
|
|
310
|
+
| `pipeline processes` returns 0 candidates | No process is published in the active runtime environment. Direct the user to publish one first (`uip solution publish` — see `uipath-platform`) and re-run |
|
|
311
|
+
| `Not logged in.` on any verb | `uip login` and retry once |
|
|
312
|
+
| Failure naming the StudioAdmin SourceControl / CICD service | The organization lacks the service, or no runtime environment is selected. Both are fixed in the StudioAdmin UI — report to the user, do not retry |
|