@uipath/skills 1.199.0 → 1.200.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 +1 -1
- package/CODEOWNERS +14 -8
- package/README.md +18 -3
- package/assets/skill-status.json +9 -1
- package/assets/uip-catalog-snapshot.json +227 -21
- package/package.json +11 -2
- package/scripts/npm-package-lifecycle.mjs +46 -0
- package/skills/uipath-admin/SKILL.md +5 -1
- package/skills/uipath-admin/references/audit-commands.md +1 -1
- package/skills/uipath-admin/references/audit-workflow-guide.md +9 -0
- package/skills/uipath-agents/SKILL.md +2 -2
- package/skills/uipath-agents/references/lowcode/capabilities/context/index.md +7 -0
- package/skills/uipath-agents/references/lowcode/capabilities/integration-service/integration-service.md +5 -6
- package/skills/uipath-agents/references/lowcode/critical-rules/critical-rules.md +1 -1
- package/skills/uipath-agents/references/lowcode/evaluations/evaluation-sets.md +5 -0
- package/skills/uipath-agents/references/lowcode/project-lifecycle.md +3 -3
- package/skills/uipath-agents/references/lowcode/prompting/autonomous-agent-prompting-guide.md +3 -2
- package/skills/uipath-api-workflow/SKILL.md +2 -1
- package/skills/uipath-api-workflow/references/cli-reference.md +3 -3
- package/skills/uipath-coded-apps/SKILL.md +3 -2
- package/skills/uipath-coded-apps/assets/fixtures/governance-dashboard-starter-kit.tar.gz +0 -0
- package/skills/uipath-coded-apps/assets/templates/web-app-template.md +1 -1
- package/skills/uipath-coded-apps/references/create-web-app.md +60 -48
- package/skills/uipath-coded-apps/references/dashboards/CAPABILITY.md +2 -2
- package/skills/uipath-coded-apps/references/dashboards/plugins/build/impl.md +2 -2
- package/skills/uipath-coded-apps/references/dashboards/primitives/tier-resolution.md +16 -16
- package/skills/uipath-coded-apps/references/oauth-scopes.md +28 -272
- package/skills/uipath-coded-apps/references/sdk/action-center.md +26 -243
- package/skills/uipath-coded-apps/references/sdk/agents.md +20 -130
- package/skills/uipath-coded-apps/references/sdk/conversational-agent.md +52 -706
- package/skills/uipath-coded-apps/references/sdk/data-fabric.md +20 -237
- package/skills/uipath-coded-apps/references/sdk/feedback.md +4 -139
- package/skills/uipath-coded-apps/references/sdk/governance-traces.md +7 -55
- package/skills/uipath-coded-apps/references/sdk/governance.md +4 -44
- package/skills/uipath-coded-apps/references/sdk/imports.md +77 -35
- package/skills/uipath-coded-apps/references/sdk/maestro.md +29 -406
- package/skills/uipath-coded-apps/references/sdk/orchestrator.md +30 -324
- package/skills/uipath-coded-apps/references/sdk/pagination.md +9 -67
- package/skills/uipath-coded-apps/references/sdk/traces.md +8 -43
- package/skills/uipath-functions/SKILL.md +23 -23
- package/skills/uipath-governance/SKILL.md +5 -4
- package/skills/uipath-governance/references/cli-cheatsheet.md +2 -1
- package/skills/uipath-governance/references/compliance-pack/coverage/impl.md +143 -58
- package/skills/uipath-governance/references/compliance-pack/restore/impl.md +61 -0
- package/skills/uipath-human-in-the-loop/SKILL.md +4 -2
- package/skills/uipath-insights/SKILL.md +17 -18
- package/skills/uipath-ixp/SKILL.md +12 -7
- package/skills/uipath-ixp/references/cli-reference.md +71 -9
- package/skills/uipath-ixp/references/improve-prompts-guide.md +23 -9
- package/skills/uipath-ixp/references/label-documents-guide.md +33 -5
- package/skills/uipath-maestro-bpmn/SKILL.md +15 -14
- package/skills/uipath-maestro-bpmn/references/cli-conventions.md +15 -6
- package/skills/uipath-maestro-bpmn/references/structural-bpmn.md +18 -17
- package/skills/uipath-maestro-case/SKILL.md +46 -33
- package/skills/uipath-maestro-case/assets/templates/sdd-template.md +77 -37
- package/skills/uipath-maestro-case/assets/templates/sdd-viewer.html +0 -2
- package/skills/uipath-maestro-case/references/bindings-and-expressions.md +3 -1
- package/skills/uipath-maestro-case/references/bindings-v2-sync.md +2 -2
- package/skills/uipath-maestro-case/references/brownfield.md +15 -5
- package/skills/uipath-maestro-case/references/case-commands.md +19 -3
- package/skills/uipath-maestro-case/references/case-editing-operations.md +24 -21
- package/skills/uipath-maestro-case/references/case-schema.md +38 -16
- package/skills/uipath-maestro-case/references/connector-trigger-common.md +15 -8
- package/skills/uipath-maestro-case/references/evals/evals.json +35 -18
- package/skills/uipath-maestro-case/references/implementation.md +86 -71
- package/skills/uipath-maestro-case/references/phase-0-interview.md +92 -23
- package/skills/uipath-maestro-case/references/phased-execution.md +70 -55
- package/skills/uipath-maestro-case/references/placeholder-tasks.md +5 -5
- package/skills/uipath-maestro-case/references/planning.md +57 -9
- package/skills/uipath-maestro-case/references/plugins/case/impl-json.md +7 -5
- package/skills/uipath-maestro-case/references/plugins/case/planning.md +1 -1
- package/skills/uipath-maestro-case/references/plugins/conditions/case-exit-conditions/impl-json.md +5 -5
- package/skills/uipath-maestro-case/references/plugins/conditions/stage-entry-conditions/impl-json.md +41 -5
- package/skills/uipath-maestro-case/references/plugins/conditions/stage-entry-conditions/planning.md +27 -3
- package/skills/uipath-maestro-case/references/plugins/conditions/stage-exit-conditions/impl-json.md +6 -6
- package/skills/uipath-maestro-case/references/plugins/conditions/stage-exit-conditions/planning.md +3 -1
- package/skills/uipath-maestro-case/references/plugins/conditions/task-entry-conditions/impl-json.md +20 -7
- package/skills/uipath-maestro-case/references/plugins/conditions/task-entry-conditions/planning.md +37 -4
- package/skills/uipath-maestro-case/references/plugins/sla/impl-json.md +24 -13
- package/skills/uipath-maestro-case/references/plugins/sla/planning.md +9 -3
- package/skills/uipath-maestro-case/references/plugins/stages/impl-json.md +4 -0
- package/skills/uipath-maestro-case/references/plugins/stages/planning.md +4 -1
- package/skills/uipath-maestro-case/references/plugins/tasks/action/impl-json.md +3 -1
- package/skills/uipath-maestro-case/references/plugins/tasks/action/planning.md +2 -0
- package/skills/uipath-maestro-case/references/plugins/tasks/agent/impl-json.md +3 -2
- package/skills/uipath-maestro-case/references/plugins/tasks/agent/planning.md +4 -2
- package/skills/uipath-maestro-case/references/plugins/tasks/api-workflow/impl-json.md +3 -2
- package/skills/uipath-maestro-case/references/plugins/tasks/api-workflow/planning.md +4 -2
- package/skills/uipath-maestro-case/references/plugins/tasks/case-management/impl-json.md +3 -2
- package/skills/uipath-maestro-case/references/plugins/tasks/case-management/planning.md +4 -2
- package/skills/uipath-maestro-case/references/plugins/tasks/connector-activity/impl-json.md +1 -1
- package/skills/uipath-maestro-case/references/plugins/tasks/connector-activity/planning.md +2 -0
- package/skills/uipath-maestro-case/references/plugins/tasks/connector-trigger/impl-json.md +1 -1
- package/skills/uipath-maestro-case/references/plugins/tasks/connector-trigger/planning.md +2 -0
- package/skills/uipath-maestro-case/references/plugins/tasks/create-inline-common.md +1 -1
- package/skills/uipath-maestro-case/references/plugins/tasks/process/impl-json.md +3 -2
- package/skills/uipath-maestro-case/references/plugins/tasks/process/planning.md +6 -4
- package/skills/uipath-maestro-case/references/plugins/tasks/rpa/impl-json.md +3 -2
- package/skills/uipath-maestro-case/references/plugins/tasks/rpa/planning.md +4 -2
- package/skills/uipath-maestro-case/references/plugins/tasks/wait-for-timer/impl-json.md +4 -3
- package/skills/uipath-maestro-case/references/plugins/tasks/wait-for-timer/planning.md +4 -0
- package/skills/uipath-maestro-case/references/plugins/triggers/event/impl-json.md +17 -14
- package/skills/uipath-maestro-case/references/plugins/triggers/event/planning.md +1 -1
- package/skills/uipath-maestro-case/references/plugins/triggers/manual/impl-json.md +13 -10
- package/skills/uipath-maestro-case/references/plugins/triggers/timer/impl-json.md +18 -16
- package/skills/uipath-maestro-case/references/plugins/triggers/timer/planning.md +2 -2
- package/skills/uipath-maestro-case/references/plugins/variables/bindings/impl-json.md +1 -1
- package/skills/uipath-maestro-case/references/plugins/variables/global-vars/impl-json.md +11 -9
- package/skills/uipath-maestro-case/references/plugins/variables/io-binding/impl-json.md +6 -2
- package/skills/uipath-maestro-case/references/plugins/variables/io-binding/planning.md +19 -1
- package/skills/uipath-maestro-case/references/registry-discovery.md +3 -3
- package/skills/uipath-maestro-case/references/sdd-generation-rules.md +155 -51
- package/skills/uipath-maestro-case/references/sla-response-shapes.md +74 -0
- package/skills/uipath-maestro-flow/SKILL.md +4 -3
- package/skills/uipath-maestro-flow/references/author/CAPABILITY.md +3 -0
- package/skills/uipath-maestro-flow/references/author/references/editing-operations-json.md +10 -17
- package/skills/uipath-maestro-flow/references/author/references/editing-operations.md +1 -1
- package/skills/uipath-maestro-flow/references/author/references/greenfield.md +8 -6
- package/skills/uipath-maestro-flow/references/author/references/planning-impl.md +1 -1
- package/skills/uipath-maestro-flow/references/author/references/plugins/agent/impl.md +4 -9
- package/skills/uipath-maestro-flow/references/author/references/plugins/agentic-process/impl.md +3 -7
- package/skills/uipath-maestro-flow/references/author/references/plugins/api-workflow/impl.md +5 -8
- package/skills/uipath-maestro-flow/references/author/references/plugins/connector/impl.md +11 -4
- package/skills/uipath-maestro-flow/references/author/references/plugins/flow/impl.md +3 -7
- package/skills/uipath-maestro-flow/references/author/references/plugins/inline-agent/impl.md +14 -17
- package/skills/uipath-maestro-flow/references/author/references/plugins/ixp/impl.md +60 -13
- package/skills/uipath-maestro-flow/references/author/references/plugins/queue/impl.md +2 -14
- package/skills/uipath-maestro-flow/references/author/references/plugins/rpa/impl.md +4 -9
- package/skills/uipath-maestro-flow/references/author/references/plugins/script/impl.md +3 -0
- package/skills/uipath-maestro-flow/references/author/references/plugins/subflow/impl.md +5 -9
- package/skills/uipath-maestro-flow/references/author/references/plugins/transform/impl.md +13 -0
- package/skills/uipath-maestro-flow/references/shared/action-nodes.md +2 -2
- package/skills/uipath-maestro-flow/references/shared/file-format.md +16 -12
- package/skills/uipath-maestro-flow/references/shared/variables-and-expressions.md +3 -3
- package/skills/uipath-planner/SKILL.md +1 -1
- package/skills/uipath-planner/references/non-pdd-lane-guide.md +1 -1
- package/skills/uipath-platform/SKILL.md +1 -1
- package/skills/uipath-platform/references/data-fabric/bulk-import.md +10 -27
- package/skills/uipath-platform/references/data-fabric/choice-sets.md +7 -64
- package/skills/uipath-platform/references/data-fabric/data-fabric.md +76 -267
- package/skills/uipath-platform/references/data-fabric/entity-schema.md +23 -99
- package/skills/uipath-platform/references/data-fabric/file-attachments.md +5 -28
- package/skills/uipath-platform/references/data-fabric/filter-platform-contract.md +2 -2
- package/skills/uipath-platform/references/data-fabric/records-query.md +11 -32
- package/skills/uipath-platform/references/integration-service/reference-resolution.md +6 -2
- package/skills/uipath-platform/references/licensing/consumables-report.md +18 -0
- package/skills/uipath-platform/references/licensing/licensing.md +1 -1
- package/skills/uipath-platform/references/orchestrator/run-jobs.md +9 -2
- package/skills/uipath-platform/references/orchestrator/setup-environment.md +9 -0
- package/skills/uipath-platform/references/traces/feedback.md +4 -1
- package/skills/uipath-process-mining/SKILL.md +97 -0
- package/skills/uipath-process-mining/references/app-types.md +66 -0
- package/skills/uipath-process-mining/references/data-model.md +130 -0
- package/skills/uipath-process-mining/references/lifecycle-and-rbac.md +67 -0
- package/skills/uipath-process-mining/references/model-editing.md +112 -0
- package/skills/uipath-process-mining/references/pre-flight.md +119 -0
- package/skills/uipath-process-mining/references/querying.md +66 -0
- package/skills/uipath-process-mining/references/transformations.md +80 -0
- package/skills/uipath-process-mining/references/uip-pm-cli.md +145 -0
- package/skills/uipath-review/SKILL.md +23 -18
- package/skills/uipath-review/references/agents/agent-grading-rubric.md +1 -1
- package/skills/uipath-review/references/agents/agent-review-checklist.md +0 -4
- package/skills/uipath-review/references/agents/agents-coded-rules.md +1 -10
- package/skills/uipath-review/references/agents/agents-lowcode-rules.md +3 -6
- package/skills/uipath-review/references/agents/guardrails/coded-guardrails-review.md +62 -14
- package/skills/uipath-review/references/agents/guardrails/guardrails-review.md +60 -4
- package/skills/uipath-review/references/review-workflow-guide.md +3 -2
- package/skills/uipath-review/references/rule-catalog-workflow.md +4 -5
- package/skills/uipath-rpa/.maintenance/pattern-card-maintenance.md +20 -0
- package/skills/uipath-rpa/SKILL.md +57 -55
- package/skills/uipath-rpa/agents/uipath-project-discovery-agent.md +75 -19
- package/skills/uipath-rpa/assets/codedworkflow-template.md +245 -11
- package/skills/uipath-rpa/references/cli-reference.md +229 -6
- package/skills/uipath-rpa/references/coded/codedworkflow-reference.md +158 -2
- package/skills/uipath-rpa/references/coded/integration-service-guide.md +6 -5
- package/skills/uipath-rpa/references/coded/operations-guide.md +273 -5
- package/skills/uipath-rpa/references/coded-vs-xaml-guide.md +3 -3
- package/skills/uipath-rpa/references/common-pattern-card.md +303 -0
- package/skills/uipath-rpa/references/data-manipulation-guide.md +18 -3
- package/skills/uipath-rpa/references/debugging.md +0 -2
- package/skills/uipath-rpa/references/environment-setup.md +309 -1
- package/skills/uipath-rpa/references/error-handling-guide.md +1 -1
- package/skills/uipath-rpa/references/execution-maps-guide.md +110 -0
- package/skills/uipath-rpa/references/is-connector-xaml-guide.md +58 -4
- package/skills/uipath-rpa/references/legacy/activity-docs/Excel.md +1 -1
- package/skills/uipath-rpa/references/legacy/activity-docs/_DU-PROCESS.md +0 -2
- package/skills/uipath-rpa/references/legacy/activity-docs/_INDEX.md +2 -2
- package/skills/uipath-rpa/references/legacy/activity-docs/_PATTERNS.md +1 -1
- package/skills/uipath-rpa/references/legacy/activity-docs/_REFRAMEWORK.md +2 -7
- package/skills/uipath-rpa/references/legacy/cli-reference.md +599 -0
- package/skills/uipath-rpa/references/legacy/error-handling-guide.md +2 -2
- package/skills/uipath-rpa/references/legacy/legacy-mode-guide.md +16 -16
- package/skills/uipath-rpa/references/legacy/project-organization-guide.md +2 -2
- package/skills/uipath-rpa/references/legacy/selector-guide.md +163 -1
- package/skills/uipath-rpa/references/legacy/testing-guide.md +246 -3
- package/skills/uipath-rpa/references/legacy/xaml-basics-and-rules.md +267 -2
- package/skills/uipath-rpa/references/library-authoring-guide.md +4 -3
- package/skills/uipath-rpa/references/testing-guide.md +2 -28
- package/skills/uipath-rpa/references/trigger-pattern-guide.md +1 -1
- package/skills/uipath-rpa/references/xaml/canvas-layout-guide.md +140 -33
- package/skills/uipath-rpa/references/xaml/common-pitfalls.md +57 -240
- package/skills/uipath-rpa/references/xaml/csharp-activity-binding-guide.md +42 -2
- package/skills/uipath-rpa/references/xaml/long-running-workflow-guide.md +1 -1
- package/skills/uipath-rpa/references/xaml/xaml-basics-and-rules.md +194 -228
- package/skills/uipath-solution/references/activate-and-manage.md +22 -0
- package/skills/uipath-solution/references/develop-solution.md +26 -2
- package/skills/uipath-solution/references/pack-and-deploy.md +43 -9
- package/skills/uipath-test/SKILL.md +4 -4
- package/skills/uipath-test/references/playwright-first-mile-guide.md +5 -4
- package/skills/uipath-test/references/publish-and-link-guide.md +2 -2
- package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/click-silent-no-op.md +5 -5
- package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/queue-operation-failed.md +20 -4
- package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/summary.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/csv-activities/playbooks/read-csv-file-not-found.md +12 -0
- package/skills/uipath-troubleshoot/references/activity-packages/mail-activities/playbooks/send-outlook-mail-failures.md +12 -1
- package/skills/uipath-troubleshoot/references/activity-packages/system-activities/playbooks/get-asset-activity-bug-silent-failure.md +2 -1
- package/skills/uipath-troubleshoot/references/activity-packages/terminal-activities/playbooks/terminal-session-connection-failed.md +5 -1
- package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/click-silent-no-op.md +5 -5
- package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/dependency-version-conflict.md +27 -6
- package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/napplicationcard-view-generation-failed.md +10 -0
- package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/scope-container-wrong-page.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/summary.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/overview.md +4 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/http-request-auth-401-403.md +44 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/http-request-connection-failure.md +2 -1
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/http-request-content-type-rejected.md +37 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/http-request-proxy-blocked.md +39 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/package-version-mismatch.md +42 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/securestring-misuse-analyzer.md +41 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/summary.md +5 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-null-reference.md +14 -1
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-runtime-exception.md +2 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/is-activities-prerelease-not-found.md +39 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/response-content-too-large.md +41 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/summary.md +9 -0
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/console-conflict-login-to-console.md +40 -0
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/credential-store-unavailable.md +42 -0
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/executor-start-transient-rerun.md +49 -0
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/job-consecutive-system-exceptions.md +47 -0
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/job-faulted-session-timeout.md +19 -19
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/job-output-too-large.md +47 -0
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/job-stopped-generic-exit-code.md +55 -0
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/known-issue-robot-defect.md +40 -0
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/platform-incident-correlation.md +45 -0
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/screen-capture-handle-invalid.md +43 -0
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/serverless-license-quota.md +43 -0
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/serverless-time-limit-exceeded.md +34 -0
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/workstation-in-use-machine-slots.md +40 -0
- package/skills/uipath-troubleshoot/references/products/orchestrator/summary.md +13 -1
- package/version-manifest.json +2 -2
- package/skills/uipath-maestro-bpmn/validator/README.md +0 -224
- package/skills/uipath-maestro-bpmn/validator/model.mjs +0 -419
- package/skills/uipath-maestro-bpmn/validator/package.json +0 -17
- package/skills/uipath-maestro-bpmn/validator/rules.mjs +0 -1403
- package/skills/uipath-maestro-bpmn/validator/samples/invalid-conditional-and-variable.bpmn +0 -25
- package/skills/uipath-maestro-bpmn/validator/samples/valid-baseline.bpmn +0 -52
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/A.2.0.bpmn +0 -157
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/A.2.1.bpmn +0 -333
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/B.1.0.bpmn +0 -598
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/B.2.0.bpmn +0 -1709
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.2.0.bpmn +0 -564
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.3.0.bpmn +0 -671
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.4.0.bpmn +0 -1045
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.5.0.bpmn +0 -1176
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.6.0.bpmn +0 -670
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.7.0.bpmn +0 -466
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Can_Parse_Complex_Process_With_Task_Gateway_BoundaryEvent_etc.bpmn +0 -74
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/ExclusiveGatewayDefaultFlow.bpmn +0 -32
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/ExternalAgentWorkflow.bpmn +0 -62
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Golden_Scenario.initial.bpmn +0 -361
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/InclusiveJoinRouteAwayBranch.bpmn +0 -62
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_AsyncExecution_And_Create_CorrectModel.bpmn +0 -74
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_IXP_ExtractionValidation_And_Create_CorrectModel.bpmn +0 -35
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_IXP_Extraction_FileUpload_And_Create_CorrectModel.bpmn +0 -33
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_IXP_Extraction_JobAttachment_And_Create_CorrectModel.bpmn +0 -35
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_SubProcess_With_Multiple_Element_Types.bpmn +0 -76
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/StartEventWithOutputs.bpmn +0 -36
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/StartGatewayEnd.bpmn +0 -44
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/all elements.bpmn +0 -516
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/all_sequence_flow_types.bpmn +0 -173
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/demo.bpmn +0 -181
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/subprocess-example-001-collapsed.bpmn +0 -126
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/subprocess-example-001-expanded.bpmn +0 -122
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/subprocess-example-003-collapsed_deeply-nested.bpmn +0 -438
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/A.1.0.bpmn +0 -87
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/A.3.0.bpmn +0 -165
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ApiWorkflow.bpmn +0 -39
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnNestedSubProcessTests.bpmn +0 -102
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnTimerBoundaryEvents.bpmn +0 -160
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnXmlWithCatchAllErrorEventSubProcess.bpmn +0 -45
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnXmlWithSpecificErrorEventSubProcess.bpmn +0 -46
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/CaseManagementWithConstantIdentifier.bpmn +0 -218
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ErrorBoundary.bpmn +0 -78
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ErrorPropagationInEventSubprocess.bpmn +0 -340
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/EventBasedGatewayFirstCatcherWins.bpmn +0 -56
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Example-EventBasedGateway.bpmn +0 -117
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ExclusiveGatewayConditional.bpmn +0 -45
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ExclusiveGatewaySharedEndEvent.bpmn +0 -45
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ExclusiveWithParallelGateway.bpmn +0 -68
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/FourScriptTasks.bpmn +0 -84
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/HitlTaskOnly.bpmn +0 -55
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/InclusiveGatewayForkJoin.bpmn +0 -69
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_BPMN_Elements_And_Create_CorrectModel.bpmn +0 -20
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_HttpRequest_ServiceTask_And_Create_Correct_Model.bpmn +0 -34
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_MessageBoundaryEvent_And_Create_CorrectModel.bpmn +0 -87
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_Script_Task_V2_And_Create_Correct_Model.bpmn +0 -31
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_Sets_Containers_Properly.bpmn +0 -129
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ScriptWritesVariableThenGatewayBranches.bpmn +0 -59
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/boundaryevent.bpmn +0 -30
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/collapsed-subprocess.bpmn +0 -83
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/connectable-types.bpmn +0 -85
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/extensions-orchestrator-start-job.bpmn +0 -80
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/multiparticipantpool.bpmn +0 -77
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/nestedsubprocess.bpmn +0 -36
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/simple.bpmn +0 -59
- package/skills/uipath-maestro-bpmn/validator/test/integration.test.mjs +0 -146
- package/skills/uipath-maestro-bpmn/validator/test/model-helpers.mjs +0 -42
- package/skills/uipath-maestro-bpmn/validator/test/ported-rule-tests.mjs +0 -983
- package/skills/uipath-maestro-bpmn/validator/test/run-tests.mjs +0 -530
- package/skills/uipath-maestro-bpmn/validator/uipath-moddle.v1.json +0 -715
- package/skills/uipath-maestro-bpmn/validator/validate-bpmn.mjs +0 -164
- package/skills/uipath-review/references/agents/agents-common-rules.md +0 -32
- package/skills/uipath-rpa/assets/before-after-hooks-template.md +0 -115
- package/skills/uipath-rpa/assets/helper-utility-template.md +0 -22
- package/skills/uipath-rpa/assets/testcase-template.md +0 -92
- package/skills/uipath-rpa/references/coded/coding-guidelines.md +0 -255
- package/skills/uipath-rpa/references/coded/inspect-package-guide.md +0 -80
- package/skills/uipath-rpa/references/coded/third-party-packages-guide.md +0 -67
- package/skills/uipath-rpa/references/connector-capabilities.md +0 -79
- package/skills/uipath-rpa/references/legacy/activity-docs/Testing.md +0 -95
- package/skills/uipath-rpa/references/legacy/activity-docs/UIAutomation.md +0 -159
- package/skills/uipath-rpa/references/legacy/common-pitfalls.md +0 -318
- package/skills/uipath-rpa/references/legacy/discovery-workflow.md +0 -147
- package/skills/uipath-rpa/references/legacy/environment-setup.md +0 -78
- package/skills/uipath-rpa/references/legacy/project-structure.md +0 -206
- package/skills/uipath-rpa/references/legacy/test-data-guide.md +0 -142
- package/skills/uipath-rpa/references/legacy/validation-and-fixing.md +0 -154
- package/skills/uipath-rpa/references/project-structure-guide.md +0 -168
- package/skills/uipath-rpa/references/project-structure.md +0 -135
- package/skills/uipath-rpa/references/publishing-guide.md +0 -80
- package/skills/uipath-rpa/references/validation-guide.md +0 -170
- package/skills/uipath-rpa/references/xaml/csharp-expression-pitfalls.md +0 -43
- package/skills/uipath-rpa/references/xaml/flowchart-guide.md +0 -113
- package/skills/uipath-rpa/references/xaml/workflow-guide.md +0 -258
|
@@ -1,246 +1,29 @@
|
|
|
1
|
-
# Data Fabric
|
|
1
|
+
# Data Fabric — Traps & Server Behavior
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Signatures/params/examples: `dist/entities/index.d.ts` (trigger-event behavior differs per method — the JSDoc on each insert/update/delete method documents it). Per-method scopes: shipped `docs/oauth-scopes.md`. This file covers only what neither can express.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
import { Entities, ChoiceSets } from '@uipath/uipath-typescript/entities';
|
|
7
|
-
```
|
|
5
|
+
> **Scope pairing warning:** schema introspection (`entities.getAll()` / `getById()`) and record I/O sit in different scope pairs — `DataFabric.Schema.Read` vs `DataFabric.Data.Read` / `DataFabric.Data.Write`. This file mandates schema introspection before writes and filters, so an app with only Data scopes 403s on the introspection step. Check the shipped table per method.
|
|
8
6
|
|
|
9
7
|
## Anti-shapes & gotchas (read first)
|
|
10
8
|
|
|
11
|
-
Data Fabric does NOT behave like a typical RDBMS. These
|
|
9
|
+
Data Fabric does NOT behave like a typical RDBMS. These server behaviors are invisible to both the types and the JSDoc. Before writing analytics, filters, or update logic, call `entities.getById(id)` and inspect `fields[].name` + `fieldDataType.name`. Pick your data strategy from what's actually there — do NOT assume.
|
|
12
10
|
|
|
13
|
-
1. **Choice values come back as `numberId` integers on every read path.** Including ungrouped `getRecordById`
|
|
14
|
-
2. **
|
|
15
|
-
3. **
|
|
16
|
-
4. **
|
|
17
|
-
5. **
|
|
18
|
-
6. **
|
|
19
|
-
7. **Aggregates require server-side `aggregates` + `groupBy`.** Don't fetch raw rows and `.length` / `.reduce` client-side — every list call returns one page (see [pagination.md](pagination.md))
|
|
20
|
-
8.
|
|
21
|
-
9.
|
|
22
|
-
10. **`MULTILINE_MAX` fields return a size marker on list/query reads.** `getAllRecords` / `queryRecordsById` return a string starting `HasValue=true Length=N` (live form: `"HasValue=true Length=20000 — call Get Entity Record By Id activity to retrieve content"`), never the content — only `getRecordById` returns the full value (SDK 1.5.2+, v2 read endpoint). Never render or persist the marker as data, and never echo it back through `updateRecordById` / `updateRecordsById` — the server accepts it as a normal value and silently destroys the real content; omit the key instead. The type accepts no filters or `sortOptions` (server 400: *"Field '<name>' is of type MULTILINE_MAX and cannot be used in filters."*). `lengthLimit` is a UTF-16 **byte** budget (max 131072 ≈ 65,536 chars).
|
|
11
|
+
1. **Choice values come back as `numberId` integers on every read path.** Including ungrouped `getRecordById` / `queryRecordsById` items AND `groupBy` result keys. The SDK does NOT convert to string names. Code like `record.Priority.toLowerCase()` throws or produces `"5"`; `if (record.Status === "Resolved")` is always false because `record.Status` is `5`. Build `numberId → name` maps via `choiceSets.getById(<choiceSetId>)` (get `<choiceSetId>` from `entities.getById(id).fields[].choiceSetId`) and translate every read.
|
|
12
|
+
2. **Choice-set writes and filters take the integer `numberId`, not the value name.** Writes: sending `status: "Open"` fails with `Single choiceset value Open is not integer`. Filters: `{ fieldName: 'Status', operator: Equals, value: 'Resolved' }` matches nothing — use `value: String(numberIdForResolved)` (applies to **every** operator touching a choice field, including `NotEquals`, `In`, `NotIn`). Failure is silent: 0 rows or all rows depending on operator.
|
|
13
|
+
3. **Record keys must match the schema's exact casing.** The SDK does NOT pascalize keys. If the entity field is `Subject` (PascalCase, the DF UI default), sending `{ subject: … }` fails with `Required field "Subject" is not provided` — DF's required-field check is case-sensitive. Use `field.name` verbatim as the record key.
|
|
14
|
+
4. **Unknown keys on insert/update are silently dropped.** A typo'd field name in `insertRecordsById` does NOT error — the value is discarded without warning. Introspect the schema and validate keys before bulk operations.
|
|
15
|
+
5. **DF auto-creates audit fields that look like domain fields but aren't.** Every entity has `CreateTime`, `UpdateTime`, `CreatedBy`, `UpdatedBy`, `Id`, `RecordOwner` — **row metadata** (when DF wrote the row), not the business event the row represents. They appear in the schema but are not writable. Need a domain-level "created at" / "owner"? Look for a custom field with a domain-specific name; if none exists, flag it to the user rather than silently using the audit column. Seeding historical timestamps: add a custom `DATETIME_WITH_TZ` field (e.g., `OriginalCreatedTime`) — do NOT name it `CreateTime` / `CreatedTime`, the audit name conflict causes silent drops or schema rejection.
|
|
16
|
+
6. **No `IsNull` filter operator.** The server can't ask "where field is null" (`QueryFilterOperator` has no such member). Filter client-side after fetching, or design with explicit non-null sentinels.
|
|
17
|
+
7. **Aggregates require server-side `aggregates` + `groupBy`.** Don't fetch raw rows and `.length` / `.reduce` client-side — every list call returns one page (see [pagination.md](pagination.md)), so `result.items.length` after `queryRecordsById({ filter })` returns at most one page's worth, no matter how many rows match. Use `totalCount` for cardinality, `aggregates: [{ function: 'COUNT', field: 'Id' }]` (with `groupBy` for per-bucket counts) for chart data.
|
|
18
|
+
8. **File-type fields (`fieldDisplayType === 'File'`) aren't strings.** The record carries only metadata (`{ id, name, size, contentType }`); stringifying gives `"[object Object]"`. To display, call `entities.downloadAttachment(entityId, recordId, fieldName)` → `Blob` → `URL.createObjectURL` for an `<img src>`. **Neither `contentType` nor filename extension is reliable for detecting kind** — DF often returns `application/octet-stream`, and the stored `name` is frequently a bare UUID with no extension. To decide inline render vs download link, either (a) sniff the blob's magic bytes after download (PNG starts `89 50 4E 47`, JPEG `FF D8 FF`, GIF `47 49 46 38`, PDF `25 50 44 46`), or (b) optimistically attempt `<img src={objectUrl}>` and swap to a download link in `onError`. Writes go through `uploadAttachment(...)`, not `insertRecordById` / `updateRecordById`.
|
|
19
|
+
9. **`MULTILINE_MAX` fields return a size marker on list/query reads.** `getAllRecords` / `queryRecordsById` return a string starting `HasValue=true Length=N` (live form: `"HasValue=true Length=20000 — call Get Entity Record By Id activity to retrieve content"`), never the content — only `getRecordById` returns the full value (SDK 1.5.2+, v2 read endpoint). Never render or persist the marker as data, and never echo it back through `updateRecordById` / `updateRecordsById` — the server accepts it as a normal value and silently destroys the real content; omit the key instead. The type accepts no filters or `sortOptions` (server 400: *"Field '<name>' is of type MULTILINE_MAX and cannot be used in filters."*). `lengthLimit` is a UTF-16 **byte** budget (max 131072 ≈ 65,536 chars).
|
|
23
20
|
|
|
24
|
-
##
|
|
21
|
+
## Three paths require choice-value translation — don't miss any
|
|
25
22
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
| Path | Direction | What to do |
|
|
24
|
+
|---|---|---|
|
|
25
|
+
| Writes (`insertRecordsById`, `updateRecordById`, `updateRecordsById`) | name → `numberId` | translate before sending |
|
|
26
|
+
| Filter values (any `queryRecordsById` filter on a choice field) | name → `numberId` (as a string) | translate before sending |
|
|
27
|
+
| Read results (`groupBy` keys AND ungrouped record items) | `numberId` → name | translate after receiving |
|
|
29
28
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
```typescript
|
|
33
|
-
import type {
|
|
34
|
-
EntityGetResponse,
|
|
35
|
-
RawEntityGetResponse,
|
|
36
|
-
EntityMethods,
|
|
37
|
-
EntityRecord,
|
|
38
|
-
EntityFileType,
|
|
39
|
-
EntityGetAllRecordsOptions,
|
|
40
|
-
EntityGetRecordByIdOptions,
|
|
41
|
-
EntityInsertRecordOptions,
|
|
42
|
-
EntityInsertResponse,
|
|
43
|
-
EntityInsertRecordsOptions,
|
|
44
|
-
EntityBatchInsertResponse,
|
|
45
|
-
EntityUpdateRecordOptions,
|
|
46
|
-
EntityUpdateRecordResponse,
|
|
47
|
-
EntityUpdateRecordsOptions,
|
|
48
|
-
EntityUpdateResponse,
|
|
49
|
-
EntityDeleteRecordsOptions,
|
|
50
|
-
EntityDeleteResponse,
|
|
51
|
-
EntityUploadAttachmentOptions,
|
|
52
|
-
EntityUploadAttachmentResponse,
|
|
53
|
-
EntityDeleteAttachmentResponse,
|
|
54
|
-
EntityOperationResponse,
|
|
55
|
-
EntityQueryRecordsOptions,
|
|
56
|
-
EntityQueryRecordsResponse,
|
|
57
|
-
EntityQueryFilter,
|
|
58
|
-
EntityQueryFilterGroup,
|
|
59
|
-
EntityQuerySortOption,
|
|
60
|
-
EntityAggregate,
|
|
61
|
-
FailureRecord,
|
|
62
|
-
ChoiceSetGetAllResponse,
|
|
63
|
-
ChoiceSetGetResponse,
|
|
64
|
-
ChoiceSetGetByIdOptions,
|
|
65
|
-
} from '@uipath/uipath-typescript/entities';
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
## Enums
|
|
69
|
-
|
|
70
|
-
```typescript
|
|
71
|
-
import {
|
|
72
|
-
EntityFieldDataType, // UUID, STRING, INTEGER, DATETIME, DATETIME_WITH_TZ, DECIMAL, FLOAT, DOUBLE, DATE, BOOLEAN, BIG_INTEGER, MULTILINE_TEXT, MULTILINE_MAX (SDK 1.5.2+)
|
|
73
|
-
EntityType, // Entity, ChoiceSet, InternalEntity, SystemEntity
|
|
74
|
-
FieldDisplayType, // Basic, Relationship, File, ChoiceSetSingle, ChoiceSetMultiple, AutoNumber
|
|
75
|
-
LogicalOperator, // And, Or
|
|
76
|
-
QueryFilterOperator, // Equals, NotEquals, GreaterThan, LessThan, ... (used in queryRecordsById filters)
|
|
77
|
-
EntityAggregateFunction, // Count, Sum, Avg, Min, Max — string-valued enum ('COUNT', 'SUM', ...)
|
|
78
|
-
} from '@uipath/uipath-typescript/entities';
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
## Entities Service
|
|
82
|
-
|
|
83
|
-
### getAll()
|
|
84
|
-
|
|
85
|
-
Returns `Promise<EntityGetResponse[]>`. Each entity has attached methods.
|
|
86
|
-
|
|
87
|
-
### getById(id: string)
|
|
88
|
-
|
|
89
|
-
Returns `Promise<EntityGetResponse>` with attached methods.
|
|
90
|
-
|
|
91
|
-
### getAllRecords(entityId: string, options?: EntityGetAllRecordsOptions)
|
|
92
|
-
|
|
93
|
-
Returns `NonPaginatedResponse<EntityRecord>` or `PaginatedResponse<EntityRecord>` when pagination options are passed. Options: `expansionLevel?: number`, plus `pageSize`, `cursor`, `jumpToPage`.
|
|
94
|
-
|
|
95
|
-
### getRecordById(entityId: string, recordId: string, options?: EntityGetRecordByIdOptions)
|
|
96
|
-
|
|
97
|
-
Returns `Promise<EntityRecord>`. Options: `expansionLevel?: number`.
|
|
98
|
-
|
|
99
|
-
### insertRecordById(id: string, data: Record<string, any>, options?: EntityInsertRecordOptions)
|
|
100
|
-
|
|
101
|
-
Returns `Promise<EntityInsertResponse>` (which is `EntityRecord` — the inserted record with generated ID). Triggers Data Fabric trigger events.
|
|
102
|
-
|
|
103
|
-
### insertRecordsById(id: string, data: Record<string, any>[], options?: EntityInsertRecordsOptions)
|
|
104
|
-
|
|
105
|
-
Returns `Promise<EntityBatchInsertResponse>` with `{ successRecords, failureRecords }`. Does NOT trigger events. Options: `expansionLevel`, `failOnFirst`.
|
|
106
|
-
|
|
107
|
-
> **Choice-set fields take the integer `numberId`, not the value name.** Sending `status: "Open"` fails with `Single choiceset value Open is not integer`. Build a `name → numberId` map from `choiceSets.getById(<choiceSetId>)`; get the `<choiceSetId>` from `entities.getById(id).fields[].referenceChoiceSet?.id` (or `.choiceSetId`).
|
|
108
|
-
|
|
109
|
-
> **Record keys must match the schema's exact casing.** The SDK does NOT pascalize record keys. If your entity's fields are `Subject`, `Status`, `CustomerEmail` (PascalCase, the DF UI default), you must send `{ Subject: …, Status: 1, CustomerEmail: … }` — sending `{ subject, status, customerEmail }` produces `Required field "Subject" is not provided` because DF's required-field check is case-sensitive. Read the schema via `entities.getById(id)` and use `field.name` verbatim as the record key.
|
|
110
|
-
|
|
111
|
-
> **Unknown keys are silently dropped.** If your record contains a key that isn't in the entity schema (typo, removed field, audit-column name conflict), `insertRecordsById` does NOT error — the field is just ignored. Always introspect the schema with `entities.getById(id)` before seeding bulk data; keys that don't show up in `entity.fields` will be discarded without warning.
|
|
112
|
-
|
|
113
|
-
> **DF auto-manages `CreateTime` / `UpdateTime` / `CreatedBy` / `UpdatedBy` / `Id` audit columns.** They appear in the entity schema but you cannot write to them — DF sets `CreateTime` to the moment of insert and `UpdateTime` to the moment of last write. If you need to seed historical timestamps (e.g., for an analytics demo where tickets must look 1–21 days old), add a **custom** `DATETIME_WITH_TZ` field (e.g., `OriginalCreatedTime`) and write to that. Do NOT name your custom field `CreateTime` or `CreatedTime` — the audit name conflict will cause silent drops or schema rejection.
|
|
114
|
-
|
|
115
|
-
### updateRecordById(entityId: string, recordId: string, data: Record<string, any>, options?: EntityUpdateRecordOptions)
|
|
116
|
-
|
|
117
|
-
Returns `Promise<EntityUpdateRecordResponse>` — the updated single record. **Triggers Data Fabric trigger events** (unlike the bulk `updateRecordsById`). Use this when you need trigger events to fire for the updated record. Options: `expansionLevel`.
|
|
118
|
-
|
|
119
|
-
### updateRecordsById(id: string, data: EntityRecord[], options?: EntityUpdateRecordsOptions)
|
|
120
|
-
|
|
121
|
-
Returns `Promise<EntityUpdateResponse>` with `{ successRecords, failureRecords }`. Each record in `data` MUST include an `Id` field. Options: `expansionLevel`, `failOnFirst`. **Does NOT trigger events** — use `updateRecordById` if you need trigger events.
|
|
122
|
-
|
|
123
|
-
### deleteRecordsById(id: string, recordIds: string[], options?: EntityDeleteRecordsOptions)
|
|
124
|
-
|
|
125
|
-
Returns `Promise<EntityDeleteResponse>` with `{ successRecords, failureRecords }`. Options: `failOnFirst`. **Does NOT trigger events** — use `deleteRecordById` if you need trigger events.
|
|
126
|
-
|
|
127
|
-
### deleteRecordById(entityId: string, recordId: string)
|
|
128
|
-
|
|
129
|
-
Returns `Promise<void>`. **Triggers Data Fabric trigger events.** Use this for single deletes when triggers must fire (the bulk `deleteRecordsById` does not fire triggers).
|
|
130
|
-
|
|
131
|
-
### queryRecordsById(id: string, options?: EntityQueryRecordsOptions)
|
|
132
|
-
|
|
133
|
-
Returns `NonPaginatedResponse<EntityRecord>` or `PaginatedResponse<EntityRecord>` when pagination options are passed. Supports server-side filters, sort, field selection, aggregates, and group-by.
|
|
134
|
-
|
|
135
|
-
> **For counts and chart data, use server-side `aggregates` + `groupBy`.** Don't fetch raw rows and aggregate in JS — every list call returns one page (see [pagination.md](pagination.md)), so `result.items.length` after `queryRecordsById({ filter })` returns at most one page's worth, no matter how many rows match. Use `aggregates: [{ function: 'COUNT', field: 'Id' }]` (with `groupBy` for per-bucket counts).
|
|
136
|
-
|
|
137
|
-
> **Choice-set values come back as `numberId` integers in read responses — translate them yourself.** This applies to `groupBy` results AND ungrouped `queryRecordsById`/`getRecordById` items. Build a `numberId → name` map per choice field from `choiceSets.getById(<choiceSetId>)` once on app load and translate every time you read a choice field for display, comparison, or filter logic. Do NOT assume the SDK has already converted to a string name — it has not. A common silent failure: code that does `if (record.Status === "Resolved")` always evaluates false because `record.Status` is `5` (the numberId). Same for any logic doing `record.Priority.toLowerCase()` — it'll read `(5).toLowerCase`, throw, or coerce to `"5"` and miss every lookup keyed on names.
|
|
138
|
-
|
|
139
|
-
> **Filter `value` for a choice field must be the `numberId`** (as a string, per the operator type). `{ fieldName: 'Status', operator: Equals, value: 'Resolved' }` matches nothing — use `value: String(numberIdForResolved)`. This rule applies to **every** filter touching a choice-set field, including `NotEquals`, `In`, `NotIn`. Failing to translate filter values is silent: the API returns 0 rows or all rows depending on operator, so a "0 records" or "all records" symptom that ignores your filter usually means a missing translation.
|
|
140
|
-
|
|
141
|
-
> **Three paths require choice-value translation. Don't miss any.**
|
|
142
|
-
> | Path | Direction | What to do |
|
|
143
|
-
> |---|---|---|
|
|
144
|
-
> | Writes (`insertRecordsById`, `updateRecordById`, `updateRecordsById`) | name → `numberId` | translate before sending |
|
|
145
|
-
> | Filter values (any `queryRecordsById` filter on a choice field) | name → `numberId` (as a string) | translate before sending |
|
|
146
|
-
> | `groupBy` result keys | `numberId` → name | translate after receiving for display |
|
|
147
|
-
>
|
|
148
|
-
> Best practice: on app load, fetch each choice set once and build **both** maps (`byName` and `byNumberId`). Reuse across all paths.
|
|
149
|
-
|
|
150
|
-
`EntityQueryRecordsOptions`:
|
|
151
|
-
- `filterGroup?: EntityQueryFilterGroup` — `{ logicalOperator?: LogicalOperator.And | Or, queryFilters?: EntityQueryFilter[], filterGroups?: EntityQueryFilterGroup[] }` (nested groups allowed). Each filter: `{ fieldName, operator: QueryFilterOperator, value?: string, valueList?: string[] }`.
|
|
152
|
-
- `selectedFields?: string[]` — fields to return (omit for all)
|
|
153
|
-
- `sortOptions?: EntityQuerySortOption[]` — `[{ fieldName, isDescending }]`
|
|
154
|
-
- `aggregates?: EntityAggregate[]` — `[{ function: EntityAggregateFunction.Count | Sum | Avg | Min | Max, field, alias }]` (string literals `'COUNT'` / `'SUM'` / etc. also work — the enum is string-valued). For `Count`, any non-null field works — typically `'Id'`.
|
|
155
|
-
- `groupBy?: string[]` — group aggregate results
|
|
156
|
-
- `expansionLevel?: number` — default 0
|
|
157
|
-
- Pagination (`pageSize`, `cursor`, `jumpToPage`) — when supplied, returns `PaginatedResponse`
|
|
158
|
-
|
|
159
|
-
`QueryFilterOperator` values: `Equals` `'='`, `NotEquals` `'!='`, `GreaterThan` `'>'`, `LessThan` `'<'`, `GreaterThanOrEqual` `'>='`, `LessThanOrEqual` `'<='`, `Contains` `'contains'`, `NotContains` `'not contains'`, `StartsWith` `'startswith'`, `EndsWith` `'endswith'`, `In` `'in'`, `NotIn` `'not in'`.
|
|
160
|
-
|
|
161
|
-
> **`value` is always a string.** For numeric, boolean, or date fields, pass the string form (e.g., `"42"`, `"true"`, `"2026-05-01T00:00:00Z"`). For `In`/`NotIn`, use `valueList: string[]` instead of `value`.
|
|
162
|
-
|
|
163
|
-
```typescript
|
|
164
|
-
import { LogicalOperator, QueryFilterOperator, EntityAggregateFunction } from '@uipath/uipath-typescript/entities';
|
|
165
|
-
|
|
166
|
-
// Filter + sort
|
|
167
|
-
const result = await entities.queryRecordsById(entityId, {
|
|
168
|
-
filterGroup: {
|
|
169
|
-
logicalOperator: LogicalOperator.And,
|
|
170
|
-
queryFilters: [{ fieldName: 'status', operator: QueryFilterOperator.Equals, value: 'active' }],
|
|
171
|
-
},
|
|
172
|
-
sortOptions: [{ fieldName: 'createdTime', isDescending: true }],
|
|
173
|
-
});
|
|
174
|
-
|
|
175
|
-
// Aggregate: count per status
|
|
176
|
-
await entities.queryRecordsById(entityId, {
|
|
177
|
-
selectedFields: ['status'],
|
|
178
|
-
groupBy: ['status'],
|
|
179
|
-
aggregates: [{ function: EntityAggregateFunction.Count, field: 'Id', alias: 'total' }],
|
|
180
|
-
});
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
### downloadAttachment(entityId: string, recordId: string, fieldName: string)
|
|
184
|
-
|
|
185
|
-
Returns `Promise<Blob>`. **Positional arguments, not an options object.** `entityId` is the UUID of the entity (not the entity name).
|
|
186
|
-
|
|
187
|
-
### uploadAttachment(entityId: string, recordId: string, fieldName: string, file: EntityFileType, options?: EntityUploadAttachmentOptions)
|
|
188
|
-
|
|
189
|
-
Returns `Promise<EntityUploadAttachmentResponse>`. `file` accepts `Blob | File | Uint8Array`. Options: `expansionLevel`.
|
|
190
|
-
|
|
191
|
-
### deleteAttachment(entityId: string, recordId: string, fieldName: string)
|
|
192
|
-
|
|
193
|
-
Returns `Promise<EntityDeleteAttachmentResponse>`. Positional arguments.
|
|
194
|
-
|
|
195
|
-
## Entity-Attached Methods (EntityMethods)
|
|
196
|
-
|
|
197
|
-
Returned by `getAll()` and `getById()` on each `EntityGetResponse`:
|
|
198
|
-
|
|
199
|
-
- `entity.insertRecord(data, options?)` -> `Promise<EntityInsertResponse>` (fires trigger events)
|
|
200
|
-
- `entity.insertRecords(data[], options?)` -> `Promise<EntityBatchInsertResponse>` (no trigger events)
|
|
201
|
-
- `entity.updateRecord(recordId, data, options?)` -> `Promise<EntityUpdateRecordResponse>` (fires trigger events)
|
|
202
|
-
- `entity.updateRecords(data: EntityRecord[], options?)` -> `Promise<EntityUpdateResponse>` (no trigger events)
|
|
203
|
-
- `entity.deleteRecords(recordIds: string[], options?)` -> `Promise<EntityDeleteResponse>` (no trigger events)
|
|
204
|
-
- `entity.deleteRecord(recordId)` -> `Promise<void>` (fires trigger events)
|
|
205
|
-
- `entity.getAllRecords(options?)` -> `NonPaginatedResponse<EntityRecord>` or `PaginatedResponse<EntityRecord>`
|
|
206
|
-
- `entity.getRecord(recordId, options?)` -> `Promise<EntityRecord>`
|
|
207
|
-
- `entity.queryRecords(options?)` -> `NonPaginatedResponse<EntityRecord>` or `PaginatedResponse<EntityRecord>` (filters, sort, aggregates — see `queryRecordsById` above)
|
|
208
|
-
- `entity.uploadAttachment(recordId, fieldName, file, options?)` -> `Promise<EntityUploadAttachmentResponse>`
|
|
209
|
-
- `entity.downloadAttachment(recordId, fieldName)` -> `Promise<Blob>`
|
|
210
|
-
- `entity.deleteAttachment(recordId, fieldName)` -> `Promise<EntityDeleteAttachmentResponse>`
|
|
211
|
-
|
|
212
|
-
## ChoiceSets Service
|
|
213
|
-
|
|
214
|
-
### getAll()
|
|
215
|
-
|
|
216
|
-
Returns `Promise<ChoiceSetGetAllResponse[]>`. Each item has: `name`, `displayName`, `description`, `folderId`, `createdBy`, `updatedBy`, `createdTime`, `updatedTime`.
|
|
217
|
-
|
|
218
|
-
### getById(choiceSetId: string, options?: ChoiceSetGetByIdOptions)
|
|
219
|
-
|
|
220
|
-
Returns `NonPaginatedResponse<ChoiceSetGetResponse>` or `PaginatedResponse<ChoiceSetGetResponse>`. Each value has: `id`, `name`, `displayName`, `numberId`, `createdTime`, `updatedTime`.
|
|
221
|
-
|
|
222
|
-
## Usage Example
|
|
223
|
-
|
|
224
|
-
```typescript
|
|
225
|
-
import { useMemo, useEffect, useState } from 'react';
|
|
226
|
-
import { useAuth } from '../hooks/useAuth';
|
|
227
|
-
import { Entities } from '@uipath/uipath-typescript/entities';
|
|
228
|
-
import type { EntityGetResponse, EntityRecord } from '@uipath/uipath-typescript/entities';
|
|
229
|
-
|
|
230
|
-
function EntityRecords({ entityId }: { entityId: string }) {
|
|
231
|
-
const { sdk } = useAuth();
|
|
232
|
-
const entities = useMemo(() => new Entities(sdk), [sdk]);
|
|
233
|
-
const [records, setRecords] = useState<EntityRecord[]>([]);
|
|
234
|
-
|
|
235
|
-
useEffect(() => {
|
|
236
|
-
const load = async () => {
|
|
237
|
-
const entity = await entities.getById(entityId);
|
|
238
|
-
const result = await entity.getAllRecords({ pageSize: 50 });
|
|
239
|
-
setRecords(result.items);
|
|
240
|
-
};
|
|
241
|
-
load();
|
|
242
|
-
}, [entities, entityId]);
|
|
243
|
-
|
|
244
|
-
return <div>{records.map(r => <div key={r.id}>{JSON.stringify(r)}</div>)}</div>;
|
|
245
|
-
}
|
|
246
|
-
```
|
|
29
|
+
Best practice: on app load, fetch each choice set once (`choiceSets.getById` returns values carrying `name` + `numberId`) and build **both** maps (`byName` and `byNumberId`). Reuse across all paths.
|
|
@@ -1,142 +1,7 @@
|
|
|
1
|
-
# Agent Feedback
|
|
1
|
+
# Agent Feedback — Traps
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Signatures/params/examples: `dist/feedback/index.d.ts` (JSDoc documents the required `folderKey` option, default categories, and `createCategory` flag defaults). Per-method scopes: shipped `docs/oauth-scopes.md`. This file covers only what neither can express.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
> **Scope warning:** every Feedback method — reads, writes, category management — uses the Traces bundle (`Traces.Api`), not an OR.* or Agents scope. A 403 here means the External App lacks the Traces bundle; check the shipped table.
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
import { Feedback } from '@uipath/uipath-typescript/feedback';
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## Scopes
|
|
12
|
-
|
|
13
|
-
`Traces.Api` — for **every** method (reads, writes, and category management).
|
|
14
|
-
|
|
15
|
-
## Types to Import
|
|
16
|
-
|
|
17
|
-
```typescript
|
|
18
|
-
import type {
|
|
19
|
-
FeedbackGetResponse,
|
|
20
|
-
FeedbackResponse,
|
|
21
|
-
FeedbackGetAllOptions,
|
|
22
|
-
FeedbackOptions,
|
|
23
|
-
FeedbackSubmitOptions,
|
|
24
|
-
FeedbackUpdateOptions,
|
|
25
|
-
FeedbackGetCategoriesOptions,
|
|
26
|
-
FeedbackCreateCategoryOptions,
|
|
27
|
-
FeedbackDeleteCategoryOptions,
|
|
28
|
-
FeedbackCategory,
|
|
29
|
-
FeedbackCategoryInput,
|
|
30
|
-
FeedbackCategoryResponse,
|
|
31
|
-
} from '@uipath/uipath-typescript/feedback';
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## Enums
|
|
35
|
-
|
|
36
|
-
```typescript
|
|
37
|
-
import { FeedbackStatus } from '@uipath/uipath-typescript/feedback';
|
|
38
|
-
// FeedbackStatus.Pending = 0, Approved = 1, Dismissed = 2
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## Feedback Service
|
|
42
|
-
|
|
43
|
-
### getAll(options?: FeedbackGetAllOptions)
|
|
44
|
-
|
|
45
|
-
Returns `NonPaginatedResponse<FeedbackGetResponse>` or `PaginatedResponse<FeedbackGetResponse>`. As with every list method, this returns one page — see [pagination.md](pagination.md) for cursor-loop retrieval if the source has more rows than the server's default cap.
|
|
46
|
-
|
|
47
|
-
`FeedbackGetAllOptions` filters: `agentId?`, `agentVersion?`, `status?: FeedbackStatus`, `traceId?`, `spanId?`. Plus `PaginationOptions` (`pageSize`, `cursor`, `jumpToPage`).
|
|
48
|
-
|
|
49
|
-
### getById(id: string, options: FeedbackOptions)
|
|
50
|
-
|
|
51
|
-
Returns `Promise<FeedbackGetResponse>`. **`options.folderKey` is required** — get it from a `getAll()` item or wherever the feedback originated.
|
|
52
|
-
|
|
53
|
-
`FeedbackGetResponse` fields: `id`, `traceId`, `spanId`, `agentId`, `agentVersion?`, `comment?`, `metadata?`, `isPositive`, `feedbackCategories: FeedbackCategory[]`, `folderKey?`, `userEmail?`, `status: FeedbackStatus`, `createdTime`, `updatedTime`.
|
|
54
|
-
|
|
55
|
-
`FeedbackCategory` fields: `id`, `category`, `createdAt`, `isDefault`, `isPositive`, `isNegative`. Default categories (Output, Agent Error, Agent Plan Execution) are auto-created per tenant.
|
|
56
|
-
|
|
57
|
-
### submit(traceId: string, isPositive: boolean, options: FeedbackSubmitOptions)
|
|
58
|
-
|
|
59
|
-
Returns `Promise<FeedbackResponse>`. Creates a new feedback entry against an agent trace. `isPositive` is the thumbs-up/down. **`options.folderKey` is required.** Other `FeedbackSubmitOptions` fields (all optional): `agentId`, `agentVersion`, `comment`, `metadata` (string), `spanId`, `spanType`, `categories: FeedbackCategoryInput[]`.
|
|
60
|
-
|
|
61
|
-
### updateById(id: string, isPositive: boolean, options: FeedbackUpdateOptions)
|
|
62
|
-
|
|
63
|
-
Returns `Promise<FeedbackResponse>`. Updates an existing feedback entry. **`options.folderKey` is required.** Optional fields: `comment`, `metadata`, `categories: FeedbackCategoryInput[]`.
|
|
64
|
-
|
|
65
|
-
### deleteById(id: string, options: FeedbackOptions)
|
|
66
|
-
|
|
67
|
-
Returns `Promise<void>`. **`options.folderKey` is required.**
|
|
68
|
-
|
|
69
|
-
### getCategories(options?: FeedbackGetCategoriesOptions)
|
|
70
|
-
|
|
71
|
-
Returns `NonPaginatedResponse<FeedbackCategoryResponse>` or `PaginatedResponse<FeedbackCategoryResponse>`. Lists feedback categories (default + custom). `FeedbackCategoryResponse` fields: `id`, `category`, `createdTime`, `isDefault`, `isPositive`, `isNegative`.
|
|
72
|
-
|
|
73
|
-
### createCategory(category: string, options?: FeedbackCreateCategoryOptions)
|
|
74
|
-
|
|
75
|
-
Returns `Promise<FeedbackCategoryResponse>`. Creates a custom category. `FeedbackCreateCategoryOptions`: `isPositive?` (defaults `true`), `isNegative?` (defaults `true`) — set the flags to scope the category to one rating direction.
|
|
76
|
-
|
|
77
|
-
### deleteCategory(id: string, options?: FeedbackDeleteCategoryOptions)
|
|
78
|
-
|
|
79
|
-
Returns `Promise<void>`. Deletes a custom category. Default tenant categories cannot be removed.
|
|
80
|
-
|
|
81
|
-
## Usage Example — Feedback Inbox
|
|
82
|
-
|
|
83
|
-
```typescript
|
|
84
|
-
import { useMemo, useEffect, useState } from 'react';
|
|
85
|
-
import { useAuth } from '../hooks/useAuth';
|
|
86
|
-
import { Feedback, FeedbackStatus } from '@uipath/uipath-typescript/feedback';
|
|
87
|
-
import type { FeedbackGetResponse } from '@uipath/uipath-typescript/feedback';
|
|
88
|
-
|
|
89
|
-
function FeedbackInbox({ agentId }: { agentId: string }) {
|
|
90
|
-
const { sdk } = useAuth();
|
|
91
|
-
const feedback = useMemo(() => new Feedback(sdk), [sdk]);
|
|
92
|
-
const [items, setItems] = useState<FeedbackGetResponse[]>([]);
|
|
93
|
-
|
|
94
|
-
useEffect(() => {
|
|
95
|
-
const load = async () => {
|
|
96
|
-
const result = await feedback.getAll({
|
|
97
|
-
agentId,
|
|
98
|
-
status: FeedbackStatus.Pending,
|
|
99
|
-
pageSize: 25,
|
|
100
|
-
});
|
|
101
|
-
setItems(result.items);
|
|
102
|
-
};
|
|
103
|
-
load();
|
|
104
|
-
}, [feedback, agentId]);
|
|
105
|
-
|
|
106
|
-
const openDetail = async (item: FeedbackGetResponse) => {
|
|
107
|
-
if (!item.folderKey) return;
|
|
108
|
-
const detail = await feedback.getById(item.id, { folderKey: item.folderKey });
|
|
109
|
-
console.log(detail.comment, detail.feedbackCategories);
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
## Usage Example — Submitting & Managing Feedback
|
|
115
|
-
|
|
116
|
-
```typescript
|
|
117
|
-
import { Feedback } from '@uipath/uipath-typescript/feedback';
|
|
118
|
-
|
|
119
|
-
const feedback = new Feedback(sdk);
|
|
120
|
-
|
|
121
|
-
// Submit thumbs-up on an agent trace
|
|
122
|
-
const created = await feedback.submit(traceId, true, {
|
|
123
|
-
folderKey, // required
|
|
124
|
-
agentId,
|
|
125
|
-
comment: 'Accurate and well-structured answer',
|
|
126
|
-
categories: [{ category: 'Output', isPositive: true }],
|
|
127
|
-
});
|
|
128
|
-
|
|
129
|
-
// Flip it to thumbs-down and edit the comment
|
|
130
|
-
await feedback.updateById(created.id, false, {
|
|
131
|
-
folderKey,
|
|
132
|
-
comment: 'On second read, the figures were wrong',
|
|
133
|
-
});
|
|
134
|
-
|
|
135
|
-
// Manage categories
|
|
136
|
-
const categories = await feedback.getCategories({ pageSize: 50 });
|
|
137
|
-
const custom = await feedback.createCategory('Tone', { isNegative: true, isPositive: false });
|
|
138
|
-
await feedback.deleteCategory(custom.id);
|
|
139
|
-
|
|
140
|
-
// Remove the entry
|
|
141
|
-
await feedback.deleteById(created.id, { folderKey });
|
|
142
|
-
```
|
|
7
|
+
`getAll()` returns one page — cursor-loop per [pagination.md](pagination.md) when the source may exceed the server's default cap.
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
# Agent Governance Decisions (Insights RTM)
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
Signatures/params/examples: `dist/traces/index.d.ts` (the `AgentTraces` service). Per-method scopes: shipped `docs/oauth-scopes.md`. This file covers only what neither can express.
|
|
4
|
+
|
|
5
|
+
> Subpath: `@uipath/uipath-typescript/traces`.
|
|
6
|
+
> **Org-admin required** (both methods 403 otherwise — see the JSDoc `@remarks`). On 403: tell the user their account lacks governance access, render the widget's EmptyState, build the rest of the dashboard. Do not retry. Never fabricate data.
|
|
5
7
|
|
|
6
8
|
First-class Insights endpoints for **agentic runtime governance** — every policy check an agent run went through (allow/deny per hook) plus an aggregated posture summary. These widgets honor the dashboard time range like any other metric.
|
|
7
9
|
|
|
@@ -13,60 +15,10 @@ First-class Insights endpoints for **agentic runtime governance** — every poli
|
|
|
13
15
|
> a different domain (platform policy enforcement). When unsure which the user means, ASK. Never add these
|
|
14
16
|
> widgets to a plain agent-health/ops dashboard.
|
|
15
17
|
|
|
16
|
-
|
|
17
|
-
import { AgentTraces, AgentGovernanceVerdict, AgentGovernanceSection } from '@uipath/uipath-typescript/traces'
|
|
18
|
-
const svc = new AgentTraces(sdk)
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
Both methods take a **required positional `startTime: Date`** first (same convention as `Governance.getPolicyTraces`); everything else lives in options.
|
|
22
|
-
|
|
23
|
-
## getGovernanceSummary(startTime, options?) — breakdowns in ONE call
|
|
24
|
-
|
|
25
|
-
Returns a **single object — not an array**. Options: `{ endTime?, topN?, packName?, sections? }`.
|
|
26
|
-
|
|
27
|
-
**Example response** (grounded in SDK test fixtures):
|
|
28
|
-
|
|
29
|
-
```json
|
|
30
|
-
{
|
|
31
|
-
"total": 26, "violations": 3,
|
|
32
|
-
"byHook": [{ "key": "BEFORE_MODEL", "name": null, "count": 12, "violationCount": 2 }],
|
|
33
|
-
"byAgent": [{ "key": "af12…", "name": "customer-care-assistant-for-acmecare", "count": 20, "violationCount": 1 }],
|
|
34
|
-
"byPolicy": [{ "key": "ISO42001-guardrail-prompt-injection", "name": "AI system impact assessment", "count": 2, "violationCount": 0 }],
|
|
35
|
-
"byPack": [{ "key": "ISO/IEC 42001:2023 Runtime", "name": null, "count": 26, "violationCount": 3 }],
|
|
36
|
-
"byAction": [], "byMode": []
|
|
37
|
-
}
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
Semantics:
|
|
41
|
-
- `violations` / `violationCount` = **Deny verdicts**; `count`/`total` = all checks. Violation widgets read `violationCount`; all-checks widgets read `count`.
|
|
42
|
-
- **`byAction` and `byMode` are EMPTY unless opted in** via `sections: [AgentGovernanceSection.Action]` / `[…Mode]`. Forgetting `sections` is the compiles-green-renders-empty trap here.
|
|
43
|
-
- `name` is populated for `byPolicy`/`byAgent`; render `name ?? key`.
|
|
44
|
-
- `topN` caps each breakdown; `packName` scopes totals + breakdowns to one pack.
|
|
45
|
-
|
|
46
|
-
## getGovernanceDecisions(startTime, options?) — the record grain
|
|
47
|
-
|
|
48
|
-
One row per policy check. Paginated; rows on `.items`. Options: `{ endTime?, hook?, evaluatorResult?, policyId?, agentId?, violationsOnly?, pageSize?, cursor? }`.
|
|
49
|
-
|
|
50
|
-
**Example response** (`.items` — grounded in SDK test fixtures):
|
|
51
|
-
|
|
52
|
-
```json
|
|
53
|
-
{
|
|
54
|
-
"items": [{
|
|
55
|
-
"startTime": "2026-06-28T14:03:22Z", "endTime": "2026-06-28T14:03:24Z",
|
|
56
|
-
"traceId": "3f9c…", "jobKey": "8a1d…", "folderKey": "f-1001", "source": "10",
|
|
57
|
-
"policyId": "ISO42001-guardrail-prompt-injection", "policyName": "AI system impact assessment",
|
|
58
|
-
"packName": "ISO/IEC 42001:2023 Runtime", "hook": "BEFORE_MODEL",
|
|
59
|
-
"mode": "ENFORCE", "actionApplied": "BLOCK", "evaluatorResult": "DENY",
|
|
60
|
-
"reason": "Prompt injection was detected with a probability of 0.97.",
|
|
61
|
-
"agentId": "af12…", "agentName": "customer-care-assistant-for-acmecare"
|
|
62
|
-
}]
|
|
63
|
-
}
|
|
64
|
-
```
|
|
18
|
+
## Semantics the JSDoc lacks
|
|
65
19
|
|
|
66
|
-
|
|
67
|
-
-
|
|
68
|
-
- **No server-side `traceId` filter.** Per-run views fetch the window and filter client-side on the row's `traceId`. `agentId` (agent project key) IS a server-side filter.
|
|
69
|
-
- `violationsOnly: true` → Deny rows only. Use for violation tables and violation drill-downs.
|
|
20
|
+
- Widget routing: violation widgets read `violationCount` / `violations`; all-checks widgets read `count` / `total`.
|
|
21
|
+
- **No server-side `traceId` filter** on `getGovernanceDecisions`. Per-run views fetch the window and filter client-side on the row's `traceId`.
|
|
70
22
|
- One agent run = one `traceId` (with its `jobKey`); group rows by `traceId` for run-level rollups.
|
|
71
23
|
- Rows are TS interfaces — project with `.map(x => ({ ...x }))`, never `as` casts.
|
|
72
24
|
- User vocabulary maps onto the response fields: "rule" → **policy** (`policyId`/`policyName`), "standard" → **pack** (`packName`), "violation" → **Deny verdict**, "enforcement action" → **actionApplied**, "audit vs enforce" → **mode**.
|
|
@@ -1,52 +1,12 @@
|
|
|
1
1
|
# Governance (Insights RTM) Reference
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Signatures/params/examples: `dist/governance/index.d.ts`. Per-method scopes: shipped `docs/oauth-scopes.md`. This file covers only what neither can express.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
import { Governance, PolicyEvaluationResult } from '@uipath/uipath-typescript/governance';
|
|
7
|
-
const svc = new Governance(sdk)
|
|
8
|
-
```
|
|
9
|
-
|
|
10
|
-
Both methods take a **required positional `startTime: Date`** first; everything else lives in the options object.
|
|
11
|
-
|
|
12
|
-
## getPolicyTraces(startTime: Date, options?)
|
|
13
|
-
|
|
14
|
-
Per-policy enforcement decisions, one row per policy verdict per event (one user action can yield multiple rows). Ordered by event start time desc. Returns `NonPaginatedResponse<GovernancePolicyTrace>` (or paginated). **Rows are on `.items`.**
|
|
15
|
-
|
|
16
|
-
Options (`GovernancePolicyTraceGetAllOptions`): `endTime?: Date`, `fullOrganization?: boolean`, `evaluationResult?: PolicyEvaluationResult[]`, `policyId?: string[]`, `actorProcessId?: string[]`, `actorProcessType?: string[]`, `actorIdentityId?: string[]`, `resourceId?: string[]`, `resourceType?: string[]`, `traceId?: string[]` + pagination. Filters AND across fields, OR within an array.
|
|
17
|
-
|
|
18
|
-
`PolicyEvaluationResult` enum: `Allow`, `Deny`, `SimulatedAllow`, `SimulatedDeny`.
|
|
5
|
+
This service answers the **platform governance** question — policy enforcement verdicts (allow/deny) on user and agent actions across the platform. For **agentic runtime governance** (per-hook policy checks inside agent runs — standards packs, rule violations) → [`sdk/governance-traces.md`](governance-traces.md), a different domain.
|
|
19
6
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
**Example response** (`.items` — shape from SDK test fixtures):
|
|
23
|
-
|
|
24
|
-
```json
|
|
25
|
-
{
|
|
26
|
-
"items": [
|
|
27
|
-
{
|
|
28
|
-
"tenantId": "t-2298", "startTime": "2026-06-10T14:03:22Z",
|
|
29
|
-
"finalEnforcement": "Deny", "policyId": "pol-7f3a", "policyEnforcement": "Deny",
|
|
30
|
-
"policyEvaluationResult": "Deny", "policyName": "Block external LLM calls",
|
|
31
|
-
"policyStatus": "Active", "actorProcessId": "InvoiceTriageAgent",
|
|
32
|
-
"actorProcessType": "CodedAgent", "actorIdentityId": "user-91",
|
|
33
|
-
"resourceId": "openai.com", "resourceType": "ExternalService",
|
|
34
|
-
"folderKey": "f-1001", "traceId": "tr-...", "processKey": "p-0088", "jobKey": "j-..."
|
|
35
|
-
}
|
|
36
|
-
],
|
|
37
|
-
"count": 1
|
|
38
|
-
}
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## getOperationSummary(startTime: Date, options?)
|
|
42
|
-
|
|
43
|
-
Aggregate enforcement counts for the window. Options: `{ endTime?: Date, fullOrganization?: boolean }`. Returns a **single object — not an array**:
|
|
44
|
-
|
|
45
|
-
```json
|
|
46
|
-
{ "totalEvaluations": 1240, "allowedCount": 1180, "deniedCount": 42, "noOpCount": 18 }
|
|
47
|
-
```
|
|
7
|
+
On a 403 (org-admin gating — see the `fullOrganization` JSDoc): tell the user their account lacks governance access; do not retry.
|
|
48
8
|
|
|
49
|
-
|
|
9
|
+
`getOperationSummary` returns a **single object — not an array**. For a kpi-card or donut, the `fnBody` must wrap/transform it into a row array (see patterns).
|
|
50
10
|
|
|
51
11
|
## fnBody patterns
|
|
52
12
|
|