@uipath/skills 1.196.0 → 1.197.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +5 -2
- package/CODEOWNERS +22 -7
- package/README.md +14 -1
- package/assets/skill-status.json +14 -1
- package/assets/uip-catalog-snapshot.json +13 -2
- package/hooks/hooks.json +12 -0
- package/hooks/send-telemetry.sh +445 -0
- package/hooks/suggest-permissions.sh +6 -0
- package/package.json +1 -1
- package/skills/uipath-admin/SKILL.md +24 -4
- package/skills/uipath-admin/references/audit-commands.md +25 -21
- package/skills/uipath-admin/references/audit-workflow-guide.md +26 -25
- package/skills/uipath-admin/references/diagnose/CAPABILITY.md +74 -0
- package/skills/uipath-admin/references/diagnose/references/failure-modes.md +228 -0
- package/skills/uipath-admin/references/diagnose/references/troubleshooting-guide.md +106 -0
- package/skills/uipath-admin/references/identity-troubleshoot-guide.md +251 -0
- package/skills/uipath-agents/SKILL.md +12 -8
- package/skills/uipath-agents/references/coded/capabilities/context-grounding.md +2 -0
- package/skills/uipath-agents/references/coded/capabilities/conversational-agents.md +2 -0
- package/skills/uipath-agents/references/coded/capabilities/guardrails/guardrails-recommend.md +12 -7
- package/skills/uipath-agents/references/coded/capabilities/guardrails/guardrails.md +141 -1
- package/skills/uipath-agents/references/coded/capabilities/human-in-the-loop.md +2 -0
- package/skills/uipath-agents/references/coded/capabilities/integration-service.md +19 -33
- package/skills/uipath-agents/references/coded/lifecycle/bindings-reference.md +54 -22
- package/skills/uipath-agents/references/coded/lifecycle/build.md +1 -0
- package/skills/uipath-agents/references/coded/lifecycle/evaluations/evaluation-sets.md +5 -1
- package/skills/uipath-agents/references/coded/lifecycle/setup.md +3 -1
- package/skills/uipath-agents/references/coded/quickstart.md +11 -10
- package/skills/uipath-agents/references/coded-vs-lowcode-guide.md +1 -0
- package/skills/uipath-agents/references/context-grounding-patterns.md +1 -1
- package/skills/uipath-agents/references/lowcode/agent-definition.md +97 -12
- package/skills/uipath-agents/references/lowcode/capabilities/built-in-tools/analyze-attachments.md +2 -2
- package/skills/uipath-agents/references/lowcode/capabilities/built-in-tools/batch-transform/impl-json.md +40 -14
- package/skills/uipath-agents/references/lowcode/capabilities/built-in-tools/built-in-tools.md +4 -3
- package/skills/uipath-agents/references/lowcode/capabilities/built-in-tools/deeprag/impl-json.md +38 -6
- package/skills/uipath-agents/references/lowcode/capabilities/context/attachments.md +1 -1
- package/skills/uipath-agents/references/lowcode/capabilities/context/context.md +1 -1
- package/skills/uipath-agents/references/lowcode/capabilities/context/datafabric.md +1 -1
- package/skills/uipath-agents/references/lowcode/capabilities/context/index.md +7 -3
- package/skills/uipath-agents/references/lowcode/capabilities/escalation/escalation.md +49 -38
- package/skills/uipath-agents/references/lowcode/capabilities/guardrails/guardrails-recommend.md +3 -1
- package/skills/uipath-agents/references/lowcode/capabilities/guardrails/guardrails.md +49 -49
- package/skills/uipath-agents/references/lowcode/capabilities/inline-in-flow/inline-in-flow.md +34 -14
- package/skills/uipath-agents/references/lowcode/capabilities/integration-service/integration-service.md +1 -1
- package/skills/uipath-agents/references/lowcode/capabilities/memory/memory.md +2 -0
- package/skills/uipath-agents/references/lowcode/capabilities/process/process.md +2 -2
- package/skills/uipath-agents/references/lowcode/capabilities/process/solution-files.md +1 -1
- package/skills/uipath-agents/references/lowcode/critical-rules/autonomous-critical-rules.md +15 -0
- package/skills/uipath-agents/references/lowcode/critical-rules/conversational-critical-rules.md +19 -0
- package/skills/uipath-agents/references/lowcode/{critical-rules.md → critical-rules/critical-rules.md} +25 -27
- package/skills/uipath-agents/references/lowcode/debug.md +6 -3
- package/skills/uipath-agents/references/lowcode/evaluations/evaluate.md +2 -0
- package/skills/uipath-agents/references/lowcode/lowcode.md +29 -6
- package/skills/uipath-agents/references/lowcode/model-selection-guide.md +4 -1
- package/skills/uipath-agents/references/lowcode/project-lifecycle.md +20 -8
- package/skills/uipath-agents/references/lowcode/prompting/agent-prompting-guide.md +17 -0
- package/skills/uipath-agents/references/lowcode/{agent-prompting-guide.md → prompting/autonomous-agent-prompting-guide.md} +9 -11
- package/skills/uipath-agents/references/lowcode/prompting/conversational-agent-prompting-guide.md +123 -0
- package/skills/uipath-agents/references/lowcode/solution-resources.md +1 -1
- package/skills/uipath-api-workflow/SKILL.md +32 -12
- package/skills/uipath-api-workflow/references/cli-reference.md +110 -22
- package/skills/uipath-api-workflow/references/connector-activity-discovery.md +43 -4
- package/skills/uipath-api-workflow/references/troubleshooting.md +23 -7
- package/skills/uipath-api-workflow/references/workflow-file-format.md +25 -7
- package/skills/uipath-coded-apps/SKILL.md +55 -12
- package/skills/uipath-coded-apps/assets/fixtures/governance-dashboard-starter-kit.tar.gz +0 -0
- package/skills/uipath-coded-apps/assets/scripts/dashboards/build-dashboard.mjs +1371 -0
- package/skills/uipath-coded-apps/assets/scripts/dashboards/capability-registry.json +845 -0
- package/skills/uipath-coded-apps/assets/scripts/dashboards/flows/build.mjs +338 -0
- package/skills/uipath-coded-apps/assets/scripts/dashboards/flows/edit.mjs +248 -0
- package/skills/uipath-coded-apps/assets/scripts/dashboards/flows/template.mjs +82 -0
- package/skills/uipath-coded-apps/assets/scripts/dashboards/flows/upgrade.mjs +73 -0
- package/skills/uipath-coded-apps/assets/scripts/dashboards/lifecycle.mjs +207 -0
- package/skills/uipath-coded-apps/assets/scripts/dashboards/setup-admin-folder.mjs +146 -0
- package/skills/uipath-coded-apps/assets/scripts/dashboards/tests/regime-eject.test.mjs +124 -0
- package/skills/uipath-coded-apps/assets/scripts/dashboards/tests/resolution.test.mjs +1635 -0
- package/skills/uipath-coded-apps/assets/templates/action-app/app-template.css +9 -0
- package/skills/uipath-coded-apps/assets/templates/action-app/document-tab-template.css +139 -0
- package/skills/uipath-coded-apps/assets/templates/action-app/form-template.css +442 -0
- package/skills/uipath-coded-apps/assets/templates/action-app/index-template.css +111 -0
- package/skills/uipath-coded-apps/assets/templates/action-app-template.md +357 -152
- package/skills/uipath-coded-apps/assets/templates/web-app-template.md +255 -78
- package/skills/uipath-coded-apps/references/create-action-app.md +284 -195
- package/skills/uipath-coded-apps/references/create-web-app.md +64 -26
- package/skills/uipath-coded-apps/references/dashboards/CAPABILITY.md +179 -0
- package/skills/uipath-coded-apps/references/dashboards/aesthetic/charting.md +138 -0
- package/skills/uipath-coded-apps/references/dashboards/aesthetic/layout-patterns.md +152 -0
- package/skills/uipath-coded-apps/references/dashboards/plugins/build/impl.md +423 -0
- package/skills/uipath-coded-apps/references/dashboards/plugins/deploy/impl.md +322 -0
- package/skills/uipath-coded-apps/references/dashboards/primitives/customization.md +66 -0
- package/skills/uipath-coded-apps/references/dashboards/primitives/detail-views.md +64 -0
- package/skills/uipath-coded-apps/references/dashboards/primitives/incremental-editor.md +92 -0
- package/skills/uipath-coded-apps/references/dashboards/primitives/state-file.md +64 -0
- package/skills/uipath-coded-apps/references/dashboards/primitives/tier-resolution.md +474 -0
- package/skills/uipath-coded-apps/references/debug.md +15 -21
- package/skills/uipath-coded-apps/references/oauth-client-setup.md +5 -5
- package/skills/uipath-coded-apps/references/oauth-scopes.md +64 -2
- package/skills/uipath-coded-apps/references/pack-publish-deploy.md +12 -5
- package/skills/uipath-coded-apps/references/patterns.md +10 -5
- package/skills/uipath-coded-apps/references/sdk/action-center.md +32 -6
- package/skills/uipath-coded-apps/references/sdk/agents.md +241 -0
- package/skills/uipath-coded-apps/references/sdk/governance-traces.md +186 -0
- package/skills/uipath-coded-apps/references/sdk/governance.md +72 -0
- package/skills/uipath-coded-apps/references/sdk/imports.md +4 -0
- package/skills/uipath-coded-apps/references/sdk/maestro.md +114 -0
- package/skills/uipath-coded-apps/references/sdk/orchestrator.md +80 -4
- package/skills/uipath-coded-apps/references/sdk/pagination.md +2 -0
- package/skills/uipath-coded-apps/references/sdk/traces.md +89 -0
- package/skills/uipath-coded-apps/references/widgets/validation-station.md +308 -0
- package/skills/uipath-coded-apps/scripts/validate-action-schema.js +241 -0
- package/skills/uipath-connector-builder/SKILL.md +192 -0
- package/skills/uipath-connector-builder/references/auth.md +171 -0
- package/skills/uipath-connector-builder/references/configuration.md +130 -0
- package/skills/uipath-connector-builder/references/debugging.md +80 -0
- package/skills/uipath-connector-builder/references/element-json.md +148 -0
- package/skills/uipath-connector-builder/references/events.md +132 -0
- package/skills/uipath-connector-builder/references/hooks.md +198 -0
- package/skills/uipath-connector-builder/references/overview.md +78 -0
- package/skills/uipath-connector-builder/references/standard-resources.md +111 -0
- package/skills/uipath-connector-builder/references/system-resources.md +85 -0
- package/skills/uipath-feedback/SKILL.md +43 -29
- package/skills/{uipath-agents/references/coded/frameworks/coded-functions.md → uipath-functions/SKILL.md} +36 -23
- package/skills/uipath-governance/SKILL.md +49 -8
- package/skills/uipath-governance/references/aops-policy/aops-policy-commands.md +10 -10
- package/skills/uipath-governance/references/aops-policy/aops-policy-deploy-guide.md +7 -7
- package/skills/uipath-governance/references/auth-context.md +101 -0
- package/skills/uipath-governance/references/cli-cheatsheet.md +207 -0
- package/skills/uipath-governance/references/compliance-pack/catalog/impl.md +79 -0
- package/skills/uipath-governance/references/compliance-pack/coverage/impl.md +141 -0
- package/skills/uipath-governance/references/compliance-pack/disable/impl.md +39 -0
- package/skills/uipath-governance/references/compliance-pack/full-apply/impl.md +164 -0
- package/skills/uipath-governance/references/compliance-pack/partial-apply/impl.md +266 -0
- package/skills/uipath-governance/references/compliance-pack/partial-apply/merge-overrides-guide.md +28 -0
- package/skills/uipath-governance/references/compliance-pack/partial-apply/planning.md +82 -0
- package/skills/uipath-governance/references/compliance-pack/partial-apply/synthesize-formdata-guide.md +22 -0
- package/skills/uipath-governance/references/compliance-pack/preview-gate.md +43 -0
- package/skills/uipath-governance/references/compliance-pack/query/impl.md +75 -0
- package/skills/uipath-governance/references/diagnose/CAPABILITY.md +71 -0
- package/skills/uipath-governance/references/diagnose/references/failure-modes.md +201 -0
- package/skills/uipath-governance/references/diagnose/references/troubleshooting-guide.md +137 -0
- package/skills/uipath-governance/references/disambiguation-guide.md +15 -0
- package/skills/uipath-governance/scripts/merge-overrides.mjs +81 -0
- package/skills/uipath-governance/scripts/synthesize-formdata.mjs +86 -0
- package/skills/uipath-human-in-the-loop/SKILL.md +30 -25
- package/skills/uipath-human-in-the-loop/references/hitl-node-apptask.md +38 -4
- package/skills/uipath-human-in-the-loop/references/hitl-node-coded-action-app.md +2 -3
- package/skills/uipath-human-in-the-loop/references/hitl-node-quickform.md +92 -34
- package/skills/uipath-ixp/SKILL.md +120 -0
- package/skills/uipath-ixp/references/cli-reference.md +121 -0
- package/skills/uipath-ixp/references/improve-prompts-guide.md +283 -0
- package/skills/uipath-ixp/references/label-documents-guide.md +207 -0
- package/skills/uipath-ixp/references/project-setup-guide.md +90 -0
- package/skills/uipath-maestro-bpmn/SKILL.md +167 -68
- package/skills/uipath-maestro-bpmn/references/cli-conventions.md +47 -0
- package/skills/uipath-maestro-bpmn/references/diagnose/CAPABILITY.md +6 -6
- package/skills/uipath-maestro-bpmn/references/operate/CAPABILITY.md +3 -3
- package/skills/uipath-maestro-bpmn/references/registry-workflow.md +199 -0
- package/skills/uipath-maestro-bpmn/references/structural-bpmn.md +500 -0
- package/skills/uipath-maestro-bpmn/validator/README.md +214 -0
- package/skills/uipath-maestro-bpmn/validator/bpmn-spec.json +2477 -0
- package/skills/uipath-maestro-bpmn/validator/model.mjs +419 -0
- package/skills/uipath-maestro-bpmn/validator/package.json +17 -0
- package/skills/uipath-maestro-bpmn/validator/rules.mjs +1403 -0
- package/skills/uipath-maestro-bpmn/validator/samples/invalid-conditional-and-variable.bpmn +25 -0
- package/skills/uipath-maestro-bpmn/validator/samples/valid-baseline.bpmn +52 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/A.2.0.bpmn +157 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/A.2.1.bpmn +333 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/B.1.0.bpmn +598 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/B.2.0.bpmn +1709 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.2.0.bpmn +564 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.3.0.bpmn +671 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.4.0.bpmn +1045 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.5.0.bpmn +1176 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.6.0.bpmn +670 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.7.0.bpmn +466 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Can_Parse_Complex_Process_With_Task_Gateway_BoundaryEvent_etc.bpmn +74 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/ExclusiveGatewayDefaultFlow.bpmn +32 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/ExternalAgentWorkflow.bpmn +62 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Golden_Scenario.initial.bpmn +361 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/InclusiveJoinRouteAwayBranch.bpmn +62 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_AsyncExecution_And_Create_CorrectModel.bpmn +74 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_IXP_ExtractionValidation_And_Create_CorrectModel.bpmn +35 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_IXP_Extraction_FileUpload_And_Create_CorrectModel.bpmn +33 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_IXP_Extraction_JobAttachment_And_Create_CorrectModel.bpmn +35 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_SubProcess_With_Multiple_Element_Types.bpmn +76 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/StartEventWithOutputs.bpmn +36 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/StartGatewayEnd.bpmn +44 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/all elements.bpmn +516 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/all_sequence_flow_types.bpmn +173 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/demo.bpmn +181 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/subprocess-example-001-collapsed.bpmn +126 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/subprocess-example-001-expanded.bpmn +122 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/subprocess-example-003-collapsed_deeply-nested.bpmn +438 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/A.1.0.bpmn +87 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/A.3.0.bpmn +165 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ApiWorkflow.bpmn +39 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnNestedSubProcessTests.bpmn +102 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnTimerBoundaryEvents.bpmn +160 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnXmlWithCatchAllErrorEventSubProcess.bpmn +45 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnXmlWithSpecificErrorEventSubProcess.bpmn +46 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/CaseManagementWithConstantIdentifier.bpmn +218 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ErrorBoundary.bpmn +78 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ErrorPropagationInEventSubprocess.bpmn +340 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/EventBasedGatewayFirstCatcherWins.bpmn +56 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Example-EventBasedGateway.bpmn +117 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ExclusiveGatewayConditional.bpmn +45 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ExclusiveGatewaySharedEndEvent.bpmn +45 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ExclusiveWithParallelGateway.bpmn +68 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/FourScriptTasks.bpmn +84 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/HitlTaskOnly.bpmn +55 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/InclusiveGatewayForkJoin.bpmn +69 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_BPMN_Elements_And_Create_CorrectModel.bpmn +20 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_HttpRequest_ServiceTask_And_Create_Correct_Model.bpmn +34 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_MessageBoundaryEvent_And_Create_CorrectModel.bpmn +87 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_Script_Task_V2_And_Create_Correct_Model.bpmn +31 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_Sets_Containers_Properly.bpmn +129 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ScriptWritesVariableThenGatewayBranches.bpmn +55 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/boundaryevent.bpmn +30 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/collapsed-subprocess.bpmn +83 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/connectable-types.bpmn +85 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/extensions-orchestrator-start-job.bpmn +80 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/multiparticipantpool.bpmn +77 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/nestedsubprocess.bpmn +36 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/simple.bpmn +59 -0
- package/skills/uipath-maestro-bpmn/validator/test/integration.test.mjs +146 -0
- package/skills/uipath-maestro-bpmn/validator/test/model-helpers.mjs +42 -0
- package/skills/uipath-maestro-bpmn/validator/test/ported-rule-tests.mjs +983 -0
- package/skills/uipath-maestro-bpmn/validator/test/run-tests.mjs +530 -0
- package/skills/uipath-maestro-bpmn/validator/uipath-moddle.v1.json +715 -0
- package/skills/uipath-maestro-bpmn/validator/validate-bpmn.mjs +164 -0
- package/skills/uipath-maestro-case/SKILL.md +5 -1
- package/skills/uipath-maestro-case/assets/templates/sdd-template-examples.md +10 -0
- package/skills/uipath-maestro-case/assets/templates/sdd-template.md +89 -17
- package/skills/uipath-maestro-case/references/bindings-and-expressions.md +26 -0
- package/skills/uipath-maestro-case/references/case-editing-operations.md +3 -0
- package/skills/uipath-maestro-case/references/implementation.md +11 -4
- package/skills/uipath-maestro-case/references/phase-0-interview.md +8 -7
- package/skills/uipath-maestro-case/references/phased-execution.md +2 -1
- package/skills/uipath-maestro-case/references/plugins/conditions/stage-exit-conditions/impl-json.md +21 -0
- package/skills/uipath-maestro-case/references/plugins/conditions/stage-exit-conditions/planning.md +2 -0
- package/skills/uipath-maestro-case/references/plugins/variables/global-vars/impl-json.md +15 -9
- package/skills/uipath-maestro-case/references/plugins/variables/io-binding/impl-json.md +131 -4
- package/skills/uipath-maestro-case/references/sdd-generation-rules.md +94 -17
- package/skills/uipath-maestro-flow/references/author/CAPABILITY.md +1 -1
- package/skills/uipath-maestro-flow/references/author/references/planning-arch.md +2 -2
- package/skills/uipath-maestro-flow/references/author/references/plugins/hitl/impl.md +11 -11
- package/skills/uipath-maestro-flow/references/author/references/plugins/hitl/planning.md +6 -6
- package/skills/uipath-maestro-flow/references/author/references/plugins/http/impl-connector.md +4 -1
- package/skills/uipath-maestro-flow/references/author/references/plugins/inline-agent/impl.md +157 -122
- package/skills/uipath-maestro-flow/references/author/references/plugins/inline-agent/planning.md +16 -4
- package/skills/uipath-maestro-flow/references/evaluate/references/commands-reference.md +8 -8
- package/skills/uipath-maestro-flow/references/evaluate/references/running-guide.md +3 -3
- package/skills/uipath-maestro-flow/references/shared/cli-commands.md +1 -1
- package/skills/uipath-planner/SKILL.md +19 -8
- package/skills/uipath-planner/assets/templates/agent-sdd-template.md +14 -0
- package/skills/uipath-planner/assets/templates/api-workflow-sdd-template.md +14 -0
- package/skills/uipath-planner/assets/templates/case-sdd-template.md +14 -0
- package/skills/uipath-planner/assets/templates/coded-app-sdd-template.md +14 -0
- package/skills/uipath-planner/assets/templates/flow-sdd-template.md +14 -0
- package/skills/uipath-planner/assets/templates/rpa-sdd-template.md +40 -5
- package/skills/uipath-planner/references/asdd-crosswalk-guide.md +55 -0
- package/skills/uipath-planner/references/attended-reauth-pattern-guide.md +43 -0
- package/skills/uipath-planner/references/multi-skill-patterns-guide.md +4 -0
- package/skills/uipath-planner/references/non-pdd-lane-guide.md +2 -0
- package/skills/uipath-planner/references/pdd-analysis-guide.md +24 -1
- package/skills/uipath-planner/references/pdd-driven-lane-guide.md +6 -2
- package/skills/uipath-planner/references/plan-and-tasks-format.md +2 -0
- package/skills/uipath-planner/references/platform-availability-guide.md +43 -0
- package/skills/uipath-planner/references/product-selection-guide.md +20 -0
- package/skills/uipath-planner/references/sdd-generation-guide.md +90 -21
- package/skills/uipath-planner/references/tenant-library-search-guide.md +5 -1
- package/skills/uipath-planner/scripts/docx-extract.sh +54 -0
- package/skills/uipath-planner/scripts/sdd-to-docx.sh +76 -0
- package/skills/uipath-platform/SKILL.md +54 -7
- package/skills/uipath-platform/references/context-grounding/index-management.md +123 -0
- package/skills/uipath-platform/references/data-fabric/bulk-import.md +86 -0
- package/skills/{uipath-data-fabric/references → uipath-platform/references/data-fabric}/choice-sets.md +33 -12
- package/skills/uipath-platform/references/data-fabric/data-fabric.md +352 -0
- package/skills/uipath-platform/references/data-fabric/entity-schema.md +444 -0
- package/skills/uipath-platform/references/data-fabric/file-attachments.md +122 -0
- package/skills/{uipath-data-fabric/references → uipath-platform/references/data-fabric}/filter-platform-contract.md +3 -3
- package/skills/{uipath-data-fabric/references → uipath-platform/references/data-fabric}/records-query.md +46 -10
- package/skills/uipath-platform/references/integration-service/http-request.md +15 -1
- package/skills/uipath-platform/references/integration-service/vendor-docs-registry.json +173 -0
- package/skills/uipath-platform/references/uip-commands.md +12 -4
- package/skills/uipath-review/SKILL.md +53 -12
- package/skills/uipath-review/references/agents/agent-common-issues.md +1 -1
- package/skills/uipath-review/references/agents/agent-grading-rubric.md +133 -0
- package/skills/uipath-review/references/agents/agent-review-checklist.md +23 -3
- package/skills/uipath-review/references/agents/agents-coded-rules.md +7 -0
- package/skills/uipath-review/references/agents/agents-lowcode-rules.md +13 -3
- package/skills/uipath-review/references/agents/guardrails/guardrails-review.md +198 -0
- package/skills/uipath-review/references/architecture-assessment-guide.md +2 -0
- package/skills/uipath-review/references/review-workflow-guide.md +9 -5
- package/skills/uipath-review/references/rule-catalog-workflow.md +3 -3
- package/skills/uipath-rpa/SKILL.md +18 -6
- package/skills/uipath-rpa/references/cli-reference.md +57 -3
- package/skills/uipath-rpa/references/common-activity-card.md +1 -1
- package/skills/uipath-rpa/references/connector-capabilities.md +2 -0
- package/skills/uipath-rpa/references/data-manipulation-guide.md +311 -0
- package/skills/uipath-rpa/references/environment-setup.md +0 -2
- package/skills/uipath-rpa/references/error-handling-guide.md +381 -0
- package/skills/uipath-rpa/references/is-connector-xaml-guide.md +127 -11
- package/skills/uipath-rpa/references/reframework-guide.md +2 -0
- package/skills/uipath-rpa/references/testing-guide.md +19 -0
- package/skills/uipath-rpa/references/ui-automation-guide.md +129 -18
- package/skills/uipath-rpa/references/uia-configure-target-workflows.md +22 -1
- package/skills/uipath-rpa/references/uia-elements-interaction-guide.md +93 -0
- package/skills/uipath-rpa/references/xaml/canvas-layout-guide.md +41 -4
- package/skills/uipath-rpa/references/xaml/common-pitfalls.md +12 -3
- package/skills/uipath-rpa/references/xaml/flowchart-guide.md +113 -0
- package/skills/uipath-rpa/references/xaml/xaml-basics-and-rules.md +5 -9
- package/skills/uipath-solution/SKILL.md +11 -8
- package/skills/uipath-solution/references/pack-and-deploy.md +18 -1
- package/skills/uipath-solution/references/solution-overview.md +3 -0
- package/skills/uipath-test/SKILL.md +2 -1
- package/skills/uipath-troubleshoot/SKILL.md +24 -26
- package/skills/uipath-troubleshoot/agents/depth-verifier.md +24 -25
- package/skills/uipath-troubleshoot/agents/hypothesis-generator.md +8 -4
- package/skills/uipath-troubleshoot/agents/hypothesis-tester.md +85 -38
- package/skills/uipath-troubleshoot/agents/presenter.md +7 -7
- package/skills/uipath-troubleshoot/agents/scope-checker.md +3 -6
- package/skills/uipath-troubleshoot/agents/shared.md +26 -21
- package/skills/uipath-troubleshoot/agents/triage.md +117 -49
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/investigation_guide.md +43 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/overview.md +57 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-action-failed-after-find.md +100 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-cell-targeting-failures.md +111 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-element-not-found.md +125 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-get-text-empty-or-wrong-result.md +117 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-invalid-descriptor.md +102 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-scope-setup-failures.md +136 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-scroll-search-failures.md +114 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-server-auth-throttling-network.md +95 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-silent-failures-and-false-results.md +124 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/presentation.md +8 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/summary.md +15 -0
- package/skills/uipath-troubleshoot/references/activity-packages/database-activities/investigation_guide.md +42 -0
- package/skills/uipath-troubleshoot/references/activity-packages/database-activities/overview.md +41 -0
- package/skills/uipath-troubleshoot/references/activity-packages/database-activities/playbooks/connect-to-database-failures.md +104 -0
- package/skills/uipath-troubleshoot/references/activity-packages/database-activities/playbooks/execute-non-query-failures.md +97 -0
- package/skills/uipath-troubleshoot/references/activity-packages/database-activities/playbooks/execute-query-failures.md +134 -0
- package/skills/uipath-troubleshoot/references/activity-packages/database-activities/playbooks/start-transaction-failures.md +94 -0
- package/skills/uipath-troubleshoot/references/activity-packages/database-activities/presentation.md +10 -0
- package/skills/uipath-troubleshoot/references/activity-packages/database-activities/summary.md +10 -0
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/investigation_guide.md +27 -9
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/overview.md +51 -10
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/append-range-failures.md +146 -0
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/delete-range-failures.md +126 -0
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/excel-application-card-failures.md +139 -0
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/excel-application-scope-failures.md +118 -0
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/execute-macro-failures.md +149 -0
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/write-range-failures.md +145 -0
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/presentation.md +12 -7
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/summary.md +6 -0
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/investigation_guide.md +1 -0
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/overview.md +12 -4
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/playbooks/connection-and-auth-failures.md +55 -0
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/playbooks/drive-file-not-found.md +18 -10
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/playbooks/get-newest-email-not-found.md +9 -8
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/playbooks/invalid-or-null-input.md +68 -0
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/playbooks/transient-and-timeout-errors.md +52 -0
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/playbooks/upload-storage-quota-exceeded.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/summary.md +5 -2
- package/skills/uipath-troubleshoot/references/activity-packages/mail-activities/overview.md +28 -0
- package/skills/uipath-troubleshoot/references/activity-packages/mail-activities/playbooks/delete-outlook-mail-failures.md +105 -0
- package/skills/uipath-troubleshoot/references/activity-packages/mail-activities/playbooks/get-outlook-mail-failures.md +109 -0
- package/skills/uipath-troubleshoot/references/activity-packages/mail-activities/playbooks/move-outlook-mail-failures.md +97 -0
- package/skills/uipath-troubleshoot/references/activity-packages/mail-activities/playbooks/send-outlook-mail-failures.md +95 -0
- package/skills/uipath-troubleshoot/references/activity-packages/mail-activities/summary.md +8 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/investigation_guide.md +23 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/overview.md +9 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/application-scope-misconfigured.md +49 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/authentication-token-invalid.md +53 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/copy-item-argument-null.md +34 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/create-folder-invalid-path.md +36 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/download-file-conversion-or-destination.md +40 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/drive-item-not-found.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/email-trigger-connection-event-failure.md +45 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/insufficient-graph-scope.md +44 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/legacy-mail-null-reference.md +43 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/mail-folder-not-found.md +4 -3
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/mail-invalid-odata-query.md +43 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/mail-message-not-found.md +45 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/request-throttled.md +45 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/send-mail-rejected.md +52 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/transient-service-error.md +48 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/upload-file-quota-or-size.md +47 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/summary.md +15 -1
- package/skills/uipath-troubleshoot/references/activity-packages/python-activities/investigation_guide.md +32 -0
- package/skills/uipath-troubleshoot/references/activity-packages/python-activities/overview.md +38 -0
- package/skills/uipath-troubleshoot/references/activity-packages/python-activities/playbooks/invoke-method-failures.md +57 -0
- package/skills/uipath-troubleshoot/references/activity-packages/python-activities/playbooks/invoke-python-method-pipe-is-broken.md +44 -0
- package/skills/uipath-troubleshoot/references/activity-packages/python-activities/playbooks/load-script-failures.md +62 -0
- package/skills/uipath-troubleshoot/references/activity-packages/python-activities/playbooks/python-path-not-valid.md +39 -0
- package/skills/uipath-troubleshoot/references/activity-packages/python-activities/playbooks/python-scope-architecture-version-mismatch.md +41 -0
- package/skills/uipath-troubleshoot/references/activity-packages/python-activities/playbooks/working-folder-relative-path.md +34 -0
- package/skills/uipath-troubleshoot/references/activity-packages/python-activities/presentation.md +9 -0
- package/skills/uipath-troubleshoot/references/activity-packages/python-activities/summary.md +12 -0
- package/skills/uipath-troubleshoot/references/activity-packages/system-activities/playbooks/get-asset-activity-bug-silent-failure.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/system-activities/playbooks/get-asset-robot-not-authenticated.md +29 -22
- package/skills/uipath-troubleshoot/references/activity-packages/system-activities/summary.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/investigation_guide.md +30 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/overview.md +36 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/deserialize-malformed-input.md +36 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/deserialize-null-input.md +35 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/deserialize-type-mismatch.md +40 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/http-client-null-reference.md +34 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/http-request-connection-failure.md +48 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/http-request-timeout.md +40 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/net-http-request-aggregate-failure.md +38 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/summary.md +13 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/investigation_guide.md +55 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/overview.md +82 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/add-picture-failures.md +51 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/append-text-missing-container.md +31 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/append-text-zero-byte-file.md +32 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/export-pdf-com-hang.md +46 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/export-pdf-missing-output-dir.md +32 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/export-pdf-output-path-format.md +35 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/read-text-doc-format.md +30 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/read-text-missing-container.md +29 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/read-text-protected-view.md +32 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-com-busy.md +35 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-file-locked.md +33 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-headers-textboxes-skipped.md +30 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-length-limit.md +30 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-loop-template-overwrite.md +31 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-multiline-formatting.md +31 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-silent-no-substitution.md +32 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-version-mismatch.md +30 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-com-interop-failures.md +52 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-com-start-background-session0.md +50 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-export-pdf-com-wrong-thread.md +46 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-open-sharepoint-url-com-command-failed.md +45 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-scope-cannot-create-unknown-type.md +30 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-scope-com-not-installed.md +35 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-scope-file-corrupted.md +34 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-scope-file-path-not-found.md +36 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-scope-hangs-background-prompt.md +34 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/presentation.md +11 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/summary.md +38 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/investigation_guide.md +9 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/overview.md +7 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connection-invalid.md +9 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-aggregate-exception.md +30 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-general-exception.md +43 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-null-reference.md +36 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-remote-exception.md +31 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-runtime-exception.md +40 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/summary.md +5 -0
- package/skills/uipath-troubleshoot/references/products/maestro/investigation_guide.md +2 -1
- package/skills/uipath-troubleshoot/references/products/orchestrator/investigation_guide.md +105 -10
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/job-faulted-logon-failure.md +1 -1
- package/skills/uipath-troubleshoot/references/summary.md +59 -3
- package/skills/uipath-troubleshoot/schemas/evidence.schema.md +48 -0
- package/skills/uipath-troubleshoot/schemas/hypotheses.schema.md +22 -7
- package/skills/uipath-troubleshoot/schemas/scope-check.schema.md +1 -1
- package/skills/uipath-troubleshoot/schemas/state.schema.md +81 -6
- package/version-manifest.json +2 -2
- package/skills/uipath-data-fabric/SKILL.md +0 -239
- package/skills/uipath-data-fabric/references/bulk-import.md +0 -73
- package/skills/uipath-data-fabric/references/entity-schema.md +0 -391
- package/skills/uipath-data-fabric/references/file-attachments.md +0 -65
- package/skills/uipath-maestro-bpmn/.maintenance/README.md +0 -241
- package/skills/uipath-maestro-bpmn/.maintenance/check-all.sh +0 -41
- package/skills/uipath-maestro-bpmn/.maintenance/check-anchors.sh +0 -83
- package/skills/uipath-maestro-bpmn/.maintenance/check-depth.sh +0 -132
- package/skills/uipath-maestro-bpmn/.maintenance/check-link-text.sh +0 -123
- package/skills/uipath-maestro-bpmn/.maintenance/check-links.sh +0 -70
- package/skills/uipath-maestro-bpmn/.maintenance/check-orphans.sh +0 -93
- package/skills/uipath-maestro-bpmn/.maintenance/check-plugin-pairs.sh +0 -39
- package/skills/uipath-maestro-bpmn/.maintenance/check-real-pack.sh +0 -79
- package/skills/uipath-maestro-bpmn/.maintenance/check-template.sh +0 -42
- package/skills/uipath-maestro-bpmn/.maintenance/check-uip-commands.sh +0 -266
- package/skills/uipath-maestro-bpmn/.maintenance/check-validation-fixtures.py +0 -1255
- package/skills/uipath-maestro-bpmn/.maintenance/check-validation-fixtures.sh +0 -8
- package/skills/uipath-maestro-bpmn/fixtures/validation/README.md +0 -94
- package/skills/uipath-maestro-bpmn/fixtures/validation/agent-invocation/agent-invocation.bpmn +0 -62
- package/skills/uipath-maestro-bpmn/fixtures/validation/agent-invocation/bindings_v2.json +0 -37
- package/skills/uipath-maestro-bpmn/fixtures/validation/agent-invocation/entry-points.json +0 -21
- package/skills/uipath-maestro-bpmn/fixtures/validation/agent-invocation/operate.json +0 -9
- package/skills/uipath-maestro-bpmn/fixtures/validation/agent-invocation/package-descriptor.json +0 -10
- package/skills/uipath-maestro-bpmn/fixtures/validation/agent-invocation/project.uiproj +0 -7
- package/skills/uipath-maestro-bpmn/fixtures/validation/contract-variants/bindings_v2.json +0 -68
- package/skills/uipath-maestro-bpmn/fixtures/validation/contract-variants/contract-variants.bpmn +0 -270
- package/skills/uipath-maestro-bpmn/fixtures/validation/contract-variants/entry-points.json +0 -25
- package/skills/uipath-maestro-bpmn/fixtures/validation/contract-variants/operate.json +0 -9
- package/skills/uipath-maestro-bpmn/fixtures/validation/contract-variants/package-descriptor.json +0 -10
- package/skills/uipath-maestro-bpmn/fixtures/validation/contract-variants/project.uiproj +0 -7
- package/skills/uipath-maestro-bpmn/fixtures/validation/gateway-boundary-error/bindings_v2.json +0 -19
- package/skills/uipath-maestro-bpmn/fixtures/validation/gateway-boundary-error/entry-points.json +0 -25
- package/skills/uipath-maestro-bpmn/fixtures/validation/gateway-boundary-error/gateway-boundary-error.bpmn +0 -91
- package/skills/uipath-maestro-bpmn/fixtures/validation/gateway-boundary-error/operate.json +0 -9
- package/skills/uipath-maestro-bpmn/fixtures/validation/gateway-boundary-error/package-descriptor.json +0 -10
- package/skills/uipath-maestro-bpmn/fixtures/validation/gateway-boundary-error/project.uiproj +0 -7
- package/skills/uipath-maestro-bpmn/fixtures/validation/imported-brownfield-preservation/bindings_v2.json +0 -4
- package/skills/uipath-maestro-bpmn/fixtures/validation/imported-brownfield-preservation/entry-points.json +0 -25
- package/skills/uipath-maestro-bpmn/fixtures/validation/imported-brownfield-preservation/imported-brownfield-preservation.bpmn +0 -63
- package/skills/uipath-maestro-bpmn/fixtures/validation/imported-brownfield-preservation/operate.json +0 -9
- package/skills/uipath-maestro-bpmn/fixtures/validation/imported-brownfield-preservation/package-descriptor.json +0 -10
- package/skills/uipath-maestro-bpmn/fixtures/validation/imported-brownfield-preservation/project.uiproj +0 -7
- package/skills/uipath-maestro-bpmn/fixtures/validation/integration-service-enriched/bindings_v2.json +0 -52
- package/skills/uipath-maestro-bpmn/fixtures/validation/integration-service-enriched/entry-points.json +0 -21
- package/skills/uipath-maestro-bpmn/fixtures/validation/integration-service-enriched/integration-service-enriched.bpmn +0 -65
- package/skills/uipath-maestro-bpmn/fixtures/validation/integration-service-enriched/operate.json +0 -9
- package/skills/uipath-maestro-bpmn/fixtures/validation/integration-service-enriched/package-descriptor.json +0 -10
- package/skills/uipath-maestro-bpmn/fixtures/validation/integration-service-enriched/project.uiproj +0 -7
- package/skills/uipath-maestro-bpmn/fixtures/validation/linear-process/bindings_v2.json +0 -4
- package/skills/uipath-maestro-bpmn/fixtures/validation/linear-process/entry-points.json +0 -25
- package/skills/uipath-maestro-bpmn/fixtures/validation/linear-process/linear-process.bpmn +0 -55
- package/skills/uipath-maestro-bpmn/fixtures/validation/linear-process/operate.json +0 -9
- package/skills/uipath-maestro-bpmn/fixtures/validation/linear-process/package-descriptor.json +0 -10
- package/skills/uipath-maestro-bpmn/fixtures/validation/linear-process/project.uiproj +0 -7
- package/skills/uipath-maestro-bpmn/fixtures/validation/registry-coverage-matrix/bindings_v2.json +0 -20
- package/skills/uipath-maestro-bpmn/fixtures/validation/registry-coverage-matrix/entry-points.json +0 -17
- package/skills/uipath-maestro-bpmn/fixtures/validation/registry-coverage-matrix/operate.json +0 -9
- package/skills/uipath-maestro-bpmn/fixtures/validation/registry-coverage-matrix/package-descriptor.json +0 -10
- package/skills/uipath-maestro-bpmn/fixtures/validation/registry-coverage-matrix/project.uiproj +0 -7
- package/skills/uipath-maestro-bpmn/fixtures/validation/registry-coverage-matrix/registry-coverage-matrix.bpmn +0 -207
- package/skills/uipath-maestro-bpmn/fixtures/validation/subprocess-multi-instance/bindings_v2.json +0 -4
- package/skills/uipath-maestro-bpmn/fixtures/validation/subprocess-multi-instance/entry-points.json +0 -33
- package/skills/uipath-maestro-bpmn/fixtures/validation/subprocess-multi-instance/operate.json +0 -9
- package/skills/uipath-maestro-bpmn/fixtures/validation/subprocess-multi-instance/package-descriptor.json +0 -10
- package/skills/uipath-maestro-bpmn/fixtures/validation/subprocess-multi-instance/project.uiproj +0 -7
- package/skills/uipath-maestro-bpmn/fixtures/validation/subprocess-multi-instance/subprocess-multi-instance.bpmn +0 -94
- package/skills/uipath-maestro-bpmn/fixtures/validation/wrapper-family-contract/bindings_v2.json +0 -124
- package/skills/uipath-maestro-bpmn/fixtures/validation/wrapper-family-contract/entry-points.json +0 -25
- package/skills/uipath-maestro-bpmn/fixtures/validation/wrapper-family-contract/operate.json +0 -9
- package/skills/uipath-maestro-bpmn/fixtures/validation/wrapper-family-contract/package-descriptor.json +0 -10
- package/skills/uipath-maestro-bpmn/fixtures/validation/wrapper-family-contract/project.uiproj +0 -7
- package/skills/uipath-maestro-bpmn/fixtures/validation/wrapper-family-contract/wrapper-family-contract.bpmn +0 -151
- package/skills/uipath-maestro-bpmn/references/author/CAPABILITY.md +0 -141
- package/skills/uipath-maestro-bpmn/references/author/references/brownfield.md +0 -48
- package/skills/uipath-maestro-bpmn/references/author/references/editing-operations.md +0 -75
- package/skills/uipath-maestro-bpmn/references/author/references/greenfield.md +0 -41
- package/skills/uipath-maestro-bpmn/references/author/references/planning-arch.md +0 -82
- package/skills/uipath-maestro-bpmn/references/author/references/planning-impl.md +0 -104
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/agents/impl.md +0 -34
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/agents/planning.md +0 -38
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/api-workflows/impl.md +0 -37
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/api-workflows/planning.md +0 -28
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/business-rules/impl.md +0 -36
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/business-rules/planning.md +0 -29
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/call-activity-subprocess/impl.md +0 -67
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/call-activity-subprocess/planning.md +0 -29
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/connectors/impl.md +0 -29
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/connectors/planning.md +0 -33
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/gateways/impl.md +0 -32
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/gateways/planning.md +0 -34
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/hitl/impl.md +0 -42
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/hitl/planning.md +0 -30
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/integration-service/impl.md +0 -134
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/integration-service/planning.md +0 -67
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/multi-instance/impl.md +0 -50
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/multi-instance/planning.md +0 -29
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/queues/impl.md +0 -29
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/queues/planning.md +0 -29
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/rpa-jobs/impl.md +0 -35
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/rpa-jobs/planning.md +0 -29
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/script/impl.md +0 -118
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/script/planning.md +0 -30
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/sequence-flows/impl.md +0 -30
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/sequence-flows/planning.md +0 -30
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/service-tasks/impl.md +0 -33
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/service-tasks/planning.md +0 -31
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/signals/impl.md +0 -33
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/signals/planning.md +0 -46
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/start-end-events/impl.md +0 -59
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/start-end-events/planning.md +0 -37
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/waits-triggers/impl.md +0 -40
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/waits-triggers/planning.md +0 -34
- package/skills/uipath-maestro-bpmn/references/author/references/supported-elements.md +0 -123
- package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/README.md +0 -29
- package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/agent-job.md +0 -36
- package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/api-workflow.md +0 -29
- package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/business-rule.md +0 -18
- package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/call-activity.md +0 -56
- package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/hitl.md +0 -17
- package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/http-request.md +0 -119
- package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/queue.md +0 -21
- package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/rpa-job.md +0 -23
- package/skills/uipath-maestro-bpmn/references/author/references/validation.md +0 -118
- package/skills/uipath-maestro-bpmn/references/shared/bpmn-xml-contract.md +0 -197
- package/skills/uipath-maestro-bpmn/references/shared/cli-conventions.md +0 -46
- package/skills/uipath-maestro-bpmn/references/shared/error-handling.md +0 -82
- package/skills/uipath-maestro-bpmn/references/shared/variables-bindings-expressions.md +0 -150
- package/skills/uipath-maestro-bpmn/references/shared/wrapper-shells.md +0 -554
- /package/skills/uipath-maestro-bpmn/references/{shared/expression-authoring.md → expression-authoring.md} +0 -0
- /package/skills/uipath-maestro-bpmn/references/{shared/public-safety.md → public-safety.md} +0 -0
- /package/{agents → skills/uipath-rpa/agents}/uipath-project-discovery-agent.md +0 -0
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: uipath-connector-builder
|
|
3
|
+
description: "UiPath Integration Service connector authoring (REST+JSON) on disk via `uip is connectors builder`. Triggers on `element.json`, `element-metadata.json`, `standard-resources/*.json`, a `periodic-uipath-*`/`periodic-design-*` connector repo, or any request to build/edit an IS connector: init the connector shell, configure auth (14 types via `auth set`), add activities with fields/params/methods/hooks, wire polling/webhook triggers, add auth-system resources, inspect, validate, and surgically read/write files via state. Import + publish live on the parent `uip is connectors` (need `uip login`). NOT for operating a published connector — connections, ping, run an activity→uipath-platform; NOT for `.flow` connector nodes→uipath-maestro-flow."
|
|
4
|
+
allowed-tools: Bash, Read, Write, Edit, Glob, Grep, AskUserQuestion
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Connector Builder
|
|
8
|
+
|
|
9
|
+
Author UiPath Integration Service connectors on disk with `uip is connectors builder`, then `import` + `publish` them through the parent `uip is connectors`. A connector is a `periodic-*` repo (`periodic-uipath-{vendor}-{product}` for official; `periodic-design-{org}-{slug}` for custom — `init` derives the `design-{org}-{slug}` element key from `--name` + `--organization`) whose core is `app/element/element.json` plus `standard-resources/*.json` and JavaScript `hooks/`. Connectors wrap **REST APIs that return JSON only** — no SOAP, GraphQL, or XML. Terminology: the authoring noun is **activity** (it maps to an element.json resource + a standard-resource file).
|
|
10
|
+
|
|
11
|
+
## When to Use This Skill
|
|
12
|
+
|
|
13
|
+
- Creating a new connector from a vendor's API docs (init → auth → activities → validate → import → publish).
|
|
14
|
+
- Editing an existing connector: adding activities, fields, parameters, methods, or hooks.
|
|
15
|
+
- Configuring or switching authentication (OAuth2, PKCE, client credentials, API key, basic, JWT, AWS v4, etc.).
|
|
16
|
+
- Writing or fixing JavaScript request/response hooks.
|
|
17
|
+
- Wiring a polling or webhook trigger on an existing activity.
|
|
18
|
+
- Debugging a connector, activity, hook, or trigger problem in `element.json` / a standard-resource file.
|
|
19
|
+
- Validating before release, or pulling/pushing a design connector to a tenant.
|
|
20
|
+
|
|
21
|
+
## Critical Rules
|
|
22
|
+
|
|
23
|
+
1. **Inspect before editing.** On any existing connector, run `builder inspect` first to map auth, config, activities, hooks, and triggers. Never edit blind. Never invent config keys, activity paths, or IDs — read state first (`inspect`, `activity list`, `state query`).
|
|
24
|
+
2. **Validate before you finish.** Run `builder validate` at the end of every workflow and after each fix — it runs the full periodic check set and exits non-zero on failure. On failure, read the reported field, fix that one entry, re-validate. After 3 failed attempts on the same error, stop and surface the `validate` output — don't keep guessing. **Don't stop at "0 errors": read the WARNINGS too** — they flag real gaps that still ship a half-built connector (a fieldless activity, a broken SR link). Treat them as must-fix unless you can articulate why a given one is acceptable.
|
|
25
|
+
3. **`auth set` owns all authentication.** It writes the config entries, `authentication.type` / `typeOauth` / `authenticationTypes`, and the token-refresh resource in one call. Define scopes here too (`--scope`, `--scope-options`, `--required-scopes`, `--preselected-scopes`) — there is no separate scope command. `init --auth oauth2|customApiKey` is inline sugar for the create-time common case; everything else goes through `auth set`. Never hand-roll auth via `state patch`.
|
|
26
|
+
4. **`activity create` writes both sides in one call** — the standard-resource file AND one `element.json` entry per method. Re-running on an existing activity appends/merges. Pass `--skip-sr` (or use `auth system create`) only for system resources that need no SR file. Model `GETBYID`/`PATCH`/`PUT`/`DELETE` only for TRUE by-id endpoints — never for search. The `/{primaryKey}` path param is added automatically: ALWAYS for `GETBYID`, and for `PATCH`/`PUT`/`DELETE` only when the activity is CRUD (it also has a `GET`/`GETBYID`); a write-only/action activity keeps its base path.
|
|
27
|
+
5. **`state patch` REPLACES the whole node at a pointer (no merge).** To change one field: `state query` the entry, edit it, then `state patch` the COMPLETE object back. `element-metadata.json` has no addressable sub-paths — round-trip the whole file. Activity paths in pointers are URL-encoded: `/contacts` → `%2Fcontacts`. Use the dedicated authoring verbs for creation, not `state patch`.
|
|
28
|
+
6. **Connector targeting.** Builder verbs walk up from the cwd, then scan immediate subdirectories — run from inside the connector dir, or pass `--connector-dir <PATH>` to target one explicitly (required when multiple connectors are nearby). `import` reads `--connector-dir` the same way (the connector root holding `app/element/element.json`); on `download` it instead names the OUTPUT directory to write the pulled connector into. **Exception — `init` does NOT scan subdirectories** (it would otherwise resolve a SIBLING connector and silently EDIT/rename it): to CREATE, run `init` from a fresh/empty directory (a dir that merely *contains* connector subdirs — e.g. `/tmp` — creates a new connector, it will not dive into a child to edit it); to EDIT, run from inside the connector or pass `--connector-dir`.
|
|
29
|
+
7. **Output is the `{Result, Code, Data}` envelope.** Add `--output json` to parse it. Failures exit non-zero. Never suppress stderr.
|
|
30
|
+
8. **`import` / `download` / `publish` — and `init` when CREATING — need `uip login`.** Authenticate before any tenant pull/push. A NEW connector's key `design-{org}-{slug}` takes its org from your logged-in session, so `init` create ERRORS when you're not logged in. Let it derive the org; do NOT pass a guessed `--organization` (a wrong org bakes into the key and only surfaces, mismatched, at import/publish) — `--organization <slug>` is only for offline/CI builds with a known org.
|
|
31
|
+
9. **Never echo, log, or hard-code a secret.** Secret config keys (client secret, API key, password, token) are written by `auth set` ENCRYPTED (`encrypt: true`) — most as `PASSWORD` fields, though some (OAuth tokens, a service-account JSON) are encrypted `TEXTFIELD`/`TEXTAREA`. End users supply real credentials at connection time; the connector holds only the auth TYPE + endpoint URLs + scopes. Use placeholders in every example command.
|
|
32
|
+
10. **Prefer a built-in over a hook.** Before writing JS, consult the decision table ([references/hooks.md](references/hooks.md) §"Decide first: hook or built-in?") — a hook is only for transforms, orchestration, or derivation no declarative feature expresses. One hook file per activity+method+phase; hooks run in Denali (modern JS + `require('axios')` for secondary calls) and must end every path with `done()`.
|
|
33
|
+
11. **Author the field schema for EVERY activity — `activity create` does NOT infer fields.** An activity with no fields renders in Studio Web as a single raw JSON body in and raw JSON out, with zero typed inputs/outputs — a half-built connector that still validates and publishes, so the omission is easy to miss (it's a recurring failure: "got it valid and published" while skipping the schema). After `activity create`, ALWAYS define the request/response fields from the vendor's documented schema — either pass `--fields-file <json>` on `activity create` for the whole schema at once, or add them one at a time with `activity field create`. `validate` emits a WARNING for any fieldless activity — treat it as must-fix. Never report a connector "done" with fieldless activities; if a raw-body passthrough is genuinely intended, say so explicitly.
|
|
34
|
+
|
|
35
|
+
## Connection design (host, region, discovered values)
|
|
36
|
+
|
|
37
|
+
Decide how each per-connection value reaches the request BEFORE scaffolding — getting this wrong is the most common rework:
|
|
38
|
+
|
|
39
|
+
- **One config drives the host — not three URLs.** When the base, token, and authorize hosts share a per-connection part (an instance name, region, datacenter, or workspace), surface ONE config and template it into every URL: `init --base-url 'https://{instance}.../api'` + `auth set --token-url 'https://{instance}.../token' --authorization-url 'https://{instance}.../authorize'`. The CLI auto-seeds a single fillable `{instance}` field that resolves all three ([references/configuration.md](references/configuration.md) §Templated hosts). Do NOT expose `base.url`/`oauth.token.url`/`oauth.authorization.url` as separate connection fields.
|
|
40
|
+
- **Open value → TEXTFIELD; fixed set → COMBO.** A free-form instance/workspace/account name is the auto-seeded templated TEXTFIELD — that is a legitimate, common shape, not a smell. Only a genuinely fixed datacenter/environment list becomes a COMBO (`state patch` the seeded entry to `type:COMBO` with `options`, whose `value` can be the host fragment itself).
|
|
41
|
+
- **Derive or discover before you ask.** If a per-connection value (the API host, an org/account id) is returned in the token response or is discoverable via an authenticated call, capture it instead of adding a manual field — but ONLY when it is genuinely needed AND obtainable; a single templated config is the simpler default, so don't over-engineer discovery where a plain field suffices. Token-response host → a `postRequest` hook that validates (https + allowlisted host, never log the token) and persists via `done({configuration})` — recipe: [references/hooks.md](references/hooks.md) §"Pattern: base URL …". Discoverable id → an `onProvision` system resource that calls the lookup at connection time ([references/system-resources.md](references/system-resources.md)).
|
|
42
|
+
- **Multi-datacenter OAuth:** the accounts/token host itself varies by region — template the region config into `--token-url`/`--authorization-url` too, not just the base URL.
|
|
43
|
+
|
|
44
|
+
## Workflows
|
|
45
|
+
|
|
46
|
+
Each workflow is an ordered sequence of copy-paste-ready commands. Use placeholders (`<ORG>`, `https://api.example.com`) — never real secrets.
|
|
47
|
+
|
|
48
|
+
### New connector (full lifecycle)
|
|
49
|
+
```bash
|
|
50
|
+
# 0. Log in FIRST. The key `design-{org}-{slug}` takes its org from your logged-in
|
|
51
|
+
# session, so `init` (create) ERRORS if you're not logged in. Let it derive the
|
|
52
|
+
# org — do NOT guess --organization (a wrong org bakes into the key and only
|
|
53
|
+
# surfaces, mismatched, at import). --organization <slug> is for offline/CI only.
|
|
54
|
+
uip login status # check Data.Status == "Logged in" — NOT the envelope
|
|
55
|
+
# Result/exit, which is "Success" even when the session
|
|
56
|
+
# is dead (refresh-failed / expired). (`init` create
|
|
57
|
+
# itself re-checks the live login status and blocks.)
|
|
58
|
+
|
|
59
|
+
# 1. Scaffold the shell. --name is required when creating; key + folder are derived
|
|
60
|
+
# (the org comes from your login — see step 0).
|
|
61
|
+
uip is connectors builder init --name 'Acme Widgets' \
|
|
62
|
+
--description 'Acme Widgets connector' --categories 'CRM,Sales and marketing' \
|
|
63
|
+
--base-url https://api.acme.com --auth oauth2 \
|
|
64
|
+
--authorization-url https://acme.com/oauth/authorize \
|
|
65
|
+
--token-url https://acme.com/oauth/token --scope 'read write'
|
|
66
|
+
# --categories must be approved DISPLAY-NAME values (e.g. 'CRM', 'Sales and marketing',
|
|
67
|
+
# 'Collaboration', 'Productivity', 'E-commerce') — NOT lowercase slugs like `crm,sales`.
|
|
68
|
+
# Validated at init AND `validate`: wrong case is canonicalized, an unknown value fails fast
|
|
69
|
+
# and the error lists the approved enum. init seeds element-metadata.json:latestVersion = "1.0.0".
|
|
70
|
+
|
|
71
|
+
# 2. Add an activity (writes element.json entries + standard-resources/accounts.json).
|
|
72
|
+
uip is connectors builder activity create --name accounts --vendor-path /v1/accounts \
|
|
73
|
+
--methods GET,GETBYID,POST,PATCH,DELETE --primary-key id --has-ceql
|
|
74
|
+
|
|
75
|
+
# 3. Author the field schema — REQUIRED, not optional (Rule 11). `activity create`
|
|
76
|
+
# does NOT infer fields; without this the activity ships as a raw JSON body and
|
|
77
|
+
# `validate` warns. Pass `--fields-file <json>` on `activity create` for the whole
|
|
78
|
+
# schema at once, or add fields one at a time with `field create`
|
|
79
|
+
# (visibility flags apply to every --method listed; re-runs merge):
|
|
80
|
+
uip is connectors builder activity field create --resource accounts --name email \
|
|
81
|
+
--type string --method GET --method POST --response
|
|
82
|
+
|
|
83
|
+
# 4. Validate — must be 0 errors AND no unresolved warnings (fieldless activity,
|
|
84
|
+
# broken SR link) before import.
|
|
85
|
+
uip is connectors builder validate
|
|
86
|
+
|
|
87
|
+
# 5. Import (create-or-update on the tenant) then publish.
|
|
88
|
+
uip login
|
|
89
|
+
uip is connectors import
|
|
90
|
+
uip is connectors publish --wait # blocks until SUCCESS; live in Studio Web then
|
|
91
|
+
# (fire-and-forget without --wait: allow ~5-10 min)
|
|
92
|
+
```
|
|
93
|
+
Publishing a NEW connector needs no `--version` (init seeded `1.0.0`). **Re-publishing** an existing connector requires a HIGHER version — bump `element-metadata.json:latestVersion` (or pass `--version 1.0.1`); the server rejects an equal version.
|
|
94
|
+
|
|
95
|
+
### Add an activity to an existing connector
|
|
96
|
+
```bash
|
|
97
|
+
uip is connectors builder inspect --output json # map what exists first
|
|
98
|
+
# research the vendor API, then:
|
|
99
|
+
uip is connectors builder activity create --name contacts --vendor-path /v1/contacts \
|
|
100
|
+
--methods GET,GETBYID,POST --primary-key id --fields-file ./contacts-fields.json
|
|
101
|
+
uip is connectors builder activity field create --resource contacts --name status \
|
|
102
|
+
--type string --method GET --response --searchable
|
|
103
|
+
uip is connectors builder activity hook create --resource-name contacts --method GET \
|
|
104
|
+
--hook-type postRequest --custom-code-file ./contacts-postRequest.js # optional response shaping (you write the JS)
|
|
105
|
+
uip is connectors builder validate
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Add a polling trigger
|
|
109
|
+
`trigger create` authors a POLLING trigger. The target activity must already exist and have an SR file (`trigger create` hard-fails otherwise).
|
|
110
|
+
```bash
|
|
111
|
+
uip is connectors builder activity list --output json # confirm the activity exists
|
|
112
|
+
uip is connectors builder trigger create --resource-name accounts --event-kind polling \
|
|
113
|
+
--updated-date-field LastModifiedDate --id-field Id # seeds the event config + hasEvents flag
|
|
114
|
+
uip is connectors builder validate
|
|
115
|
+
```
|
|
116
|
+
`--updated-date-field` is REQUIRED for every `--event-kind` — the command always authors a polling loop. `--event-kind polling|webhook|all` (default `polling`) only picks the config bundle; `webhook`/`all` add webhook config keys but don't implement delivery. Webhook delivery, the polling-vs-webhook semantics, and per-flag defaults all live in [references/events.md](references/events.md).
|
|
117
|
+
|
|
118
|
+
### Customize a curated activity
|
|
119
|
+
`activity create` auto-curates every method into a standalone Studio activity by default (opt out with `--no-curate`). Use `method curate` only to override the generated name/displayName, or to curate a `--no-curate` method.
|
|
120
|
+
```bash
|
|
121
|
+
uip is connectors builder activity method curate --resource cases --method GET \
|
|
122
|
+
--display-name 'Get Support Request'
|
|
123
|
+
uip is connectors builder activity field create --resource cases --name subject --type string \
|
|
124
|
+
--method GET --response --response-curated --design-position primary
|
|
125
|
+
uip is connectors builder validate
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Debug
|
|
129
|
+
```bash
|
|
130
|
+
uip is connectors builder inspect --output json
|
|
131
|
+
# state patch REPLACES the node — query the WHOLE entry, change ONLY the field at fault, patch it ALL back:
|
|
132
|
+
uip is connectors builder state query element.json/configuration/oauth.token.url --output json
|
|
133
|
+
uip is connectors builder state patch element.json/configuration/oauth.token.url \
|
|
134
|
+
--value '<full entry from the query above, with defaultValue corrected>'
|
|
135
|
+
uip is connectors builder validate
|
|
136
|
+
```
|
|
137
|
+
For a derived base URL (e.g. Salesforce `instance_url` from the token response): a `postRequest` hook VALIDATES the URL (https + allowlisted host) and persists it with `done({configuration})` — NOT `state patch`, which baking-time-edits one org's URL into every connection. Full recipe: [references/hooks.md](references/hooks.md) §"Pattern: base URL …"; investigation checklists: [references/debugging.md](references/debugging.md).
|
|
138
|
+
|
|
139
|
+
## Command Map
|
|
140
|
+
|
|
141
|
+
```text
|
|
142
|
+
uip is connectors # tenant/catalog + design-connector lifecycle (needs `uip login`)
|
|
143
|
+
list | get <key> | swagger <key> | export <key> | audit-logs | event-operations
|
|
144
|
+
download <key> | import | publish | publish-status <id> | probe
|
|
145
|
+
builder # author a connector ON DISK
|
|
146
|
+
init # create-or-EDIT the connector shell in ONE verb
|
|
147
|
+
# (folds the old scaffold / metadata / global / base+pagination preset)
|
|
148
|
+
preset apply --kind base|pagination
|
|
149
|
+
header delete <vendorName>
|
|
150
|
+
auth set | get | system (create|list)
|
|
151
|
+
activity create | list | get | delete
|
|
152
|
+
field (create|list|get|delete)
|
|
153
|
+
method (get|set|curate)
|
|
154
|
+
param (create|list|get|delete)
|
|
155
|
+
hook (create|list|get|delete)
|
|
156
|
+
trigger create # --event-kind polling|webhook|all (folds the event preset + polling)
|
|
157
|
+
inspect # read-only whole-connector rollup
|
|
158
|
+
validate # full check set; exits non-zero on failure
|
|
159
|
+
state query <pointer> | patch <pointer>
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
`publish` returns a `PublishId`; `--wait` polls to SUCCESS/FAILURE (timeout via `--timeout-seconds`, default 600); check later with `publish-status <id>` (positional). Status enum: `IN_PROGRESS | SUCCESS | FAILURE`.
|
|
163
|
+
|
|
164
|
+
## Reference Navigation
|
|
165
|
+
|
|
166
|
+
Depth lives in `references/` — each self-contained. SKILL.md owns the workflows, command map, and rules above; references must not repeat them. The always-current flag source is `uip is connectors builder <noun> <verb> --help`.
|
|
167
|
+
|
|
168
|
+
| Task → read this | Reference |
|
|
169
|
+
|---|---|
|
|
170
|
+
| What a connector is, file layout, the CRUD/curated/HTTP activity model | [references/overview.md](references/overview.md) |
|
|
171
|
+
| element.json internals: top-level fields, resources[], parameters[], value interpolation, hook order | [references/element-json.md](references/element-json.md) |
|
|
172
|
+
| Standard-resource files: linking, metadata.method, curated, fields (visibility/design/searchable) | [references/standard-resources.md](references/standard-resources.md) |
|
|
173
|
+
| configuration[] entries: widget types, screen types, per-auth key sets, pagination + event keys | [references/configuration.md](references/configuration.md) |
|
|
174
|
+
| Authentication setup: all 14 auth types and the OAuth/JWT scope surface | [references/auth.md](references/auth.md) |
|
|
175
|
+
| Auth-system resources: auth-validation, onProvision/onDelete, OAuth token overrides | [references/system-resources.md](references/system-resources.md) |
|
|
176
|
+
| When to write a hook vs use a built-in (decision table + good/avoidable patterns), execution order, context vars, done(), naming | [references/hooks.md](references/hooks.md) |
|
|
177
|
+
| Polling and webhook triggers: config keys, event.poller.configuration schema | [references/events.md](references/events.md) |
|
|
178
|
+
| Debugging auth / activity / hook / trigger / pagination issues (workflow + checklists) | [references/debugging.md](references/debugging.md) |
|
|
179
|
+
|
|
180
|
+
## Anti-patterns
|
|
181
|
+
|
|
182
|
+
1. Editing without `builder inspect` first (Rule 1) — you'll invent keys/paths that don't exist.
|
|
183
|
+
2. Hand-rolling auth via `state patch` instead of `auth set` (Rule 3) — leaves the auth block inconsistent.
|
|
184
|
+
3. Editing a config entry with a partial value (Rule 5) — `state patch` REPLACES the node, dropping omitted fields. Query the whole entry and patch the complete object back.
|
|
185
|
+
4. Re-running `activity create` with a name that already exists when you meant a SEPARATE activity — it's an idempotent upsert that MERGES into the same-named activity (appends methods, preserves existing field definitions unless `--overwrite-fields`); it does not error, so a wrong name silently merges instead of warning.
|
|
186
|
+
5. Modeling `GETBYID` for a search/list endpoint (Rule 4) — by-id verbs auto-add the `/{primaryKey}` param; reserve them for true single-record reads.
|
|
187
|
+
6. Putting a real secret in an example or expecting the connector to store one (Rule 9) — secrets are encrypted fields (usually PASSWORD) supplied at connection time.
|
|
188
|
+
7. Re-publishing without bumping the version — the server rejects an equal version; bump `latestVersion` or pass `--version`.
|
|
189
|
+
8. Invented `--categories` values — they must come from the approved enum; `validate` reports the list.
|
|
190
|
+
9. Writing a hook for a job a built-in does (Rule 10; hooks.md §"Recognizing an avoidable hook"), or omitting the trailing `done()` so the hook never returns.
|
|
191
|
+
10. Reaching for a removed command — there is no `connector scaffold/inspect/validate` wrapper (use `init`/`inspect`/`validate` directly), no `global`/`metadata`/`config`/`resource*`/`event polling add`/`auth scope`/`remote*`/`describe`/`reference`.
|
|
192
|
+
11. Reporting a connector "done" with fieldless activities (Rule 11) — `activity create` writes endpoints/methods/auth but NOT the field schema; an activity with no `field create` / `--fields-file` shows only a raw JSON body in Studio and trips a `validate` WARNING. Author fields before finishing, and never treat a 0-error/has-warnings validate as a pass.
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# Authentication in UiPath Integration Service connectors
|
|
2
|
+
|
|
3
|
+
A connector's authentication block tells Integration Service which auth flow to run when a
|
|
4
|
+
tenant creates a connection. `auth set` writes all of it in one call: the **config entries**
|
|
5
|
+
in `element.json → configuration[]` (one per credential/endpoint URL — these render the
|
|
6
|
+
connection form AND drive the OAuth dance / API-key wiring) plus the **top-level fields**
|
|
7
|
+
`authentication.type`, `typeOauth`, `elementMetadata.authenticationTypes` (which select the
|
|
8
|
+
flow). The definition holds only the auth TYPE, endpoint URLs, and scopes — never real creds.
|
|
9
|
+
|
|
10
|
+
## SECURITY — secrets are never stored in the connector
|
|
11
|
+
|
|
12
|
+
Secret config keys (client secret, API key, password, token) are written by `auth set` with
|
|
13
|
+
`encrypt: true` — encrypted at rest and redacted in responses. Most are `type: PASSWORD` +
|
|
14
|
+
`isPrivate: true` (also masked); some sensitive values use a non-PASSWORD widget but stay
|
|
15
|
+
encrypted — e.g. an OAuth user token (`TEXTFIELD`) or a Google service-account JSON
|
|
16
|
+
(`TEXTAREA`). Rules:
|
|
17
|
+
|
|
18
|
+
- NEVER echo, `cat`, log, or print a secret value. `auth get` / `inspect` return the config
|
|
19
|
+
SHAPE, not the value — there is nothing to dump.
|
|
20
|
+
- NEVER put a real secret in an example command. Use placeholders (`<CLIENT_ID>`, the
|
|
21
|
+
vendor's header name) — secret VALUES are not part of the connector at all.
|
|
22
|
+
- The tenant user supplies `client id`, `client secret`, `api key`, etc. at connection time.
|
|
23
|
+
|
|
24
|
+
## Auth types (`auth set --auth-type`)
|
|
25
|
+
|
|
26
|
+
All 14 types are supported. `init --auth` is sugar for the two most common (`oauth2`,
|
|
27
|
+
`customApiKey`) at create time; everything else (and the full flag surface) goes through
|
|
28
|
+
`auth set`.
|
|
29
|
+
|
|
30
|
+
| auth-type | Use when |
|
|
31
|
+
|-------------------------|-------------------------------------------------|
|
|
32
|
+
| oauth2 | OAuth 2.0 Authorization Code flow. |
|
|
33
|
+
| oauth2Pkce | OAuth 2.0 Authorization Code + PKCE. |
|
|
34
|
+
| oauth2ClientCredentials | OAuth 2.0 Client Credentials (no user). |
|
|
35
|
+
| oauth2Password | OAuth 2.0 Resource Owner Password. |
|
|
36
|
+
| oauth1 | OAuth 1.0a / Token-Based Authentication (TBA). |
|
|
37
|
+
| basic | HTTP Basic (username + password). |
|
|
38
|
+
| jwtOauth | JWT-bearer OAuth. |
|
|
39
|
+
| jwtOauth2 | JWT-bearer OAuth 2.0. |
|
|
40
|
+
| custom | A custom static authorization header. |
|
|
41
|
+
| customApiKey | Vendor uses a static API key (header or query). |
|
|
42
|
+
| personalAccessToken | Personal access token authorization header. |
|
|
43
|
+
| awsv4 | AWS Signature v4. |
|
|
44
|
+
| googleServiceAccount | Google service-account JSON. |
|
|
45
|
+
| rsaCertificate | RSA private-key certificate. |
|
|
46
|
+
|
|
47
|
+
Per-type config key sets (which secrets, which URLs) are in
|
|
48
|
+
[configuration.md](configuration.md) §"Auth as configuration".
|
|
49
|
+
|
|
50
|
+
## OAuth 2.0 (authorization_code)
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
uip is connectors builder auth set --auth-type oauth2 \
|
|
54
|
+
--authorization-url https://acme.com/oauth/authorize \
|
|
55
|
+
--token-url https://acme.com/oauth/token \
|
|
56
|
+
--scope 'read write'
|
|
57
|
+
```
|
|
58
|
+
- `--authorization-url`, `--token-url`, `--scope` are the core flags.
|
|
59
|
+
- `--token-refresh-url` defaults to `--token-url`; `--token-revoke-url` is optional.
|
|
60
|
+
- **Extra authorize query params need NO script** — append them to `--authorization-url`
|
|
61
|
+
directly; they are preserved verbatim. Use this for vendors that require a refresh-token opt-in
|
|
62
|
+
on the consent URL: Dropbox `?token_access_type=offline`, Zoho `?access_type=offline`,
|
|
63
|
+
Google `?access_type=offline&prompt=consent`.
|
|
64
|
+
- A per-region/instance/workspace host belongs in the URL as `{placeholder}` (e.g.
|
|
65
|
+
`https://accounts.{environment}/oauth/v2/token`) — the CLI auto-seeds a backing config; see
|
|
66
|
+
[configuration.md](configuration.md) §"Templated hosts". No hook needed.
|
|
67
|
+
- For refresh-token OAuth types (not client credentials), `auth set` also creates an
|
|
68
|
+
`oauthOnTokenRefresh` system resource pointing at the refresh URL.
|
|
69
|
+
|
|
70
|
+
## OAuth / JWT scope surface (FLAGS on `auth set` — there is NO `auth scope` command)
|
|
71
|
+
|
|
72
|
+
`--scope` always sets the default scope string. To make scopes USER-SELECTABLE (the
|
|
73
|
+
`oauth.scope` MULTISELECT with options/required/preselected), the TRIGGER is `--scope-options`
|
|
74
|
+
(or `--scope-options-file`) OR `--required-scopes` — without one of those the MULTISELECT
|
|
75
|
+
override is NOT built. The remaining flags are modifiers that take effect ONLY once the
|
|
76
|
+
override exists, so `--preselected-scopes` (or `--scope-delimiter`/`--scope-hint-text`/
|
|
77
|
+
`--scope-screen-type`) ALONE does nothing. Pass them on the SAME `auth set` call (or re-run
|
|
78
|
+
with `--force`):
|
|
79
|
+
|
|
80
|
+
| Flag | Purpose |
|
|
81
|
+
|------|---------|
|
|
82
|
+
| `--scope <str>` | Space-delimited scope string (the default scope value). |
|
|
83
|
+
| `--scope-options <json>` | JSON array of `{description,value}` selectable options. |
|
|
84
|
+
| `--scope-options-file <path>` | Read `--scope-options` JSON from a file. |
|
|
85
|
+
| `--required-scopes <csv>` | Scopes the user cannot deselect. |
|
|
86
|
+
| `--preselected-scopes <csv>` | Scopes pre-checked by default. |
|
|
87
|
+
| `--scope-delimiter <char>` | Scope separator (default: space). |
|
|
88
|
+
| `--scope-hint-text <text>` | Hint shown under the scope selector. |
|
|
89
|
+
| `--scope-screen-type <type>` | configScreenType for the scope entry (default: pre). |
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
uip is connectors builder auth set --auth-type oauth2 \
|
|
93
|
+
--authorization-url https://acme.com/oauth/authorize \
|
|
94
|
+
--token-url https://acme.com/oauth/token \
|
|
95
|
+
--scope 'read write' \
|
|
96
|
+
--scope-options '[{"description":"Read","value":"read"},{"description":"Write","value":"write"}]' \
|
|
97
|
+
--required-scopes read --preselected-scopes read,write
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## customApiKey
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
uip is connectors builder auth set --auth-type customApiKey \
|
|
104
|
+
--api-key-param-name X-API-Key --api-key-location header \
|
|
105
|
+
--validation-vendor-path /me # provisionAuthValidation (see below) — recommended for static auth
|
|
106
|
+
```
|
|
107
|
+
- `--api-key-param-name` (required): vendor header/query name (`X-API-Key`, `Authorization`,
|
|
108
|
+
`subscription-key`) from vendor docs.
|
|
109
|
+
- `--api-key-location`: `header` (default) or `query`. `--api-key-prefix`: literal prefix
|
|
110
|
+
prepended to the value (e.g. `Bearer `).
|
|
111
|
+
- `--key-config-name`: internal config key (default `custom.api.key`). `--key-config-display-name`:
|
|
112
|
+
UI label (default `API Key`).
|
|
113
|
+
|
|
114
|
+
What it writes (the PASSWORD secret entry + the `type:"value"` parameter mapping
|
|
115
|
+
`${configuration.<name>}` into the vendor header/query): [configuration.md](configuration.md) §"Auth as configuration".
|
|
116
|
+
|
|
117
|
+
## Multiple credential headers (any auth type) — `--auth-header` / `--secret-auth-header`
|
|
118
|
+
|
|
119
|
+
Some vendors authenticate with SEVERAL static headers (e.g. iContact: `API-AppId`, `API-Username`,
|
|
120
|
+
`API-Password`, `API-Version`). `auth set` (esp. with `--auth-type custom`) takes repeatable flags —
|
|
121
|
+
no script, no `state patch`:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
uip is connectors builder auth set --auth-type custom \
|
|
125
|
+
--auth-header AppID=API-AppId \
|
|
126
|
+
--auth-header api.username=API-Username \
|
|
127
|
+
--secret-auth-header api.password=API-Password
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Each `ConfigName=VendorHeader` writes a `pre`/required config entry (`--secret-auth-header` makes it a
|
|
131
|
+
PASSWORD/encrypted) plus a global `${configuration.<ConfigName>}` → vendor-header parameter. The tenant
|
|
132
|
+
user fills each on the connection form. Static (non-credential) headers like `API-Version` or
|
|
133
|
+
`Content-Type` go through `init --header VendorName=value` (a `type:"value"` param). Bespoke config keys
|
|
134
|
+
ARE accepted by the backend (the catalogue connectors use them) — just declare them through these flags
|
|
135
|
+
rather than hand-editing `configuration[]`.
|
|
136
|
+
|
|
137
|
+
## Auth-validation probe (any type)
|
|
138
|
+
|
|
139
|
+
`--validation-vendor-path <path>` (with optional `--validation-method`, default GET) seeds
|
|
140
|
+
a `provisionAuthValidation` system resource — one read-only call at connection creation that
|
|
141
|
+
rejects bad creds immediately. The probe must be read-only and must not change vendor data,
|
|
142
|
+
so keep it GET. Every non-OAuth/JWT auth type (any whose name isn't `oauth*`/`jwt*` — `basic`,
|
|
143
|
+
`custom`, `customApiKey`, `personalAccessToken`, `awsv4`, `googleServiceAccount`,
|
|
144
|
+
`rsaCertificate`) has no token exchange to catch bad creds, so `validate` flags it as missing
|
|
145
|
+
there. Details: [system-resources.md](system-resources.md) §provisionAuthValidation.
|
|
146
|
+
|
|
147
|
+
## System (lifecycle) resources — `auth system`
|
|
148
|
+
|
|
149
|
+
Lifecycle/auth-flow endpoints with no SR file (provisionAuthValidation, onProvision,
|
|
150
|
+
oauthOnTokenRefresh, …) are wired with `auth system create --type <type>` / `auth system list`.
|
|
151
|
+
The full type list, override-path rules, and flags: [system-resources.md](system-resources.md).
|
|
152
|
+
|
|
153
|
+
## Base URL derived from a token response (e.g. Salesforce `instance_url`)
|
|
154
|
+
|
|
155
|
+
There is NO vendor-specific base-url flag (`init --base-url` is STATIC only). When the vendor
|
|
156
|
+
returns the API host in its token response, it is skill-guided: a `postRequest` hook reads +
|
|
157
|
+
validates the host (https scheme, allowlisted), then persists it into THIS connection's config
|
|
158
|
+
at runtime via `done({configuration})` — NOT `state patch` (that baking-time edit would set one
|
|
159
|
+
org's URL as everyone's default). Full pattern: [hooks.md](hooks.md) §"Pattern: base URL …
|
|
160
|
+
derived from a token response".
|
|
161
|
+
|
|
162
|
+
## Re-running auth set
|
|
163
|
+
|
|
164
|
+
Idempotent on identical inputs (returns `unchanged`). If a new input would modify an
|
|
165
|
+
existing entry, it fails with a `configConflict` listing every diff — re-run with `--force`
|
|
166
|
+
to apply. Use this to swap an existing connector's auth type.
|
|
167
|
+
|
|
168
|
+
## See also
|
|
169
|
+
- [configuration.md](configuration.md) — config keys per auth type, widget/screen types
|
|
170
|
+
- [system-resources.md](system-resources.md) — auth-validation, token-refresh overrides
|
|
171
|
+
- [element-json.md](element-json.md) — element.json structure and the authentication block
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# Configuration Reference
|
|
2
|
+
|
|
3
|
+
Config entries live in `element.json → configuration[]`. Authentication, pagination,
|
|
4
|
+
and events are ALL config keys — their values are filled per-connection at creation time.
|
|
5
|
+
|
|
6
|
+
## How configuration gets set (no `config create` command exists)
|
|
7
|
+
|
|
8
|
+
There is no `config` command group. Configuration is authored by the verbs below — never
|
|
9
|
+
hand-edit raw JSON when one of these covers it:
|
|
10
|
+
|
|
11
|
+
| To set… | Use |
|
|
12
|
+
|---|---|
|
|
13
|
+
| Base URL, headers, accept/content-type, categories, lifecycle, tier | `init` (e.g. `init --base-url`, `init --header VendorName=value`, `init --accept-type`) |
|
|
14
|
+
| Auth config keys + the `oauth.scope` MULTISELECT | `auth set` (see [auth.md](auth.md)) |
|
|
15
|
+
| The base or pagination key bundle | `init preset apply --kind base \| pagination` |
|
|
16
|
+
| The event/polling key bundle | `trigger create --event-kind polling \| webhook \| all` (NOT a config preset) — see [events.md](events.md) |
|
|
17
|
+
| One bespoke entry, or a surgical edit to an existing entry | `state patch element.json/configuration/<key>` |
|
|
18
|
+
|
|
19
|
+
### Presets
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
uip is connectors builder init preset apply --kind pagination
|
|
23
|
+
uip is connectors builder init preset apply --kind base --override base.url=https://api.acme.com
|
|
24
|
+
```
|
|
25
|
+
- `--kind base` seeds the base URL + select/nulls/instance keys; `--kind pagination` seeds
|
|
26
|
+
the four pagination keys. `--override key=value` (repeatable) overrides a defaultValue.
|
|
27
|
+
- `--force` applies diffs on entries that already exist instead of erroring.
|
|
28
|
+
- There is NO `event` preset kind — the event bundle is seeded by `trigger create --event-kind`.
|
|
29
|
+
|
|
30
|
+
### Surgical edits with `state patch`
|
|
31
|
+
|
|
32
|
+
To change one config field, `state patch` the entry at
|
|
33
|
+
`element.json/configuration/<key>` (e.g. `.../oauth.token.url`). `state patch` REPLACES the
|
|
34
|
+
whole node — query first and patch the COMPLETE object back (SKILL.md Rule 5).
|
|
35
|
+
|
|
36
|
+
## Config Entry Object
|
|
37
|
+
`key` (dot-notation, e.g. `oauth.api.key`), `name`, `description`, `type` (widget),
|
|
38
|
+
`defaultValue`, `required`, `internal` (system-set), `hide`, `hideFromConsole`,
|
|
39
|
+
`encrypt` (secrets), `active` (true), `companyConfig`/`resellerConfig` (false),
|
|
40
|
+
`isPrivate` (redact in responses), `displayOrder`, `configScreenType`.
|
|
41
|
+
Optional: `groupControl`, `groupBy`, `options` (`[{"description","value"}]`),
|
|
42
|
+
`design`, `hintText`.
|
|
43
|
+
|
|
44
|
+
## Config Types (widgets)
|
|
45
|
+
`TEXTFIELD_32|64|128|256|1000` (by max length; 128 = most fields, 1000 = URLs),
|
|
46
|
+
`TEXTAREA` (keys/certs/JSON), `PASSWORD` (masked, auto-encrypt), `BOOLEAN`,
|
|
47
|
+
`COMBO` (single-select), `MULTISELECT` (OAuth scopes), `CODE_EDITOR`.
|
|
48
|
+
|
|
49
|
+
## Config Screen Types
|
|
50
|
+
`"pre"` (must fill on creation), `"pre-optional"` (optional on creation), `"none"` (hidden).
|
|
51
|
+
|
|
52
|
+
## Templated (per-instance / per-region / per-workspace) hosts — NO script needed
|
|
53
|
+
When the API host differs per connection (Zoho's region `https://desk.{environment}/api/v1`,
|
|
54
|
+
Databricks `{workspace.url}`, Sugar `https://{siteUrl}/rest/v11`), put a `{placeholder}` in the
|
|
55
|
+
URL and back it with a configuration entry **keyed exactly the same** as the placeholder. At
|
|
56
|
+
connection time IS substitutes `{placeholder}` with that config's value. This is the correct,
|
|
57
|
+
scriptless way to handle dynamic hosts — do NOT reach for a hook.
|
|
58
|
+
|
|
59
|
+
- Just template the URL on `init`/`auth set`: `init --base-url 'https://desk.{environment}/api/v1'`,
|
|
60
|
+
`auth set --token-url 'https://{workspace.url}/oidc/v1/token'`. The CLI **auto-seeds** a required
|
|
61
|
+
`TEXTFIELD_1000` config keyed by each placeholder (e.g. `environment`, `workspace.url`), screen
|
|
62
|
+
type `pre`, so the user fills it on the connection form.
|
|
63
|
+
- A `{placeholder}` in **`base.url`** also gets an auto-seeded element-level **global path parameter**
|
|
64
|
+
(`{ vendorType:"path", vendorName:"<placeholder>", name:"<configKey>", type:"configuration" }` in
|
|
65
|
+
the root `parameters[]`). This is what actually substitutes the token into **every resource
|
|
66
|
+
request** — the backing config entry alone is NOT enough for `base.url` (it would only resolve the
|
|
67
|
+
OAuth call). The CLI seeds this on `init --base-url` / `auth set`; if you instead set `base.url`
|
|
68
|
+
by raw `state patch`, add the path parameter yourself.
|
|
69
|
+
- `validate` HARD-ERRORS if a `{placeholder}` in any URL has no backing config key, AND if a
|
|
70
|
+
`base.url` placeholder has no global path parameter binding it — so an unresolvable host can never ship.
|
|
71
|
+
- To upgrade the seeded TEXTFIELD into a **picker** (Zoho's datacenter dropdown), `state patch` the
|
|
72
|
+
entry to `type: COMBO` with `options: [{"value":"zoho.com","description":"zoho.com"}, …]`.
|
|
73
|
+
- `${configuration.x}` (dollar-brace) is a value-REFERENCE into an existing config (e.g. an API-key
|
|
74
|
+
header param), NOT a host placeholder — it is not seeded.
|
|
75
|
+
|
|
76
|
+
## Auth as configuration
|
|
77
|
+
Authentication is config keys + `authentication.type`, all written by `auth set`. Secret
|
|
78
|
+
keys (client secret, API key, password, token) are written with `encrypt: true` — encrypted
|
|
79
|
+
and redacted; most are `PASSWORD` + `isPrivate` (masked), but some (OAuth tokens, a
|
|
80
|
+
service-account JSON) are encrypted `TEXTFIELD`/`TEXTAREA`. They hold NO value in the
|
|
81
|
+
connector; the tenant user supplies the real secret at connection time. Key sets per type:
|
|
82
|
+
|
|
83
|
+
- **OAuth2** (16 entries — canonical list; `auth set` writes all of them):
|
|
84
|
+
`oauth.api.key`, `oauth.api.secret` (PASSWORD, encrypt, isPrivate), `oauth.callback.url`
|
|
85
|
+
(auto-set, do NOT hardcode), `oauth.authorization.url`, `oauth.token.url`,
|
|
86
|
+
`oauth.token.refresh.url`, `oauth.token.revoke.url`, `oauth.scope`,
|
|
87
|
+
`oauth.basic.header`, `oauth.user.token`, `oauth.user.refresh.token`,
|
|
88
|
+
`oauth.user.refresh.interval` (sec, default 3600), plus auto-set internals
|
|
89
|
+
`oauth.user.refresh.time`, `oauth.decode.authorization.code`, `authentication.time`,
|
|
90
|
+
`expires_in`. Sets `authentication.type:"oauth2"`, `typeOauth:true`.
|
|
91
|
+
- **OAuth2 PKCE** adds `oauth.pkce.code.challenge.verifier`, `oauth.pkce.code.challenge`,
|
|
92
|
+
`oauth.pkce.code.challenge.method` (`"S256"`).
|
|
93
|
+
- **OAuth2 Client Credentials**: subset — no auth URL, no refresh token.
|
|
94
|
+
- **customApiKey** (the on-disk type for any "API key" auth — the UI labels it "API key",
|
|
95
|
+
but never use periodic's bare `apiKey`): one PASSWORD secret config (default
|
|
96
|
+
`custom.api.key`, encrypt, isPrivate, `groupBy:"customApiKey"`) + one `type:"value"`
|
|
97
|
+
parameter mapping `${configuration.<name>}` into the vendor header/query;
|
|
98
|
+
`authentication.type:"customApiKey"`, `typeOauth:false`. CLI flow + flags:
|
|
99
|
+
[auth.md](auth.md) §customApiKey.
|
|
100
|
+
- **basic**: `username`, `password` (PASSWORD, encrypt).
|
|
101
|
+
- **jwtOauth**: `jwt.oauth.consumer.key`, `jwt.oauth.private.key`, `jwt.oauth.username`,
|
|
102
|
+
`jwt.oauth.token.url`, `jwt.oauth.scope`. `typeOauth:true`.
|
|
103
|
+
- **awsv4**: `aws.api.key`, `aws.api.secret`, `aws.region`, `aws.service.name`, `aws.host`.
|
|
104
|
+
|
|
105
|
+
## Multi-auth (groupControl)
|
|
106
|
+
An `authentication.type` COMBO with `"groupControl": true` plus per-type config entries
|
|
107
|
+
tagged with `groupBy`. Fields without `groupBy` always show; comma-separated `groupBy`
|
|
108
|
+
shows the field for multiple groups.
|
|
109
|
+
|
|
110
|
+
## Scope entry (`oauth.scope`, MULTISELECT)
|
|
111
|
+
Built by the `auth set --scope*` flags — only when `--scope-options`/`--scope-options-file` or
|
|
112
|
+
`--required-scopes` triggers it (condition + flag list in [auth.md](auth.md)). The `design`
|
|
113
|
+
block carries `requiredOptions` (cannot deselect), `preSelectedOptions` (pre-checked),
|
|
114
|
+
`delimiter`, `enableUserOverride`; `options` is the `[{"description","value"}]` list.
|
|
115
|
+
|
|
116
|
+
## Pagination keys (`init preset apply --kind pagination`)
|
|
117
|
+
The pagination preset seeds exactly four keys: `pagination.max` (TEXTFIELD_32, default `100`),
|
|
118
|
+
`pagination.type` (TEXTFIELD_32 — e.g. cursor/offset/page), `pagination` (TEXTFIELD_128, a
|
|
119
|
+
pagination-config JSON string), and `pagination.page.startindex` (TEXTFIELD_32, default `1`).
|
|
120
|
+
`base.url` and `filter.response.nulls` are seeded by the `--kind base` preset, NOT this one.
|
|
121
|
+
`paginatorVersion` at top level selects the engine.
|
|
122
|
+
|
|
123
|
+
## Event keys
|
|
124
|
+
Polling/webhook config keys (`event.notification.*`, `event.vendor.type`, `event.poller.*`,
|
|
125
|
+
`event.raw.enabled`) are seeded by `trigger create --event-kind` and documented in
|
|
126
|
+
[events.md](events.md) §"Polling config keys" — the canonical list. They are ordinary
|
|
127
|
+
`configuration[]` entries.
|
|
128
|
+
|
|
129
|
+
## See also
|
|
130
|
+
- [auth.md](auth.md), [system-resources.md](system-resources.md), [events.md](events.md)
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Connector Debugging Guide
|
|
2
|
+
|
|
3
|
+
Workflow: `inspect` → understand → identify the misconfiguration → fix with a single
|
|
4
|
+
addressed write → re-`validate`. Tooling: `inspect` (read-only rollup), `state query
|
|
5
|
+
<POINTER>` (surgical read), `state patch <POINTER>` (REPLACES the whole node — to edit one
|
|
6
|
+
field, query the entry and patch the complete object back), `validate` (full check set,
|
|
7
|
+
exits non-zero on failure). All run under `uip is connectors builder`.
|
|
8
|
+
|
|
9
|
+
## Investigation steps
|
|
10
|
+
1. `inspect` — auth types, config, resources (with SR files + hooks), global hooks, events, metadata.
|
|
11
|
+
2. `state query` the relevant slice:
|
|
12
|
+
- Auth → `element.json/authentication`, `element.json/configuration`, then `.../configuration/{key}`
|
|
13
|
+
- Resource → `element.json/resources`, then `.../resources/{METHOD}/{url-encoded-path}` + `standard-resources/{name}`
|
|
14
|
+
- Hook → `hooks/{file}.js` + `element.json/resources/{M}/{P}/hooks`
|
|
15
|
+
- Event → `element.json/configuration/event.poller.configuration` + `standard-resources/{name}/metadata/events`
|
|
16
|
+
3. Cross-reference: resources[] ↔ SR files (paths match), hook `ref`s ↔ `hooks/` files,
|
|
17
|
+
configuration[] ↔ auth-type requirements, element-metadata flags ↔ capabilities.
|
|
18
|
+
4. `validate` for automated pass/fail (use this to gate, not `inspect`).
|
|
19
|
+
|
|
20
|
+
## Connection issues
|
|
21
|
+
- **OAuth redirect loop / error**: wrong `oauth.authorization.url` (often the token URL by
|
|
22
|
+
mistake), missing scopes, hardcoded `oauth.callback.url` (periodic sets it), `typeOauth`
|
|
23
|
+
false when it should be true.
|
|
24
|
+
- **Token exchange fails**: wrong `oauth.token.url`; vendor expects/rejects
|
|
25
|
+
`oauth.basic.header`; creds in wrong place (body vs header).
|
|
26
|
+
- **Works then fails after expiry**: `oauth.token.refresh.url` unset, refresh interval too
|
|
27
|
+
long, or wrong param mapping in `oauthOnTokenRefresh`.
|
|
28
|
+
- **API key unauthorized**: wrong header name, missing prefix (`Bearer `/`Token `), or key
|
|
29
|
+
sent as query when the vendor wants a header. Re-run `auth set --auth-type customApiKey`.
|
|
30
|
+
|
|
31
|
+
## Resource (activity) issues
|
|
32
|
+
- **Empty results**: wrong `vendorPath`, wrong response `root-key`, postRequest hook filters
|
|
33
|
+
wrongly, or broken pagination.
|
|
34
|
+
- **404**: `vendorPath` typo/version, path-param mismatch, wrong/missing `base.url`,
|
|
35
|
+
deprecated endpoint.
|
|
36
|
+
- **Create/Update sends wrong data**: request body wrapped in the wrong key, preRequest hook
|
|
37
|
+
mangles the body, IS↔vendor field-name mismatch.
|
|
38
|
+
- **Fields don't show in Studio**: missing `--request-curated`/`--response-curated` on the
|
|
39
|
+
`activity field create` call, or the field is `--hidden`.
|
|
40
|
+
- **Object shows in Studio but has NO methods under it**: the SR method's path points at the
|
|
41
|
+
VENDOR path, not the IS slug `/<object>`, so periodic can't link it; `validate` flags "SR
|
|
42
|
+
linkage broken". Fix: set the SR method's `reference` (or `path`) to the IS slug `/<object>`
|
|
43
|
+
so it matches the element.json resource path. See [standard-resources.md](standard-resources.md).
|
|
44
|
+
- **Methods aren't curated activities**: a method created with `--no-curate` has no `curated`
|
|
45
|
+
block — re-run `activity create` (curates by default) or `activity method curate`.
|
|
46
|
+
- **by-id confusion**: GETBYID/PATCH/DELETE auto-add the `/{primaryKey}` path param; only
|
|
47
|
+
model GETBYID for TRUE by-id endpoints, not search.
|
|
48
|
+
|
|
49
|
+
## Hook issues
|
|
50
|
+
- **done() not called**: an exception or a branch skips `done()`.
|
|
51
|
+
- **Hook not applied**: not registered in element.json (run without `--no-auto-register`),
|
|
52
|
+
`ref`/filename mismatch (case-sensitive), wrong `type` or resource/method.
|
|
53
|
+
- **Global hook over-applies**: re-create it scoped to the resource instead of `--global`.
|
|
54
|
+
- **Hook throws / 500 from a hook**: a real JS error, or a `require()` of a module Denali doesn't provide (it supports `axios`/`crypto`/`url`/`querystring`/`lodash`/`moment`). Modern JS (`?.`, `??`, `async`/`await`) is fine. See [hooks.md](hooks.md).
|
|
55
|
+
|
|
56
|
+
## Event / pagination issues
|
|
57
|
+
- **Events not working**: `hasEvents` unset, missing event config keys, malformed
|
|
58
|
+
`event.poller.configuration` JSON. Re-run `trigger create` to re-seed the bundle.
|
|
59
|
+
- **Polling returns everything**: missing date filter in the URL, wrong `--updated-date-field`,
|
|
60
|
+
or date-format mismatch. See [events.md](events.md).
|
|
61
|
+
- **Only first page**: wrong `--pagination-type`, missing `--next-page-key`/`--root-key`, or
|
|
62
|
+
missing nextPage handling in a preRequest hook.
|
|
63
|
+
|
|
64
|
+
## Publish / import issues (tenant lifecycle — under `uip is connectors`, NOT builder)
|
|
65
|
+
`import` → `publish` order and the `publish`/`--wait`/`publish-status` mechanics live in
|
|
66
|
+
SKILL.md; the symptoms below are debug-only:
|
|
67
|
+
- **Local edits not reflected after publish**: `publish` promotes what was already imported —
|
|
68
|
+
it does NOT push local file changes. Re-`import` first, then `publish`.
|
|
69
|
+
- **"version must be higher"**: re-publishing needs a HIGHER version than the last published
|
|
70
|
+
one. Bump `element-metadata.json:latestVersion` (or pass `--version 1.0.1`). A brand-new
|
|
71
|
+
connector publishes with NO `--version` (`init` seeds `latestVersion = "1.0.0"`).
|
|
72
|
+
- **Published but not visible**: Studio Web shows a fresh publish ~5–10 min after `SUCCESS`.
|
|
73
|
+
- **Live smoke test**: `uip is connectors probe --connection-id <id>` proxies each on-disk SR
|
|
74
|
+
through a real connection (GET-only; `--include-mutations` to add POST/PUT/PATCH/DELETE).
|
|
75
|
+
Catches `metadata.method.<VERB>.path` typos that static `validate` cannot.
|
|
76
|
+
- **Auth**: `import` / `download` / `publish` / `publish-status` / `probe` all require `uip login`.
|
|
77
|
+
|
|
78
|
+
## See also
|
|
79
|
+
- [hooks.md](hooks.md), [events.md](events.md), [configuration.md](configuration.md),
|
|
80
|
+
[standard-resources.md](standard-resources.md), [system-resources.md](system-resources.md)
|