@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.
Files changed (345) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CODEOWNERS +14 -8
  4. package/README.md +18 -3
  5. package/assets/skill-status.json +9 -1
  6. package/assets/uip-catalog-snapshot.json +227 -21
  7. package/package.json +11 -2
  8. package/scripts/npm-package-lifecycle.mjs +46 -0
  9. package/skills/uipath-admin/SKILL.md +5 -1
  10. package/skills/uipath-admin/references/audit-commands.md +1 -1
  11. package/skills/uipath-admin/references/audit-workflow-guide.md +9 -0
  12. package/skills/uipath-agents/SKILL.md +2 -2
  13. package/skills/uipath-agents/references/lowcode/capabilities/context/index.md +7 -0
  14. package/skills/uipath-agents/references/lowcode/capabilities/integration-service/integration-service.md +5 -6
  15. package/skills/uipath-agents/references/lowcode/critical-rules/critical-rules.md +1 -1
  16. package/skills/uipath-agents/references/lowcode/evaluations/evaluation-sets.md +5 -0
  17. package/skills/uipath-agents/references/lowcode/project-lifecycle.md +3 -3
  18. package/skills/uipath-agents/references/lowcode/prompting/autonomous-agent-prompting-guide.md +3 -2
  19. package/skills/uipath-api-workflow/SKILL.md +2 -1
  20. package/skills/uipath-api-workflow/references/cli-reference.md +3 -3
  21. package/skills/uipath-coded-apps/SKILL.md +3 -2
  22. package/skills/uipath-coded-apps/assets/fixtures/governance-dashboard-starter-kit.tar.gz +0 -0
  23. package/skills/uipath-coded-apps/assets/templates/web-app-template.md +1 -1
  24. package/skills/uipath-coded-apps/references/create-web-app.md +60 -48
  25. package/skills/uipath-coded-apps/references/dashboards/CAPABILITY.md +2 -2
  26. package/skills/uipath-coded-apps/references/dashboards/plugins/build/impl.md +2 -2
  27. package/skills/uipath-coded-apps/references/dashboards/primitives/tier-resolution.md +16 -16
  28. package/skills/uipath-coded-apps/references/oauth-scopes.md +28 -272
  29. package/skills/uipath-coded-apps/references/sdk/action-center.md +26 -243
  30. package/skills/uipath-coded-apps/references/sdk/agents.md +20 -130
  31. package/skills/uipath-coded-apps/references/sdk/conversational-agent.md +52 -706
  32. package/skills/uipath-coded-apps/references/sdk/data-fabric.md +20 -237
  33. package/skills/uipath-coded-apps/references/sdk/feedback.md +4 -139
  34. package/skills/uipath-coded-apps/references/sdk/governance-traces.md +7 -55
  35. package/skills/uipath-coded-apps/references/sdk/governance.md +4 -44
  36. package/skills/uipath-coded-apps/references/sdk/imports.md +77 -35
  37. package/skills/uipath-coded-apps/references/sdk/maestro.md +29 -406
  38. package/skills/uipath-coded-apps/references/sdk/orchestrator.md +30 -324
  39. package/skills/uipath-coded-apps/references/sdk/pagination.md +9 -67
  40. package/skills/uipath-coded-apps/references/sdk/traces.md +8 -43
  41. package/skills/uipath-functions/SKILL.md +23 -23
  42. package/skills/uipath-governance/SKILL.md +5 -4
  43. package/skills/uipath-governance/references/cli-cheatsheet.md +2 -1
  44. package/skills/uipath-governance/references/compliance-pack/coverage/impl.md +143 -58
  45. package/skills/uipath-governance/references/compliance-pack/restore/impl.md +61 -0
  46. package/skills/uipath-human-in-the-loop/SKILL.md +4 -2
  47. package/skills/uipath-insights/SKILL.md +17 -18
  48. package/skills/uipath-ixp/SKILL.md +12 -7
  49. package/skills/uipath-ixp/references/cli-reference.md +71 -9
  50. package/skills/uipath-ixp/references/improve-prompts-guide.md +23 -9
  51. package/skills/uipath-ixp/references/label-documents-guide.md +33 -5
  52. package/skills/uipath-maestro-bpmn/SKILL.md +15 -14
  53. package/skills/uipath-maestro-bpmn/references/cli-conventions.md +15 -6
  54. package/skills/uipath-maestro-bpmn/references/structural-bpmn.md +18 -17
  55. package/skills/uipath-maestro-case/SKILL.md +46 -33
  56. package/skills/uipath-maestro-case/assets/templates/sdd-template.md +77 -37
  57. package/skills/uipath-maestro-case/assets/templates/sdd-viewer.html +0 -2
  58. package/skills/uipath-maestro-case/references/bindings-and-expressions.md +3 -1
  59. package/skills/uipath-maestro-case/references/bindings-v2-sync.md +2 -2
  60. package/skills/uipath-maestro-case/references/brownfield.md +15 -5
  61. package/skills/uipath-maestro-case/references/case-commands.md +19 -3
  62. package/skills/uipath-maestro-case/references/case-editing-operations.md +24 -21
  63. package/skills/uipath-maestro-case/references/case-schema.md +38 -16
  64. package/skills/uipath-maestro-case/references/connector-trigger-common.md +15 -8
  65. package/skills/uipath-maestro-case/references/evals/evals.json +35 -18
  66. package/skills/uipath-maestro-case/references/implementation.md +86 -71
  67. package/skills/uipath-maestro-case/references/phase-0-interview.md +92 -23
  68. package/skills/uipath-maestro-case/references/phased-execution.md +70 -55
  69. package/skills/uipath-maestro-case/references/placeholder-tasks.md +5 -5
  70. package/skills/uipath-maestro-case/references/planning.md +57 -9
  71. package/skills/uipath-maestro-case/references/plugins/case/impl-json.md +7 -5
  72. package/skills/uipath-maestro-case/references/plugins/case/planning.md +1 -1
  73. package/skills/uipath-maestro-case/references/plugins/conditions/case-exit-conditions/impl-json.md +5 -5
  74. package/skills/uipath-maestro-case/references/plugins/conditions/stage-entry-conditions/impl-json.md +41 -5
  75. package/skills/uipath-maestro-case/references/plugins/conditions/stage-entry-conditions/planning.md +27 -3
  76. package/skills/uipath-maestro-case/references/plugins/conditions/stage-exit-conditions/impl-json.md +6 -6
  77. package/skills/uipath-maestro-case/references/plugins/conditions/stage-exit-conditions/planning.md +3 -1
  78. package/skills/uipath-maestro-case/references/plugins/conditions/task-entry-conditions/impl-json.md +20 -7
  79. package/skills/uipath-maestro-case/references/plugins/conditions/task-entry-conditions/planning.md +37 -4
  80. package/skills/uipath-maestro-case/references/plugins/sla/impl-json.md +24 -13
  81. package/skills/uipath-maestro-case/references/plugins/sla/planning.md +9 -3
  82. package/skills/uipath-maestro-case/references/plugins/stages/impl-json.md +4 -0
  83. package/skills/uipath-maestro-case/references/plugins/stages/planning.md +4 -1
  84. package/skills/uipath-maestro-case/references/plugins/tasks/action/impl-json.md +3 -1
  85. package/skills/uipath-maestro-case/references/plugins/tasks/action/planning.md +2 -0
  86. package/skills/uipath-maestro-case/references/plugins/tasks/agent/impl-json.md +3 -2
  87. package/skills/uipath-maestro-case/references/plugins/tasks/agent/planning.md +4 -2
  88. package/skills/uipath-maestro-case/references/plugins/tasks/api-workflow/impl-json.md +3 -2
  89. package/skills/uipath-maestro-case/references/plugins/tasks/api-workflow/planning.md +4 -2
  90. package/skills/uipath-maestro-case/references/plugins/tasks/case-management/impl-json.md +3 -2
  91. package/skills/uipath-maestro-case/references/plugins/tasks/case-management/planning.md +4 -2
  92. package/skills/uipath-maestro-case/references/plugins/tasks/connector-activity/impl-json.md +1 -1
  93. package/skills/uipath-maestro-case/references/plugins/tasks/connector-activity/planning.md +2 -0
  94. package/skills/uipath-maestro-case/references/plugins/tasks/connector-trigger/impl-json.md +1 -1
  95. package/skills/uipath-maestro-case/references/plugins/tasks/connector-trigger/planning.md +2 -0
  96. package/skills/uipath-maestro-case/references/plugins/tasks/create-inline-common.md +1 -1
  97. package/skills/uipath-maestro-case/references/plugins/tasks/process/impl-json.md +3 -2
  98. package/skills/uipath-maestro-case/references/plugins/tasks/process/planning.md +6 -4
  99. package/skills/uipath-maestro-case/references/plugins/tasks/rpa/impl-json.md +3 -2
  100. package/skills/uipath-maestro-case/references/plugins/tasks/rpa/planning.md +4 -2
  101. package/skills/uipath-maestro-case/references/plugins/tasks/wait-for-timer/impl-json.md +4 -3
  102. package/skills/uipath-maestro-case/references/plugins/tasks/wait-for-timer/planning.md +4 -0
  103. package/skills/uipath-maestro-case/references/plugins/triggers/event/impl-json.md +17 -14
  104. package/skills/uipath-maestro-case/references/plugins/triggers/event/planning.md +1 -1
  105. package/skills/uipath-maestro-case/references/plugins/triggers/manual/impl-json.md +13 -10
  106. package/skills/uipath-maestro-case/references/plugins/triggers/timer/impl-json.md +18 -16
  107. package/skills/uipath-maestro-case/references/plugins/triggers/timer/planning.md +2 -2
  108. package/skills/uipath-maestro-case/references/plugins/variables/bindings/impl-json.md +1 -1
  109. package/skills/uipath-maestro-case/references/plugins/variables/global-vars/impl-json.md +11 -9
  110. package/skills/uipath-maestro-case/references/plugins/variables/io-binding/impl-json.md +6 -2
  111. package/skills/uipath-maestro-case/references/plugins/variables/io-binding/planning.md +19 -1
  112. package/skills/uipath-maestro-case/references/registry-discovery.md +3 -3
  113. package/skills/uipath-maestro-case/references/sdd-generation-rules.md +155 -51
  114. package/skills/uipath-maestro-case/references/sla-response-shapes.md +74 -0
  115. package/skills/uipath-maestro-flow/SKILL.md +4 -3
  116. package/skills/uipath-maestro-flow/references/author/CAPABILITY.md +3 -0
  117. package/skills/uipath-maestro-flow/references/author/references/editing-operations-json.md +10 -17
  118. package/skills/uipath-maestro-flow/references/author/references/editing-operations.md +1 -1
  119. package/skills/uipath-maestro-flow/references/author/references/greenfield.md +8 -6
  120. package/skills/uipath-maestro-flow/references/author/references/planning-impl.md +1 -1
  121. package/skills/uipath-maestro-flow/references/author/references/plugins/agent/impl.md +4 -9
  122. package/skills/uipath-maestro-flow/references/author/references/plugins/agentic-process/impl.md +3 -7
  123. package/skills/uipath-maestro-flow/references/author/references/plugins/api-workflow/impl.md +5 -8
  124. package/skills/uipath-maestro-flow/references/author/references/plugins/connector/impl.md +11 -4
  125. package/skills/uipath-maestro-flow/references/author/references/plugins/flow/impl.md +3 -7
  126. package/skills/uipath-maestro-flow/references/author/references/plugins/inline-agent/impl.md +14 -17
  127. package/skills/uipath-maestro-flow/references/author/references/plugins/ixp/impl.md +60 -13
  128. package/skills/uipath-maestro-flow/references/author/references/plugins/queue/impl.md +2 -14
  129. package/skills/uipath-maestro-flow/references/author/references/plugins/rpa/impl.md +4 -9
  130. package/skills/uipath-maestro-flow/references/author/references/plugins/script/impl.md +3 -0
  131. package/skills/uipath-maestro-flow/references/author/references/plugins/subflow/impl.md +5 -9
  132. package/skills/uipath-maestro-flow/references/author/references/plugins/transform/impl.md +13 -0
  133. package/skills/uipath-maestro-flow/references/shared/action-nodes.md +2 -2
  134. package/skills/uipath-maestro-flow/references/shared/file-format.md +16 -12
  135. package/skills/uipath-maestro-flow/references/shared/variables-and-expressions.md +3 -3
  136. package/skills/uipath-planner/SKILL.md +1 -1
  137. package/skills/uipath-planner/references/non-pdd-lane-guide.md +1 -1
  138. package/skills/uipath-platform/SKILL.md +1 -1
  139. package/skills/uipath-platform/references/data-fabric/bulk-import.md +10 -27
  140. package/skills/uipath-platform/references/data-fabric/choice-sets.md +7 -64
  141. package/skills/uipath-platform/references/data-fabric/data-fabric.md +76 -267
  142. package/skills/uipath-platform/references/data-fabric/entity-schema.md +23 -99
  143. package/skills/uipath-platform/references/data-fabric/file-attachments.md +5 -28
  144. package/skills/uipath-platform/references/data-fabric/filter-platform-contract.md +2 -2
  145. package/skills/uipath-platform/references/data-fabric/records-query.md +11 -32
  146. package/skills/uipath-platform/references/integration-service/reference-resolution.md +6 -2
  147. package/skills/uipath-platform/references/licensing/consumables-report.md +18 -0
  148. package/skills/uipath-platform/references/licensing/licensing.md +1 -1
  149. package/skills/uipath-platform/references/orchestrator/run-jobs.md +9 -2
  150. package/skills/uipath-platform/references/orchestrator/setup-environment.md +9 -0
  151. package/skills/uipath-platform/references/traces/feedback.md +4 -1
  152. package/skills/uipath-process-mining/SKILL.md +97 -0
  153. package/skills/uipath-process-mining/references/app-types.md +66 -0
  154. package/skills/uipath-process-mining/references/data-model.md +130 -0
  155. package/skills/uipath-process-mining/references/lifecycle-and-rbac.md +67 -0
  156. package/skills/uipath-process-mining/references/model-editing.md +112 -0
  157. package/skills/uipath-process-mining/references/pre-flight.md +119 -0
  158. package/skills/uipath-process-mining/references/querying.md +66 -0
  159. package/skills/uipath-process-mining/references/transformations.md +80 -0
  160. package/skills/uipath-process-mining/references/uip-pm-cli.md +145 -0
  161. package/skills/uipath-review/SKILL.md +23 -18
  162. package/skills/uipath-review/references/agents/agent-grading-rubric.md +1 -1
  163. package/skills/uipath-review/references/agents/agent-review-checklist.md +0 -4
  164. package/skills/uipath-review/references/agents/agents-coded-rules.md +1 -10
  165. package/skills/uipath-review/references/agents/agents-lowcode-rules.md +3 -6
  166. package/skills/uipath-review/references/agents/guardrails/coded-guardrails-review.md +62 -14
  167. package/skills/uipath-review/references/agents/guardrails/guardrails-review.md +60 -4
  168. package/skills/uipath-review/references/review-workflow-guide.md +3 -2
  169. package/skills/uipath-review/references/rule-catalog-workflow.md +4 -5
  170. package/skills/uipath-rpa/.maintenance/pattern-card-maintenance.md +20 -0
  171. package/skills/uipath-rpa/SKILL.md +57 -55
  172. package/skills/uipath-rpa/agents/uipath-project-discovery-agent.md +75 -19
  173. package/skills/uipath-rpa/assets/codedworkflow-template.md +245 -11
  174. package/skills/uipath-rpa/references/cli-reference.md +229 -6
  175. package/skills/uipath-rpa/references/coded/codedworkflow-reference.md +158 -2
  176. package/skills/uipath-rpa/references/coded/integration-service-guide.md +6 -5
  177. package/skills/uipath-rpa/references/coded/operations-guide.md +273 -5
  178. package/skills/uipath-rpa/references/coded-vs-xaml-guide.md +3 -3
  179. package/skills/uipath-rpa/references/common-pattern-card.md +303 -0
  180. package/skills/uipath-rpa/references/data-manipulation-guide.md +18 -3
  181. package/skills/uipath-rpa/references/debugging.md +0 -2
  182. package/skills/uipath-rpa/references/environment-setup.md +309 -1
  183. package/skills/uipath-rpa/references/error-handling-guide.md +1 -1
  184. package/skills/uipath-rpa/references/execution-maps-guide.md +110 -0
  185. package/skills/uipath-rpa/references/is-connector-xaml-guide.md +58 -4
  186. package/skills/uipath-rpa/references/legacy/activity-docs/Excel.md +1 -1
  187. package/skills/uipath-rpa/references/legacy/activity-docs/_DU-PROCESS.md +0 -2
  188. package/skills/uipath-rpa/references/legacy/activity-docs/_INDEX.md +2 -2
  189. package/skills/uipath-rpa/references/legacy/activity-docs/_PATTERNS.md +1 -1
  190. package/skills/uipath-rpa/references/legacy/activity-docs/_REFRAMEWORK.md +2 -7
  191. package/skills/uipath-rpa/references/legacy/cli-reference.md +599 -0
  192. package/skills/uipath-rpa/references/legacy/error-handling-guide.md +2 -2
  193. package/skills/uipath-rpa/references/legacy/legacy-mode-guide.md +16 -16
  194. package/skills/uipath-rpa/references/legacy/project-organization-guide.md +2 -2
  195. package/skills/uipath-rpa/references/legacy/selector-guide.md +163 -1
  196. package/skills/uipath-rpa/references/legacy/testing-guide.md +246 -3
  197. package/skills/uipath-rpa/references/legacy/xaml-basics-and-rules.md +267 -2
  198. package/skills/uipath-rpa/references/library-authoring-guide.md +4 -3
  199. package/skills/uipath-rpa/references/testing-guide.md +2 -28
  200. package/skills/uipath-rpa/references/trigger-pattern-guide.md +1 -1
  201. package/skills/uipath-rpa/references/xaml/canvas-layout-guide.md +140 -33
  202. package/skills/uipath-rpa/references/xaml/common-pitfalls.md +57 -240
  203. package/skills/uipath-rpa/references/xaml/csharp-activity-binding-guide.md +42 -2
  204. package/skills/uipath-rpa/references/xaml/long-running-workflow-guide.md +1 -1
  205. package/skills/uipath-rpa/references/xaml/xaml-basics-and-rules.md +194 -228
  206. package/skills/uipath-solution/references/activate-and-manage.md +22 -0
  207. package/skills/uipath-solution/references/develop-solution.md +26 -2
  208. package/skills/uipath-solution/references/pack-and-deploy.md +43 -9
  209. package/skills/uipath-test/SKILL.md +4 -4
  210. package/skills/uipath-test/references/playwright-first-mile-guide.md +5 -4
  211. package/skills/uipath-test/references/publish-and-link-guide.md +2 -2
  212. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/click-silent-no-op.md +5 -5
  213. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/queue-operation-failed.md +20 -4
  214. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/summary.md +1 -1
  215. package/skills/uipath-troubleshoot/references/activity-packages/csv-activities/playbooks/read-csv-file-not-found.md +12 -0
  216. package/skills/uipath-troubleshoot/references/activity-packages/mail-activities/playbooks/send-outlook-mail-failures.md +12 -1
  217. package/skills/uipath-troubleshoot/references/activity-packages/system-activities/playbooks/get-asset-activity-bug-silent-failure.md +2 -1
  218. package/skills/uipath-troubleshoot/references/activity-packages/terminal-activities/playbooks/terminal-session-connection-failed.md +5 -1
  219. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/click-silent-no-op.md +5 -5
  220. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/dependency-version-conflict.md +27 -6
  221. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/napplicationcard-view-generation-failed.md +10 -0
  222. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/scope-container-wrong-page.md +1 -1
  223. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/summary.md +1 -1
  224. package/skills/uipath-troubleshoot/references/activity-packages/web-activities/overview.md +4 -0
  225. package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/http-request-auth-401-403.md +44 -0
  226. package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/http-request-connection-failure.md +2 -1
  227. package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/http-request-content-type-rejected.md +37 -0
  228. package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/http-request-proxy-blocked.md +39 -0
  229. package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/package-version-mismatch.md +42 -0
  230. package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/securestring-misuse-analyzer.md +41 -0
  231. package/skills/uipath-troubleshoot/references/activity-packages/web-activities/summary.md +5 -0
  232. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-null-reference.md +14 -1
  233. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-runtime-exception.md +2 -0
  234. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/is-activities-prerelease-not-found.md +39 -0
  235. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/response-content-too-large.md +41 -0
  236. package/skills/uipath-troubleshoot/references/products/integration-service/summary.md +9 -0
  237. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/console-conflict-login-to-console.md +40 -0
  238. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/credential-store-unavailable.md +42 -0
  239. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/executor-start-transient-rerun.md +49 -0
  240. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/job-consecutive-system-exceptions.md +47 -0
  241. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/job-faulted-session-timeout.md +19 -19
  242. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/job-output-too-large.md +47 -0
  243. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/job-stopped-generic-exit-code.md +55 -0
  244. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/known-issue-robot-defect.md +40 -0
  245. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/platform-incident-correlation.md +45 -0
  246. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/screen-capture-handle-invalid.md +43 -0
  247. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/serverless-license-quota.md +43 -0
  248. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/serverless-time-limit-exceeded.md +34 -0
  249. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/workstation-in-use-machine-slots.md +40 -0
  250. package/skills/uipath-troubleshoot/references/products/orchestrator/summary.md +13 -1
  251. package/version-manifest.json +2 -2
  252. package/skills/uipath-maestro-bpmn/validator/README.md +0 -224
  253. package/skills/uipath-maestro-bpmn/validator/model.mjs +0 -419
  254. package/skills/uipath-maestro-bpmn/validator/package.json +0 -17
  255. package/skills/uipath-maestro-bpmn/validator/rules.mjs +0 -1403
  256. package/skills/uipath-maestro-bpmn/validator/samples/invalid-conditional-and-variable.bpmn +0 -25
  257. package/skills/uipath-maestro-bpmn/validator/samples/valid-baseline.bpmn +0 -52
  258. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/A.2.0.bpmn +0 -157
  259. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/A.2.1.bpmn +0 -333
  260. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/B.1.0.bpmn +0 -598
  261. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/B.2.0.bpmn +0 -1709
  262. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.2.0.bpmn +0 -564
  263. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.3.0.bpmn +0 -671
  264. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.4.0.bpmn +0 -1045
  265. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.5.0.bpmn +0 -1176
  266. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.6.0.bpmn +0 -670
  267. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.7.0.bpmn +0 -466
  268. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Can_Parse_Complex_Process_With_Task_Gateway_BoundaryEvent_etc.bpmn +0 -74
  269. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/ExclusiveGatewayDefaultFlow.bpmn +0 -32
  270. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/ExternalAgentWorkflow.bpmn +0 -62
  271. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Golden_Scenario.initial.bpmn +0 -361
  272. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/InclusiveJoinRouteAwayBranch.bpmn +0 -62
  273. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_AsyncExecution_And_Create_CorrectModel.bpmn +0 -74
  274. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_IXP_ExtractionValidation_And_Create_CorrectModel.bpmn +0 -35
  275. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_IXP_Extraction_FileUpload_And_Create_CorrectModel.bpmn +0 -33
  276. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_IXP_Extraction_JobAttachment_And_Create_CorrectModel.bpmn +0 -35
  277. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_SubProcess_With_Multiple_Element_Types.bpmn +0 -76
  278. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/StartEventWithOutputs.bpmn +0 -36
  279. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/StartGatewayEnd.bpmn +0 -44
  280. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/all elements.bpmn +0 -516
  281. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/all_sequence_flow_types.bpmn +0 -173
  282. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/demo.bpmn +0 -181
  283. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/subprocess-example-001-collapsed.bpmn +0 -126
  284. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/subprocess-example-001-expanded.bpmn +0 -122
  285. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/subprocess-example-003-collapsed_deeply-nested.bpmn +0 -438
  286. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/A.1.0.bpmn +0 -87
  287. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/A.3.0.bpmn +0 -165
  288. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ApiWorkflow.bpmn +0 -39
  289. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnNestedSubProcessTests.bpmn +0 -102
  290. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnTimerBoundaryEvents.bpmn +0 -160
  291. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnXmlWithCatchAllErrorEventSubProcess.bpmn +0 -45
  292. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnXmlWithSpecificErrorEventSubProcess.bpmn +0 -46
  293. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/CaseManagementWithConstantIdentifier.bpmn +0 -218
  294. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ErrorBoundary.bpmn +0 -78
  295. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ErrorPropagationInEventSubprocess.bpmn +0 -340
  296. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/EventBasedGatewayFirstCatcherWins.bpmn +0 -56
  297. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Example-EventBasedGateway.bpmn +0 -117
  298. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ExclusiveGatewayConditional.bpmn +0 -45
  299. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ExclusiveGatewaySharedEndEvent.bpmn +0 -45
  300. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ExclusiveWithParallelGateway.bpmn +0 -68
  301. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/FourScriptTasks.bpmn +0 -84
  302. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/HitlTaskOnly.bpmn +0 -55
  303. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/InclusiveGatewayForkJoin.bpmn +0 -69
  304. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_BPMN_Elements_And_Create_CorrectModel.bpmn +0 -20
  305. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_HttpRequest_ServiceTask_And_Create_Correct_Model.bpmn +0 -34
  306. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_MessageBoundaryEvent_And_Create_CorrectModel.bpmn +0 -87
  307. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_Script_Task_V2_And_Create_Correct_Model.bpmn +0 -31
  308. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_Sets_Containers_Properly.bpmn +0 -129
  309. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ScriptWritesVariableThenGatewayBranches.bpmn +0 -59
  310. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/boundaryevent.bpmn +0 -30
  311. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/collapsed-subprocess.bpmn +0 -83
  312. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/connectable-types.bpmn +0 -85
  313. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/extensions-orchestrator-start-job.bpmn +0 -80
  314. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/multiparticipantpool.bpmn +0 -77
  315. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/nestedsubprocess.bpmn +0 -36
  316. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/simple.bpmn +0 -59
  317. package/skills/uipath-maestro-bpmn/validator/test/integration.test.mjs +0 -146
  318. package/skills/uipath-maestro-bpmn/validator/test/model-helpers.mjs +0 -42
  319. package/skills/uipath-maestro-bpmn/validator/test/ported-rule-tests.mjs +0 -983
  320. package/skills/uipath-maestro-bpmn/validator/test/run-tests.mjs +0 -530
  321. package/skills/uipath-maestro-bpmn/validator/uipath-moddle.v1.json +0 -715
  322. package/skills/uipath-maestro-bpmn/validator/validate-bpmn.mjs +0 -164
  323. package/skills/uipath-review/references/agents/agents-common-rules.md +0 -32
  324. package/skills/uipath-rpa/assets/before-after-hooks-template.md +0 -115
  325. package/skills/uipath-rpa/assets/helper-utility-template.md +0 -22
  326. package/skills/uipath-rpa/assets/testcase-template.md +0 -92
  327. package/skills/uipath-rpa/references/coded/coding-guidelines.md +0 -255
  328. package/skills/uipath-rpa/references/coded/inspect-package-guide.md +0 -80
  329. package/skills/uipath-rpa/references/coded/third-party-packages-guide.md +0 -67
  330. package/skills/uipath-rpa/references/connector-capabilities.md +0 -79
  331. package/skills/uipath-rpa/references/legacy/activity-docs/Testing.md +0 -95
  332. package/skills/uipath-rpa/references/legacy/activity-docs/UIAutomation.md +0 -159
  333. package/skills/uipath-rpa/references/legacy/common-pitfalls.md +0 -318
  334. package/skills/uipath-rpa/references/legacy/discovery-workflow.md +0 -147
  335. package/skills/uipath-rpa/references/legacy/environment-setup.md +0 -78
  336. package/skills/uipath-rpa/references/legacy/project-structure.md +0 -206
  337. package/skills/uipath-rpa/references/legacy/test-data-guide.md +0 -142
  338. package/skills/uipath-rpa/references/legacy/validation-and-fixing.md +0 -154
  339. package/skills/uipath-rpa/references/project-structure-guide.md +0 -168
  340. package/skills/uipath-rpa/references/project-structure.md +0 -135
  341. package/skills/uipath-rpa/references/publishing-guide.md +0 -80
  342. package/skills/uipath-rpa/references/validation-guide.md +0 -170
  343. package/skills/uipath-rpa/references/xaml/csharp-expression-pitfalls.md +0 -43
  344. package/skills/uipath-rpa/references/xaml/flowchart-guide.md +0 -113
  345. package/skills/uipath-rpa/references/xaml/workflow-guide.md +0 -258
@@ -4,48 +4,18 @@ Data Fabric is UiPath's structured data store. Entities are typed schemas; recor
4
4
 
5
5
  All operations go through `uip df <subject> <verb> --output json`.
6
6
 
7
- > For Flow connector nodes (Query / Create / Update / Delete / Get Entity Record by ID inside a `.flow`), use the `uipath-maestro-flow` skill — it owns the node JSON, `bindings_v2.json`, connection-resource layout, and `node configure` mechanics. Use this reference for entity discovery and record seeding from the CLI.
7
+ This file is the router and the cross-cutting safety contract. Read the
8
+ Critical Rules, then load only the topic reference the task needs. For Data
9
+ Fabric nodes inside a `.flow`, use `uipath-maestro-flow`; use this reference
10
+ for CLI operations.
8
11
 
9
12
  ---
10
13
 
11
- ## When to Use
14
+ ## Not Supported
12
15
 
13
- - Creating or modifying entity schemas (add fields, update metadata)
14
- - Reading, inserting, updating, or deleting records
15
- - Filtering records with complex predicates
16
- - Computing aggregate metrics for dashboards / KPIs (counts, sums, averages, group-by) — see [records-query.md](records-query.md#aggregates-server-side)
17
- - Importing bulk data from CSV files
18
- - Uploading or downloading file attachments on records
16
+ Do not change field types, create federated entities, or write federated records. Do not work around rejected names. FILE values require `files upload`; record writes silently ignore them. The rules and topic references below give the supported alternatives.
19
17
 
20
- ## When NOT to Use — Hand Off to Another Skill
21
-
22
- Embedding Data Fabric reads/writes **inside a `.flow` file** as connector activity nodes (Query / Create / Update / Delete / Get Entity Record by ID) is owned by `uipath-maestro-flow`. That skill knows the node JSON, `bindings_v2.json`, connection-resource layout, and `node configure` mechanics.
23
-
24
- Use this reference (`uipath-platform` → Data Fabric) for entity discovery and record seeding from the CLI; hand off to `uipath-maestro-flow` for in-flow node authoring.
25
-
26
- | Task | Skill |
27
- |------|-------|
28
- | Discover entities, list/describe fields before authoring a flow node | `uipath-platform` Data Fabric (`uip df entities list`/`get`) |
29
- | Seed test records the flow will read | `uipath-platform` Data Fabric (`uip df records insert` / `import`) |
30
- | Add a Query/Create/Update/Delete/GetById node to a `.flow` | `uipath-maestro-flow` |
31
- | Resolve the IS `uipath-uipath-dataservice` connection for binding | `uipath-maestro-flow` (in-flow binding) or `uipath-platform` Integration Service (general IS connection management) |
32
-
33
- ---
34
-
35
- ## Not Supported — Never Attempt These
36
-
37
- Respond that the operation is not supported. Do not try to work around it.
38
-
39
- | Operation | Response |
40
- |-----------|----------|
41
- | Change a field's data type | Not supported; type is fixed at creation |
42
- | Create a federated entity | Not supported via CLI or UiPath portal |
43
- | Write records to a federated entity | Federated entities are read-only |
44
- | Name a field with a SQL / language reserved keyword | API rejects with `RESERVED_LANGUAGE_KEYWORDS` — pick a domain-specific name (see Rule 4) |
45
- | Write a `FILE` value through `records insert` / `records update` | Not supported — `FILE` columns are written exclusively through `files upload`. Insert the row without the FILE column, then `files upload <entity-id> <record-id> <field-name> --file <path>`. See Rule 6. |
46
- | Write a `FILE` value through `records import` (CSV) | Not supported. CSV `records import` does not accept `FILE` columns — see Rule 20. Switch to `records insert` (no FILE column) + `files upload`. |
47
-
48
- ---
18
+ **Immediate refusal.** When the request is categorically unsupported (federated write, type-change, reserved-keyword name, cross-scope binding, etc.) **and** the user's prompt already establishes the fact that makes it unsupported (e.g. *"that list is one we pull from Salesforce"* → federated; *"Amount is currently stored as text, change it to a decimal"* → type-change), refuse immediately, cite the rule, and offer the supported alternative. Do **not** re-verify with `entities list`, `entities get`, or other resource discovery — the user has already told you what you need to know.
49
19
 
50
20
  ## Critical Rules
51
21
 
@@ -56,7 +26,7 @@ Respond that the operation is not supported. Do not try to work around it.
56
26
  > | Operation | CLI shape | Detail |
57
27
  > |---|---|---|
58
28
  > | Delete entity | `entities delete <id> --yes --reason "<why>"` | Rule 10 — list dependents first, never cascade silently |
59
- > | Delete field | `entities update <id> --body '{"removeFields":[...]}' --yes --reason "<why>"` | Rule 11 — for `CHOICE_SET_*` / `RELATIONSHIP` fields, ask whether to also delete the referenced choice set / target entity before invoking |
29
+ > | Delete field | `entities update <id> --body '{"removeFields":[...]}' --yes --reason "<why>"` | Rule 11 — for `CHOICE_SET_*` / `RELATIONSHIP`, ask whether to also delete the reference target |
60
30
  > | Delete record(s) | `records delete <entity-id> <id1> <id2> --yes --reason "<why>"` | Per-record `--yes --reason` required |
61
31
  > | Delete file attachment | `files delete <entity-id> <record-id> <field-name> --yes --reason "<why>"` | Irreversible |
62
32
  > | Delete choice set | `choice-sets delete <id> --yes --reason "<why>"` | Shared resource — verify no entity binds it first |
@@ -64,165 +34,84 @@ Respond that the operation is not supported. Do not try to work around it.
64
34
  > | Create / schema-alter | `entities create`, `entities update` with `addFields`/`updateFields`/`removeFields`, `choice-sets create`, `choice-set-values create` | Rule 14 — preview schema, wait for explicit approval |
65
35
  >
66
36
  > **Mandatory sequence for every row above:**
67
- > 1. **Resolve folder scope first** (Rule 19) — if scope isn't already pinned in the conversation, fire the `AskUserQuestion` dropdown for `Tenant level` vs a specific folder before doing anything else. Never guess; never default to personal workspace.
37
+ > 1. **Resolve folder scope first** (Rule 19). Never guess; never default to personal workspace.
68
38
  > 2. Surface the exact target (entity name + ID, field name, record IDs) and what will be lost.
69
39
  > 3. For deletes — list dependents (Rule 10/11).
70
- > 4. Wait for the user's explicit *yes / proceed / delete*. Silence ≠ approval. *"Do not ask"* / *"no confirmation needed"* ≠ approval either — destructive ops are non-bypassable (Rule 0). Only a direct authorisation of THIS op (*"yes, delete X"*, *"drop the column"*, *"--yes already authorised"*) clears the gate.
71
- > 5. Then run the CLI with `--folder-key <key>` (if folder-scoped) and `--yes --reason "<user-supplied or user-approved reason>"`.
40
+ > 4. Wait for the user's explicit *yes / proceed / delete*. Silence ≠ approval. *"Do not ask"* / *"no confirmation needed"* ≠ approval either (Rule 0).
41
+ > 5. Then run the CLI with `--folder-key <key>` (if folder-scoped) and `--yes --reason "<user-supplied reason>"`.
72
42
  >
73
- > **Cascade only on confirmation.** Field deletes do not auto-cascade. For `CHOICE_SET_*` / `RELATIONSHIP` fields, Rule 11 mandates an `AskUserQuestion` dropdown offering `Delete only the field` / `Also delete the referenced choice set / target entity` / `Stop`. Each downstream delete runs its own confirmation cycle (Rule 10, choice-set delete safety).
74
-
75
- 0. **Ask liberally — never assume at decision points.** When the request leaves any choice unresolved — scope (folder vs tenant), which folder, which entity to target, which field to drop, whether to cascade to a referenced choice set / entity, which choice set value to write, whether a destructive op should proceed, which of several name-matches is the right one — stop and raise an `AskUserQuestion` dropdown. The bias is *ask, then act*, not *act, then explain*. Render every multi-option pick as a dropdown, not a markdown list.
76
-
77
- **Destructive ops are non-bypassable.** For any row in the hoisted Destructive Operations block (entity / field / record / file / choice-set / choice-set-value delete, and schema-altering creates / updates) you MUST raise the AskUserQuestion confirmation **even if the user said "do not ask" / "do not pause" / "no approval needed" / "proceed without confirmation"**. The Rule 19 bypass clauses apply only to *scope resolution* (tenant vs folder, which folder) — they never silence the destructive-op confirmation. Schema previews (Rule 14) and field-delete cascade asks (Rule 11) are part of this gate. The user can pre-approve the destructive op explicitly in the same prompt (*"yes, delete entity X"*, *"--yes already authorised"*, *"I'm sure, drop the column"*) and that satisfies the gate — silence or "do not ask" alone does not.
78
-
79
- **Never self-resolve a scope question.** If you find yourself drafting language like *"Assumption I will proceed with (absent further input):"*, *"defaulting to tenant since no folder was specified"*, *"I'll proceed with X — let me know if you want Y"*, *"I'll assume tenant level"*, or any other unilateral resolution — you are violating this rule. Halt the `uip df` mutation. Write the open question(s) to a file or to your assistant output and STOP — do not call `entities create`, `choice-sets create`, `records insert`, `files upload`, or any other mutation until the user answers. *"No reachable user"* / *"single-turn"* / *"offline test"* is NOT permission to default. Inability to ask is not the same as having been told to proceed. The correct end-of-turn here is: question listed, no mutation issued.
80
-
81
- 1. **Install the tool first.** If `uip df` returns "unknown command": `uip tools install @uipath/data-fabric-tool`. See *Tool Version Requirements* below for the floor needed per feature.
82
-
83
- 2. **Verify login and tenant first.** Run `uip login status --output json`. Switch with `uip login tenant set <tenant>` if needed. For full login/environment setup, see the parent `uipath-platform` skill.
84
-
85
- 3. **Always resolve entity ID first.** Use `entities list` before any operation. Never assume an entity ID.
86
-
87
- 4. **Entity and field names must pass validation**: start with a letter, contain only letters/digits/underscores (`[a-zA-Z0-9_]`), 3–100 characters. No hyphens or spaces. Reserved field names that will error: `Id`, `CreatedBy`, `CreateTime`, `UpdatedBy`, `UpdateTime`. Also never use **C# or VB reserved keywords** — match is **case-insensitive** (`Class`, `class`, `CLASS` all rejected). Common rejections: `Case`, `Class`, `If`, `Then`, `Else`, `New`, `Object`, `Public`, `Return`, `Select`, `Internal`, `Private`, `Static`. The API surfaces these as *"cannot be a reserved word in C# or VB"* (or `RESERVED_LANGUAGE_KEYWORDS`). SQL keywords (e.g. `Status`, `Order`, `Key`, `User`, `Role`, `Type`, `Group`, `Index`, `From`, `Where`, `Table`) are **NOT** rejected — those idiomatic field names work as-is; don't rename them defensively. Pick a domain-specific rename only for actual C#/VB collisions: `Case` → `WorkItem`; `Class` → `Category`; `New` → `IsNew`. **The choice-set-value `Name` validator is a different code path with different behavior — see [`choice-sets.md` → Value `Name` validation](choice-sets.md#value-name-validation); do not assume a choice-value name is legal just because a field name with the same spelling is, or vice versa.**
88
-
89
- 5. **All updates require `Id` in the body.** The CLI routes single vs batch by whether the body is a JSON object (1 record) or array (multiple). Both require `"Id"` in the record. Use `records list` or `records query` to retrieve record IDs before updating. **`Id` is structural, not a lookup value — the server has no field-based row identifier, so omitting `"Id"` and addressing the row by `Title`, `Name`, or any other unique column fails with `Record must include 'Id'`. Keep `"Id":"<record-uuid>"` in every element even when smoke-testing offline or the surrounding `records list` failed — the body shape is validated before the row is resolved.**
90
-
91
- 5b. **`isUnique` is immutable after field creation — `updateFields` silently no-ops it.** `entities update` with `{"updateFields":[{"id":"<id>","isUnique":true}]}` returns `Result: Success` but the server ignores the value (the Data Fabric UI renders the toggle as **disabled** on existing fields). Reporting "updated" on this call is wrong. Sequence: (1) before invoking, tell the user that `isUnique` is fixed at creation and offer two paths — leave the field as-is, or recreate it (`removeFields` → `addFields` with `isUnique: true`) which **drops every existing value in the column**; (2) get explicit user approval on whichever path; (3) for any `updateFields` call you do run, re-issue `entities get <entity-id> --output json` after and compare each post-update key against what you sent — surface the discrepancy verbatim instead of claiming success. Full surface in [`entity-schema.md` → Not Supported](entity-schema.md#not-supported) and [Verify-after-update](entity-schema.md#verify-after-update--never-trust-the-success-response-alone).
92
-
93
- 6. **Never put a FILE-typed key in `records insert` / `records update` / `records import` payloads.** Expected behavior: the platform silently strips FILE values — paths, base64, filenames, UUIDs, and `null` are all dropped server-side, the CLI returns `Result: Success`, no error. Do not interpret Success as "the file was changed." `records update receipt:null` does **not** clear the file. `records update receipt:"<uuid>"` does **not** swap the file. CSV import drops FILE columns too (Rule 20). Required path: `files upload <entity-id> <record-id> <field-name> --file <path>` to attach or replace, `files delete` to clear, `files download` to retrieve. Sequence to seed a file on a new row: (1) `records insert` without the FILE column; (2) `files upload` against the returned `Data.Id`. Full surface in [`file-attachments.md`](file-attachments.md).
94
-
95
- 7. **CSV headers must match exact field names** (case-sensitive). Use `entities get` to discover field names before importing.
96
-
97
- 8. **Never create duplicate entities.** Always `entities list` first; reuse if it already exists.
98
-
99
- 9. **Only work with native entities.** When listing entities before a write, use `entities list --native-only` to filter out federated entities. Never write to federated entities.
100
-
101
- 10. **Entity delete — dependent discovery.** Gating + sequence live in the hoisted Destructive Operations block. Unique to entity delete: scan for dependents and list them to the user one by one — (a) other entities that reference this one (run `entities list --output json` and pull every entry whose `Fields[].ReferenceEntity.Id == <id>` — these will have broken FKs after the delete); (b) choice sets used by this entity's fields (`Fields[].ChoiceSetId` from `entities get`) — those choice sets are shared and may still be in use elsewhere. Ask per dependent: delete it too, leave it, or stop. Apply only the choices the user confirms.
102
-
103
- 11. **Field delete — body shape + cascade-ask.** Gating + sequence live in the hoisted Destructive Operations block. Unique to field delete:
104
- - `removeFields` takes `{"fieldName": "<name>"}` — NOT `{"id": "..."}` like `updateFields`. Mixing the two yields `Each field in removeFields must include a non-empty 'fieldName' string`.
105
- - **Cascade-ask for CHOICE_SET / RELATIONSHIP fields.** Before invoking `removeFields`, look up the field's type from `entities get <id>`. If the field is `CHOICE_SET_SINGLE` / `CHOICE_SET_MULTIPLE` or `RELATIONSHIP`, raise an `AskUserQuestion` dropdown:
106
- - `CHOICE_SET_*` → resolve `Fields[].ChoiceSetId` → ask: `Delete only the field` · `Also delete the referenced choice set <Name> (<id>)` · `Stop`. Echo any other entities that share the choice set (`entities list --output json` → entries whose `Fields[].ChoiceSetId == <id>`) so the user sees the blast radius.
107
- - `RELATIONSHIP` → resolve `Fields[].ReferenceEntity.Id` → ask: `Delete only the field` · `Also delete the referenced entity <Name> (<id>)` · `Stop`. Echo other inbound references (`entities list --output json` → entries whose `Fields[].ReferenceEntity.Id == <id>`) so the user sees what else will break.
108
- - If the user picks `Also delete …`, run the choice-set-delete or entity-delete flow (Rule 10 / [`choice-sets.md` → Delete a choice set](choice-sets.md#delete-a-choice-set)) with its own dependent-discovery and approval cycle. Apply only what the user confirms.
109
- - `FILE` field delete drops only the column — the field's `referenceEntityId` points at the FILE storage entity, which is platform-managed, not user-owned. Do **not** offer to delete it.
110
- - **Ambiguous-phrasing examples — confirm the intent before acting:**
111
- - *"remove the references of the choice set from these entities"* → `removeFields` on each entity, then ask whether to also delete the now-unreferenced choice set.
112
- - *"clear out the choice-set link from Order"* → `removeFields` on `Order`, then run the cascade-ask above.
113
- - *"unhook the Customer relationship from Invoice"* → `removeFields` on `Invoice`, then ask whether to also delete `Customer`.
114
- - *"delete the file column from Receipts"* → `removeFields` on `Receipts`. Do not offer cascading.
115
-
116
- 12. **Complex field types need extra config and lookups.** `CHOICE_SET_*` needs `choiceSetId`; `RELATIONSHIP` needs `referenceEntityId` + `referenceFieldId`; `FILE` needs neither — server auto-wires (see [`entity-schema.md` → FILE Fields](entity-schema.md#file-fields)). When the user describes a link to another row ("each order has a Customer"), the type is `RELATIONSHIP` — never substitute `STRING` or `UUID`. Target entity must exist first. Full shape in [`entity-schema.md`](entity-schema.md#supported-field-types).
43
+ > **Cascade only on confirmation.** For `CHOICE_SET_*` / `RELATIONSHIP` field deletes, Rule 11 mandates a dropdown offering `Delete only the field` / `Also delete the referenced choice set / target entity` / `Stop`. Each downstream delete runs its own confirmation cycle.
117
44
 
118
- 12b. **Only pick UI-compatible field types.** `entities create` / `addFields` accept `INTEGER`, `BIG_INTEGER`, `FLOAT`, `DOUBLE`, `UUID`, `DATETIME` (no-TZ) as *field data types* but the Data Fabric UI renders those columns broken. Never emit any of the six as a **field type** — substitute per [`entity-schema.md` → UI-broken types](entity-schema.md#ui-broken-types--do-not-use). This ban is scoped to the field-type slot only; it does NOT restrict the word "integer" in prose contexts where an integer is genuinely correct — e.g. `CHOICE_SET_*` stores record values as integer `NumberId`s (Rule 15), `AUTO_NUMBER` generates integers, `DECIMAL` with `decimalPrecision: 0` represents whole numbers. Even when the user names a UI-broken type by keyword, propose the substitution in the Rule 14 preview and get approval. Verify with `entities get` after every create/addFields; if a UI-broken type slipped through, offer `removeFields` + `addFields` (drops all values — Rule 11).
45
+ 0. **Ask liberally — never assume at decision points.** When the request leaves any choice unresolved — scope, which folder, which entity, which field, whether to cascade, which of several name-matches — stop and raise an `AskUserQuestion` dropdown. Bias: *ask, then act*, not *act, then explain*. Render every multi-option pick as a dropdown, not a markdown list.
119
46
 
120
- 13. **Pick-or-create flow — applies to entities, choice sets, and relationship targets.** Whenever the user names a target without disambiguating, or doesn't name one at all, do NOT auto-create and do NOT silently grab the first match. Run the appropriate list command, present matches via `AskUserQuestion` dropdown labeled by `Name` / `DisplayName`, and ask: *pick from these, or create new?* Create only with explicit user approval.
121
- - **Primary entity** (any `entities create`, `entities get`, `records *`, `files *` where the entity isn't pinned by UUID): `entities list --native-only` (add `--folder-key` or `--include-folders` per scope) → dropdown of name+displayName matches → user picks or confirms create-new.
122
- - **Choice set** (CHOICE_SET_* field on entity create/update, choice-set-value writes): `choice-sets list` → dropdown.
123
- - **Relationship target** (RELATIONSHIP / FILE field's `referenceEntityId`): `entities list --native-only` → dropdown. Never fall back to `STRING` or `UUID` when the user described a link.
47
+ **Destructive ops are non-bypassable.** For any row in the Destructive Operations block you MUST raise the AskUserQuestion confirmation **even if the user said "do not ask" / "no confirmation needed" / "proceed without confirmation"**. The Rule 19 bypass clauses apply only to *scope resolution*. Silence or "do not ask" alone does not clear the gate.
124
48
 
125
- Choice-set authoring uses `choice-sets create` / `update` / `delete` + `choice-set-values create` / `update` / `delete`; surface in [`choice-sets.md`](choice-sets.md).
49
+ **Pre-approval that satisfies the gate.** Do not re-ask when the user explicitly confirms a specific operation and resource, for example *"I approve creating CE_X and adding fields A, B, C"*, *"yes, delete X"*, or equivalent `--yes` authorization. A general request or *"do not ask"* is not confirmation. Preview → apply per Rule 14 still holds.
126
50
 
127
- 14. **Schema preview — how to compose the proposal.** Gating + approval wait live in the hoisted Destructive Operations block. Unique to schema-altering ops (`entities create`, `entities update` with `addFields` / `updateFields` / `removeFields`, `choice-sets create`, `choice-set-values create`): (1) compose the full proposal — entity / choice-set name, `displayName`, `description`, and every field with its `fieldName`, normalized UPPERCASE `type`, and all extras (`isRequired`, `isUnique`, `lengthLimit`, `maxValue` / `minValue`, `decimalPrecision`, `defaultValue`, `choiceSetId`, `referenceEntityId` / `referenceFieldId`); (2) render it as a readable table or formatted JSON block (NOT a raw CLI command); (3) apply revisions exactly as requested — never silently add, drop, rename, or retype fields the user didn't approve; re-show the revised proposal and ask again. Show the proposal **once per round** — don't re-show an unchanged schema after every minor question.
51
+ **Never self-resolve a scope question.** Phrases like *"Assumption I will proceed with:"*, *"defaulting to tenant"*, *"I'll assume …"* mean you're violating this rule. Halt the mutation, list the open question, STOP. *"No reachable user"* / *"single-turn"* / *"offline test"* is NOT permission to default.
128
52
 
129
- **`referenceFieldId` on `RELATIONSHIP` is a user-facing display choice** — controls which target field renders in the UI. List the target's display candidates via `entities get <target-id>` and raise an `AskUserQuestion` dropdown; never silently default to `Id`. Stored value is always the target UUID regardless. This dropdown fires only for `RELATIONSHIP` — FILE has no such choice (Rule 12).
53
+ 1. **Install the tool first.** If `uip df` returns "unknown command": `uip tools install @uipath/data-fabric-tool@latest`.
130
54
 
131
- **CSV / sample-data inference — confirm every inferred type.** When field types are inferred from a source file (CSV, Excel, JSON sample) rather than spelled out by the user, first run the Rule 13 pick-or-create probes (`entities list --native-only`, `choice-sets list`) so `RELATIONSHIP` / `CHOICE_SET_*` alternatives are grounded in what exists. Then write the proposal, flagging every type as **inferred**, and raise an `AskUserQuestion` to confirm or override before `entities create`. One row per column: `header` → `inferred type` → `sample value(s)`. Rule 12b applies to the whole proposal — do not mention any UI-broken type name anywhere in it (no candidate list, no exclusions callout, no explanatory prose); use only the UI-compatible substitutes. Also confirm `isRequired` / `isUnique` / `lengthLimit` per column; do not infer these from CSV sparsity. Silence on a CSV import ≠ approval (Rule 0).
55
+ 2. **Verify login and tenant first.** Run `uip login status --output json`. Switch with `uip login tenant set <tenant>` if needed. Full login setup lives in the parent `uipath-platform` skill.
132
56
 
133
- 15. **Choice / relationship record values use lookup tokens, not labels.** Choice value → integer `NumberId` (single) or array of `NumberId`s (multi), from `choice-sets list-values`. Relationship value → target record's UUID `Id` regardless of which field was bound as `referenceFieldId`. Filter / `groupBy` use the same tokens; `CHOICE_SET_MULTIPLE` filtering has special operator semantics — see [`records-query.md`](records-query.md#filtering-on-choice-set-fields).
134
-
135
- 16. **Answer with `records query`, not from memory.** Counts, sums, filters, lookups — issue a fresh `records query` (or `records list`) and use the server's response. Do not reuse cached insert responses, IDs you generated earlier, or values from previous tool results. Exception: the `Id` returned by the same `records insert` you just made.
136
-
137
- 17. **`records query` filters.** Body shape, per-type support, and unsupported-operator handling: [filter contract](filter-platform-contract.md). Only these `operator` tokens: `=` `!=` `>` `<` `>=` `<=` `contains` `not contains` `startswith` `endswith` `in` `not in`; 400 thrown for -> `equals`/`==`/`like`. `value` is always a JSON string. On unsupported operator/type or missing value, don't run — ask (Rule 18). **Return all fields by default** — omit `selectedFields` unless a subset is requested. **Aggregate aliases are PascalCased in the response** — `alias: "total"` comes back as key `"Total"` on each row of `Data.Items`; parse by the PascalCase key, not the alias you sent.
138
-
139
- 18. **When a request isn't supported OR the upstream system returns an error, stop and confirm with the user — never silently substitute.** Triggers (not exhaustive): a filter operator unsupported for the field type / not in the symbol list / missing a value (see [filter contract → Unsupported operator](filter-platform-contract.md#unsupported-operator-or-missing-value)); an unknown `fieldName`; a nonexistent or federated entity; a missing CLI verb or unsupported operation (see *Not Supported*); cross-entity joins or value forms the API can't serve; ANY 4xx/5xx, validation error, `RESERVED_LANGUAGE_KEYWORDS`, constraint-violation, or quota response from the API.
140
- Sequence: (1) surface the full upstream message verbatim — never swallow it; (2) state precisely what isn't supported or what failed (cite the rule / schema / error code); (3) propose a concrete next step keyed to the error — e.g. unknown `fieldName` → list the entity's real same-type fields from `entities get` and ask which; `RESERVED_LANGUAGE_KEYWORDS` → suggest a domain-specific rename; constraint violation → show the allowed range; missing dependency → list candidates via `entities list` / `choice-sets list` and offer pick-or-create (Rule 13); (4) apply **only** what the user approves, never your own fallback. If nothing works, error out and recommend the right sibling skill (`uipath-maestro-flow` / `uipath-rpa` / `uipath-agents` / `uipath-test`) — don't fabricate or return a degraded result.
141
-
142
- 19. **Resolve folder scope up front; pass `--folder-key` on folder-scoped targets.** Data Fabric entities and choice sets live either at the tenant level or inside an Orchestrator folder. Every `uip df` command that touches a row accepts `--folder-key <GUID>`; `entities list` and `choice-sets list` also accept `--include-folders` (mutually exclusive with `--folder-key`). See [Folder Scope](#folder-scope) for the matrix. Required on folder-scoped writes (entity/record/file/choice-set create/update/delete) and recommended on folder-scoped reads. Lists default to **tenant-only** — pass `--folder-key` or `--include-folders` to see folder rows.
57
+ 3. **Always resolve entity ID first.** Use `entities list` before any operation. Never assume an entity ID.
143
58
 
144
- **Mandatory scope-prompt flow.** If the user requests any `entities` / `records` / `files` / `choice-sets` / `choice-set-values` operation (create / update / delete / get / list / insert / upload / download / import / query) and has **not** specified the scope in this conversation, stop. Do not guess, do not default to personal workspace, do not default to tenant. Ask via `AskUserQuestion` with two dropdown questions:
59
+ 4. **Schema name rules.** Entity and choice-set names allow letters, digits, and underscores; field names allow letters and digits only. All are 3–100 characters and start with a letter. Reserved system field names are matched case-insensitively: `Id`, `CreatedBy`, `CreateTime`, `UpdatedBy`, `UpdateTime`, `RecordOwner`. C#/VB keywords are rejected case-insensitively; the CLI also rejects live-confirmed SQL-reserved words such as `Order` and `Group`, while ordinary names such as `Status` and `Key` are accepted. **Choice-set value `Name` uses a different validator** — see [`choice-sets.md` → Value Name validation](choice-sets.md#value-name-validation). Full rules: [`entity-schema.md` → Name Validation](entity-schema.md#name-validation).
145
60
 
146
- 1. **Scope** — options: `Tenant level (no --folder-key)` · `Folder-scoped`.
147
- 2. **If folder-scoped**, ask a second `AskUserQuestion` dropdown — options: `Provide folder GUID` · `List accessible folders`. Skip this sub-prompt if the prompt already supplies a folder GUID inline.
148
- - **`Provide folder GUID`** — accept the GUID via the user's free-text reply (or the `Other` text input on the same dropdown) and use it as `--folder-key`. Do **not** call `uip or folders list`.
149
- - **`List accessible folders`** — pre-fetch `uip or folders list --output json` first, then render the accessible folders as a single-select dropdown — label each option `<Name> — <Path>`, stash the `Key` as the option payload, and use that as `--folder-key` for every subsequent call this turn. If more than 4 folders return, narrow first — ask whether the user wants Personal / Shared / Solution / Standard folders, or accept a free-text name filter, then re-prompt with the filtered list. Never render the raw folder list as plain markdown — always a selectable dropdown.
61
+ 5. **`records update` requires `"Id"` in every element** (single or batch). Body shape is validated before the row is resolved, so a body missing `"Id"` fails with `Record must include 'Id'` even offline. See [`records-query.md` → Update Records](records-query.md#update-records).
150
62
 
151
- Cache the folder list within the turn to avoid refetching. Echo the chosen scope back in the next message before any irreversible call. Scope persists across follow-up turns unless the user switches. Tenant prompting is rarely needed — `uip login status` shows the active tenant; only call `uip login tenant set <tenant>` after the user explicitly asks for a different one.
63
+ 5b. **`isUnique` is immutable after field creation.** `updateFields` returns `Result: Success` but silently no-ops the value. To change it: `removeFields` → `addFields` with `isUnique: true` (**drops every existing value in the column**). Verify every `updateFields` call by re-reading `entities get` and comparing. Full surface: [`entity-schema.md` → Not Supported](entity-schema.md#not-supported) + [Verify-after-update](entity-schema.md#verify-after-update--never-trust-the-success-response-alone).
152
64
 
153
- **Bypass clauses — skip the AskUserQuestion flow when ANY of these hold.** The agent must still announce the chosen scope (one line) in the response so the user can correct.
154
- - The prompt explicitly says some variant of *"do not ask"*, *"do not pause"*, *"no approval / confirmation / feedback needed"*, or *"proceed without confirmation"* — proceed at **tenant level** unless folder context is mentioned inline. **This bypass covers scope only.** Destructive-op confirmations (entity / field / record / file / choice-set / choice-set-value delete, schema-altering create / update, field-delete cascade-ask) still fire — see Rule 0.
155
- - The prompt names a folder inline (*"in the Shared folder"*, *"in folder X"*, *"--folder-key <guid>"*, *"in personal workspace"*) — proceed with that folder; do **not** ask which folder.
156
- - The prompt explicitly states tenant scope (*"tenant level"*, *"do NOT pass any folder flag"*, *"no folder"*, *"at the root"*) — proceed at tenant level.
157
- - The prompt provides a folder GUID, a `folder_a_id`/`folder_b_id` variable, or instructions to derive folder IDs from another command — proceed using the derived folder; if none is available, fall through to tenant.
158
- - The request is a pure tenant-wide discovery read (`entities list` / `choice-sets list` with no specific entity ID in mind) — default to `--include-folders` and announce. Asking adds no value for a survey.
65
+ 6. **Never put a FILE-typed key in `records insert` / `records update` / `records import` payloads.** Silently stripped — paths, base64, UUIDs, `null` all dropped; CLI returns `Result: Success`. Required path: insert the row without the FILE column, then `files upload <entity-id> <record-id> <field-name> --file <path>` (also used for replace); `files delete` to clear; `files download` to retrieve. Full surface: [`file-attachments.md`](file-attachments.md).
159
66
 
160
- When a bypass triggers, write one sentence at the top of the response stating which scope you picked and why (*"Proceeding at tenant level — prompt said 'do not pause'."* / *"Using folder Shared (key c4359cde-…) — prompt referenced it."*). The user can redirect in the next turn.
67
+ 7. **CSV headers must match `Fields[].DisplayName`** (case-sensitive), not internal `Name`. Discover via `entities get`. See [`bulk-import.md`](bulk-import.md).
161
68
 
162
- 20. **`records import` does not support complex field types — surface this to the user before invoking.** `records import` accepts Basic types only — `CHOICE_SET_SINGLE`, `CHOICE_SET_MULTIPLE`, `RELATIONSHIP`, `FILE`, and `AUTO_NUMBER` are **not supported**. The CSV header is accepted but the column values are ignored (no error, no `ErrorFileLink` entry — `null` in every row, or row failure if the field is `isRequired` without a `defaultValue`). Sequence: (1) run `entities get <entity-id>` and list every field whose type is in the unsupported set above; (2) tell the user verbatim which columns are not supported by import and why; (3) offer the alternative — `records insert --file <json>` with a JSON-array body handles all types except `FILE` (use `files upload` for those — Rule 6). See [`records-query.md` → Writing choice-set and relationship values](records-query.md#writing-choice-set-and-relationship-values) for the value form; (4) only invoke `records import` after the user confirms they accept the unsupported columns being skipped OR want to switch to `records insert`. This is platform behavior, not a bug — do not attempt to work around it.
69
+ 8. **Never create duplicate entities.** Always `entities list` first; reuse if it already exists. Entity and choice-set `displayName` values must also be unique. If the user does not provide one, derive a collision-resistant display name from the requested `Name`, not a generic label. On `409` / `RetryWillNotFix`, do not repeat the same create or treat an environment ID from the error as a resource ID; surface the conflict and ask for a different name or display name.
163
70
 
164
- 21. **`MULTILINE_MAX` fields — marker reads, no filter/sort.** `records list` / `records query` return a size marker starting `HasValue=true Length=N` (live form: `"HasValue=true Length=20000 — call Get Entity Record By Id activity to retrieve content"`) for `MULTILINE_MAX` fields, never the content — full value only via `records get <entity-id> <record-id>`. Never display or persist the marker as data; never echo it back through `records update` — the server accepts it as a normal value and silently destroys the real content; omit the key instead. The type takes no filter or sort — 400: *"Field '<name>' is of type MULTILINE_MAX and cannot be used in filters."* / *"Sort field '<name>' … cannot be used for sorting."*; surface verbatim (Rule 18). Capacity: `lengthLimit` is a UTF-16 **byte** budget (max 131072 ≈ 65,536 chars). A 400 on `entities create` / `addFields` naming this type: surface it verbatim, don't retry or silently substitute `MULTILINE_TEXT` (Rule 18). Full contract: [`entity-schema.md` → MULTILINE_MAX fields](entity-schema.md#multiline_max-fields) + [`records-query.md`](records-query.md#multiline_max-fields--marker-vs-full-content).
71
+ 9. **Only work with native entities.** Use `entities list --native-only` before any write. Federated entities are read-only.
165
72
 
166
- ---
73
+ 10. **Entity delete — dependent discovery.** Gating lives in the Destructive Operations block. Scan for inbound references (`entities list --output json` → `Fields[].ReferenceEntity.Id == <id>`) and choice sets used by the entity's fields (`Fields[].ChoiceSetId`). Ask per dependent: delete, leave, or stop. Full sequence: [`entity-schema.md` → Deleting an Entity](entity-schema.md#deleting-an-entity).
167
74
 
168
- ## Tool Version Requirements
75
+ 11. **Field delete — `removeFields` uses `{"fieldName":"…"}`** (NOT `id` like `updateFields`). For `CHOICE_SET_*` / `RELATIONSHIP` fields, raise a cascade-ask dropdown before invoking (`Delete only the field` / `Also delete the referenced choice set / target entity` / `Stop`) and echo other bindings so the user sees blast radius. `FILE` field delete drops only the column — never offer to delete the platform-managed storage entity. Full sequence: [`entity-schema.md` → Deleting a Field](entity-schema.md#deleting-a-field).
169
76
 
170
- | Feature | Required `@uipath/data-fabric-tool` |
171
- |---------|--------------------------------------|
172
- | `entities` / `records` CRUD, `query` with filters/sort, `records import`, `files` | `0.9.0+` |
173
- | Server-side `aggregates` and `groupBy` on `records query` | `1.0.1+` |
174
- | `--folder-key` threaded through every entity/record/file/choice-set command + `--include-folders` on `entities list` / `choice-sets list` | `1.197.0+` (now on `latest`) |
175
- | `MULTILINE_MAX` field type (schema create + full-content `records get`) | `1.198.0+` (first version bundling SDK `1.5.2`). Not yet on `latest` (still `1.197.0`, whose bundle predates the type) — until promoted, install the preview: `uip tools install @uipath/data-fabric-tool@1.198.0-preview.80` |
77
+ 12. **Complex fields need extra config and lookups.** `CHOICE_SET_*` needs `choiceSetId`; `RELATIONSHIP` needs `referenceEntityId` + `referenceFieldId`; `FILE` needs neither (server auto-wires). When the user describes a link ("each order has a Customer"), the type is `RELATIONSHIP` — never substitute `STRING` or `UUID`. Target entity must exist first. Full shape: [`entity-schema.md` → Supported Field Types](entity-schema.md#supported-field-types).
176
78
 
177
- Upgrade with `uip tools install @uipath/data-fabric-tool@latest` when a feature appears to silently no-op (e.g. aggregate body keys returning raw record lists).
79
+ 12b. **UI-broken types — never emit as a field type.** `INTEGER`, `BIG_INTEGER`, `FLOAT`, `DOUBLE`, `UUID`, `DATETIME` are accepted by the API but render broken in the Data Fabric UI. Substitute per [`entity-schema.md` → UI-broken types](entity-schema.md#ui-broken-types--do-not-use). Rule 14 preview must not name any of the six anywhere in the proposal.
178
80
 
179
- ---
81
+ 13. **Pick-or-create flow — applies to entities, choice sets, and relationship targets.** When the user names a target without disambiguating, or doesn't name one at all, do NOT auto-create and do NOT silently grab the first match. Run the appropriate list command, present matches via dropdown, ask *pick from these or create new?*. Create only with explicit approval.
82
+ - **Primary entity**: `entities list --native-only` (+ `--folder-key` or `--include-folders` per scope) → dropdown → user picks or confirms create-new.
83
+ - **Choice set** (CHOICE_SET_* field, choice-set-value writes): `choice-sets list` → dropdown.
84
+ - **Relationship target** (RELATIONSHIP): `entities list --native-only` → dropdown. Never fall back to `STRING`/`UUID`. `FILE` does not use this flow — the server auto-wires its storage entity (Rules 6/12).
180
85
 
181
- ## Quick Start
86
+ **Bounded discovery.** For each unresolved choice, make one focused discovery pass before asking or skipping; do not repeatedly re-list the same unchanged resources or search the filesystem for documentation. Never inspect installed CLI package source or create temporary probe entities to infer supported schema or command syntax; use this reference and `--help`. Pagination needed to complete that pass and post-mutation reads used to verify changed state are allowed. For an **optional** resource where the request says to use one if available and otherwise skip, inspect once; if no clear match exists, skip it and continue without creating probes. Do not run extra mutation experiments beyond the scenarios the user requested.
182
87
 
183
- ```bash
184
- # List entities (use --native-only before any write)
185
- uip df entities list --native-only --output json
88
+ 14. **Schema preview — compose, render, wait.** Before every `entities create` / `entities update` with `addFields`/`updateFields`/`removeFields` / `choice-sets create` / `choice-set-values create`: (1) compose the full proposal — entity name, `displayName`, `description`, every field with UPPERCASE `type` and all extras (`isRequired`, `isUnique`, `lengthLimit`, `maxValue`/`minValue`, `decimalPrecision`, `defaultValue`, `choiceSetId`, `referenceEntityId`/`referenceFieldId`); (2) render as a table or formatted JSON block, NOT a raw CLI command; (3) apply revisions exactly — never silently add, drop, rename, or retype what the user didn't approve.
186
89
 
187
- # Get entity schema (field names and types)
188
- uip df entities get <entity-id> --output json
90
+ **`referenceFieldId` on `RELATIONSHIP` is a user-facing display choice.** List target's display candidates via `entities get <target-id>` and raise a dropdown; never silently default to `Id`. Fires only for `RELATIONSHIP` (FILE has no such choice).
189
91
 
190
- # List records (first page)
191
- uip df records list <entity-id> --limit 50 --output json
92
+ **CSV / sample-data inference — confirm every inferred type.** Run Rule 13 probes first so complex-field alternatives are grounded. For every column, label the chosen type **inferred** and name plausible alternatives; parseable timestamps, decimals, `0`/`1`, and UUID-shaped text are not self-confirming. Dropdown-confirm before `entities create`. Rule 12b applies to the whole proposal. Silence on a CSV import ≠ approval.
192
93
 
193
- # Insert one record
194
- uip df records insert <entity-id> --body '{"Name":"Alice","Score":95}' --output json
94
+ 15. **Choice / relationship record values use lookup tokens, not labels.** Choice value → integer `NumberId` (single) or array of `NumberId`s (multi), from `choice-sets list-values`. Relationship value → target record's UUID `Id`. Filter / `groupBy` use the same tokens; `CHOICE_SET_MULTIPLE` filtering has special operator semantics — see [`records-query.md` → Filtering on Choice-Set Fields](records-query.md#filtering-on-choice-set-fields).
195
95
 
196
- # Query with a filter
197
- uip df records query <entity-id> \
198
- --body '{"filterGroup":{"logicalOperator":0,"queryFilters":[{"fieldName":"Status","operator":"=","value":"active"}]}}' \
199
- --output json
96
+ 16. **Answer with `records query`, not from memory.** Counts, sums, filters, lookups — issue a fresh `records query` and use the server's response. Do not reuse cached values from previous turns or tool results. Exception: the `Id` returned by the same `records insert` you just made.
200
97
 
201
- # Aggregate query — count of records per Status (server-side groupBy)
202
- uip df records query <entity-id> \
203
- --body '{"selectedFields":["Status"],"groupBy":["Status"],"aggregates":[{"function":"COUNT","field":"Id","alias":"total"}]}' \
204
- --output json
205
- ```
98
+ 17. **`records query` filters.** Body shape + per-type support + unsupported-operator handling: [`filter-platform-contract.md`](filter-platform-contract.md). Operator whitelist: `=` `!=` `>` `<` `>=` `<=` `contains` `not contains` `startswith` `endswith` `in` `not in`; `equals` / `==` / `like` are rejected. `value` is a JSON string except `null` for empty checks. **Aggregate aliases return PascalCased in the response** — `alias: "total"` comes back as key `"Total"` on each row. **Return all fields by default** — omit `selectedFields` unless a subset is requested.
206
99
 
207
- For Complex types field shapes and value formats, see [`entity-schema.md`](entity-schema.md#supported-field-types) and [`records-query.md`](records-query.md#filtering-on-choice-set-fields).
100
+ 18. **Never hide or silently substitute after an error.** Surface the upstream message verbatim and state what failed. If a read-only request has one unambiguous correction (for example, the server names the required body property), apply it and report the correction; otherwise ask. Always ask before an alternative mutation; for an intentional negative probe, run only the requested variant and stop after capturing its result. Independent requested operations may continue when they do not depend on the failed result; run multi-probe error checks as separate shell calls so every response is retained. Detailed error shapes live in the relevant topic reference.
208
101
 
209
- ### `records query` body schema — exact keys (agents commonly mis-guess)
102
+ 19. **Resolve folder scope up front; pass `--folder-key` on folder-scoped targets.** Every `uip df` command that touches a row accepts `--folder-key <GUID>`; `entities list` and `choice-sets list` also accept `--include-folders` (mutually exclusive). See [Folder Scope](#folder-scope) for the matrix. Required on folder-scoped writes; recommended on folder-scoped reads. Lists default to **tenant-only**.
210
103
 
211
- The CLI accepts a strict schema. These are the four most-missed keys:
104
+ **Mandatory scope-prompt flow.** If scope isn't pinned in the conversation, stop and ask via `AskUserQuestion`: (1) `Tenant level (no --folder-key)` vs `Folder-scoped`; (2) if folder-scoped and no GUID inline, offer `Provide folder GUID` (user-typed) or `List accessible folders` (pre-fetch `uip or folders list --output json`, dropdown labelled `<Name> — <Path>`, narrow first if >4). Resolve this before Rule 13's scope-specific pick-or-create discovery. Cache the folder list within the turn; echo the chosen scope back in the next message. Scope persists across follow-up turns unless the user switches.
212
105
 
213
- | Position | Correct | Common wrong guess |
214
- |---|---|---|
215
- | Entity ID | positional: `uip df records query <entity-id>` | `--entity-id <id>` (no such flag) |
216
- | Wrap object | `filterGroup` | `filter`, `where`, `query` |
217
- | Boolean operator | `logicalOperator: 0` (AND) or `1` (OR) — **integer** | `"AND"` / `"OR"` (string) |
218
- | Filter list | `queryFilters: [...]` | `filters`, `conditions` |
219
- | Per-filter field key | `fieldName: "..."` | `field`, `name`, `column` |
106
+ **Bypass clauses — skip the AskUserQuestion when ANY of these hold** (still announce the chosen scope in one line):
107
+ - Prompt says *"do not ask"* / *"no confirmation needed"* / *"proceed without confirmation"* — proceed at **tenant level** unless folder context is mentioned inline. Scope only; destructive-op gates still fire (Rule 0).
108
+ - Prompt names a folder inline or supplies a folder GUID / `folder_a_id`-style variable — proceed with that folder.
109
+ - Prompt explicitly states tenant scope (*"tenant level"*, *"no folder"*, *"at the root"*).
110
+ - Pure tenant-wide discovery read — default to `--include-folders` and announce.
220
111
 
221
- `CHOICE_SET_MULTIPLE` value forms:
222
- - `contains` / `not contains` → bare-NumberId **string** (`"1"`, not `"[1]"`)
223
- - `=` / `!=` → JSON-array **string** (`"[1,3]"`, not bare `"1"`)
112
+ 20. **`records import` supports Basic types only.** `CHOICE_SET_*`, `RELATIONSHIP`, `FILE`, `AUTO_NUMBER` columns are ignored on import — optional columns land as `null`; **`isRequired` columns without a `defaultValue` fail the whole row** (`ErrorFileLink` entry per row). Sequence: (1) `entities get` → list unsupported columns; (2) tell the user which columns will be skipped, and which rows will fail because a required unsupported column has no default; (3) offer `records insert --file <json>` (+ `files upload` for FILE) as the alternative; (4) invoke only after explicit confirmation. See [`bulk-import.md` → Complex Field Types Not Supported](bulk-import.md#complex-field-types-not-supported).
224
113
 
225
- Full per-type operator support matrix: [`filter-platform-contract.md`](filter-platform-contract.md).
114
+ 21. **`MULTILINE_MAX` — marker reads, no filter/sort.** `records list` / `records query` return a size marker (`HasValue=true Length=N`) — full value only via `records get`. Never echo the marker back through `records update` — the server accepts it as a normal value and destroys the real content; omit the key instead. No filter/sort support (400). `lengthLimit` is a UTF-16 byte budget (max 131072 ≈ 65,536 chars). Full contract: [`entity-schema.md` → MULTILINE_MAX](entity-schema.md#multiline_max-fields) + [`records-query.md` → MULTILINE_MAX](records-query.md#multiline_max-fields--marker-vs-full-content).
226
115
 
227
116
  ---
228
117
 
@@ -230,129 +119,49 @@ Full per-type operator support matrix: [`filter-platform-contract.md`](filter-pl
230
119
 
231
120
  Entities and choice sets are either tenant-level or folder-scoped. Records and files inherit the parent entity's scope.
232
121
 
233
- **Flags (CLI ≥ `1.197.0`):**
122
+ **Flags:**
234
123
 
235
- - `--folder-key <GUID>` — scope the call to that folder. Pass the Orchestrator folder key (`uip or folder list --output json` → `Key`), NOT the folder display name.
236
- - `--include-folders` — on `entities list` / `choice-sets list` only. Returns tenant + every folder the caller can see, in one response. **Mutually exclusive with `--folder-key`** — passing both errors out.
124
+ - `--folder-key <GUID>` — scope the call to that folder. Pass the Orchestrator folder `Key` from `uip or folders list --output json`.
125
+ - `--include-folders` — on `entities list` / `choice-sets list` only. Returns tenant + every visible folder. **Mutually exclusive with `--folder-key`**.
237
126
 
238
127
  **Per-command behavior:**
239
128
 
240
129
  | Command(s) | `--folder-key` effect |
241
130
  |---|---|
242
- | `entities list`, `choice-sets list` | Filter mode: omit both flags → tenant only (default); `--folder-key <key>` → that folder only; `--include-folders` → tenant + all visible folders. Each returned row carries `folderId` / `FolderId` — keep it for follow-up calls. |
243
- | `entities create`, `choice-sets create` | **Scope-bound** — required for folder placement. Omit to create at tenant level. The created row's `folderId` matches. |
244
- | `entities get / update / delete`, `records *`, `files *`, `choice-sets list-values / update / delete`, `choice-set-values create / update / delete` | Forwarded as `X-UIPATH-FolderKey`. Required on folder-scoped targets; tenant-scoped targets accept any key (server resolves by UUID). Pass it defensively on every destructive op. |
131
+ | `entities list`, `choice-sets list` | Filter mode. Omit both → tenant only. `--folder-key <key>` → that folder only. `--include-folders` → tenant + all visible folders. |
132
+ | `entities create`, `choice-sets create` | **Scope-bound** — required for folder placement. Omit → tenant. |
133
+ | `entities get / update / delete`, `records *`, `files *`, `choice-sets list-values / update / delete`, `choice-set-values *` | Required on folder-scoped targets. |
245
134
 
246
- **Cross-folder references on RELATIONSHIP / FILE / CHOICE_SET_\* fields:** allowed only between same-scope-class targets. **For `RELATIONSHIP` and `FILE` fields, whenever the target is folder-scoped, the field MUST include `referenceFolderKey: <target-folder-guid>` — even when the target lives in the same folder as the parent.** Omitting it on a same-folder binding fails with the misleading *"Cannot create relationship field from folder-level entity to tenant-level entity ('')"* (the server treats missing `referenceFolderKey` as "target is tenant" and trips the cross-scope block). **For `CHOICE_SET_*` fields**, do NOT pass `referenceFolderKey` — the backend resolves the choice-set's folder server-side from `choiceSetId` alone. Tenant ↔ tenant works without `referenceFolderKey`. **Crossing tenant ↔ folder is NOT allowed** for any of the three field types — a folder-scoped entity cannot bind a tenant-level user-authored choice set or relationship target, and vice versa. **Exception: tenant-level system entities** (e.g. `EntityAttachment` for FILE; `User`, which every entity's `CreatedBy` / `UpdatedBy` already reference) are platform-managed and remain bindable from folder-scoped parents. Full matrix in [`entity-schema.md` → Cross-folder references](entity-schema.md#cross-folder-references).
247
-
248
- If a verb returns `unknown option '--folder-key'`, the installed tool is older than `1.197.0` — see *Tool Version Requirements* above.
135
+ **Cross-folder references** on `RELATIONSHIP` / `CHOICE_SET_*` fields are restricted to the same scope class. `RELATIONSHIP` requires `referenceFolderKey` when its target is folder-scoped, including same-folder bindings; choice sets resolve scope from `choiceSetId`. `FILE` is auto-wired and takes no reference fields. Full matrix: [`entity-schema.md` → Cross-folder references](entity-schema.md#cross-folder-references).
249
136
 
250
137
  ---
251
138
 
252
139
  ## Task Navigation
253
140
 
254
- | Task | Commands to use |
255
- |------|----------------|
256
- | Explore what entities exist (tenant) | `entities list` → `entities get <id>` |
257
- | Explore entities in a specific folder | `entities list --folder-key <folder-guid>` |
258
- | Explore tenant + every folder's entities in one shot | `entities list --include-folders` |
259
- | Explore only native entities | `entities list --native-only` |
260
- | Manage choice sets | `choice-sets list [--folder-key <…> \| --include-folders]` / `list-values <id> [--folder-key <…>]` / `create [--folder-key <…>]` / `update [--folder-key <…>]` / `delete [--folder-key <…>]`; values via `choice-set-values create` / `update` / `delete` (all accept `--folder-key`) — full surface in [`choice-sets.md`](choice-sets.md) |
261
- | Create a new entity | `entities create <name> [--folder-key <folder-guid>] --body '{"fields":[{"fieldName":"Title","type":"STRING"}]}'` — omit `--folder-key` for tenant scope. Complex-field extras (`choiceSetId`, `referenceEntityId`, `referenceFieldId`, `referenceFolderKey`) and the tenant↔folder rule are in [`entity-schema.md`](entity-schema.md#supported-field-types). |
262
- | Update entity / add fields | `entities update <id> --body '{"addFields":[{"fieldName":"NewField","type":"STRING"}]}'` |
263
- | Update existing field metadata | `entities update <id> --body '{"updateFields":[{"id":"<field-uuid>","displayName":"New Label","isRequired":true}]}'` — body uses `id` (lowercase); the response key is `Id` (different case, same value) |
264
- | Update entity metadata | `entities update <id> --body '{"displayName":"New Name","description":"desc"}'` |
265
- | Delete an entity | `entities delete <id> [--folder-key <…>]` — see Destructive Operations block + Rule 10 |
266
- | Delete a field | `entities update <id> --body '{"removeFields":[{"fieldName":"<name>"}]}'` — `removeFields` uses `fieldName`, NOT `id` (Rule 11) |
267
- | Read records (first page) | `records list <entity-id> --limit 50` |
268
- | Read records (next page) | `records list <entity-id> --cursor <NextCursor.Value>` — extract the inner `Value` from the previous response's `Data.NextCursor` object; passing the whole object errors |
269
- | Get one record | `records get <entity-id> <record-id>` |
270
- | Insert one record | `records insert <entity-id> --body '{...}'` (or `--file`). Choice / relationship value formats: see [`records-query.md`](records-query.md#writing-choice-set-and-relationship-values) |
271
- | Batch insert | `records insert <entity-id> --body '[{...},{...}]'` |
272
- | Update one record | `records update <entity-id> --body '{"Id":"<record-id>","field":"val"}'` |
273
- | Batch update | `records update <entity-id> --body '[{"Id":"<id1>","field":"val"},{"Id":"<id2>","field":"val"}]'` |
274
- | Delete records | `records delete <entity-id> <id1> <id2> [--folder-key <…>]` — IDs are positional varargs (separate args, NOT space-joined). See Destructive Operations block |
275
- | Filter/search records | `records query <entity-id> --body '{...}'`. Choice / relationship filter operators: see [`records-query.md`](records-query.md#filtering-on-choice-set-fields) |
276
- | Aggregate / group-by metrics | `records query <entity-id> --body '{"aggregates":[{"function":"COUNT","field":"Id","alias":"total"}],"groupBy":["FieldName"]}'` |
277
- | Bulk import from CSV (Basic field types only — `CHOICE_SET_*`, `RELATIONSHIP`, `FILE`, and `AUTO_NUMBER` are **not supported** by `records import`; **surface this to the user before invoking — Rule 20**) | `records import <entity-id> --file data.csv [--folder-key <…>]` |
278
- | Bulk seed records that include complex fields | `records insert <entity-id> --file records.json` with a JSON array body |
279
- | Upload file to record | `files upload <entity-id> <record-id> <field-name> --file path` |
280
- | Download file | `files download <entity-id> <record-id> <field-name> --destination path` |
281
- | Delete file | `files delete <entity-id> <record-id> <field-name> [--folder-key <…>]` — see Destructive Operations block |
282
-
283
- ---
284
-
285
- ## Field Types
286
-
287
- Pass the exact UPPERCASE `EntityFieldDataType`. UI-compatible set + substitutions for user-named UI-broken types + advanced constraints (`lengthLimit`, `maxValue`/`minValue`, `decimalPrecision`) all live in [`entity-schema.md` → Supported Field Types](entity-schema.md#supported-field-types). Rules 12 and 12b enforce the choice.
288
-
289
- ---
290
-
291
- ## Workflow: Discover → Act → Verify
292
-
293
- 1. **Discover** — list entities, get schema, check existing records
294
- 2. **Act** — create/insert/update
295
- 3. **Verify** — re-read to confirm the operation succeeded
296
-
297
- ```bash
298
- uip df entities list --native-only --output json
299
- uip df entities get <entity-id> --output json
300
- uip df records insert <entity-id> --body '{"Name":"Alice","Score":95}' --output json
301
- uip df records list <entity-id> --limit 50 --output json
302
- # Records live in Data.Items (NOT Data.Records). Stop when Data.HasNextPage is false.
303
- # NextCursor is an object — unwrap Data.NextCursor.Value and pass that to --cursor.
304
- uip df records list <entity-id> --cursor <NextCursor.Value> --output json
305
- ```
306
-
307
- ---
308
-
309
- ## Query Request Format
310
-
311
- Pass the query body via `--body` or `--file`; pagination uses `--limit` / `--cursor` / `--offset` CLI flags, never body keys (see [Pagination](#pagination) below). The body shape, operators, per-type support, and response shape live in [`filter-platform-contract.md`](filter-platform-contract.md); query-only extras (`selectedFields`, `sortOptions`) are documented in [`records-query.md`](records-query.md).
312
-
313
- ## Pagination
314
-
315
- `records list` / `records query` paginate via `--limit`, `--cursor`, `--offset`. See [`records-query.md`](records-query.md).
141
+ | Task | Where |
142
+ |------|-------|
143
+ | Explore entities | `entities list` (`--folder-key`, `--include-folders`, or `--native-only` as needed) → `entities get <id>` |
144
+ | Choice sets — full CRUD (sets and values) | [`choice-sets.md`](choice-sets.md) |
145
+ | Create / update / delete entity, add/remove/update fields | [`entity-schema.md`](entity-schema.md) |
146
+ | Read / filter / paginate / sort records | [`records-query.md`](records-query.md) + [`filter-platform-contract.md`](filter-platform-contract.md) |
147
+ | Insert / update / delete records | [`records-query.md`](records-query.md) |
148
+ | Aggregates / group-by | [`records-query.md` → Aggregates](records-query.md#aggregates-server-side) |
149
+ | Bulk CSV import | [`bulk-import.md`](bulk-import.md) |
150
+ | File attachments (upload / download / delete) | [`file-attachments.md`](file-attachments.md) |
316
151
 
317
152
  ---
318
153
 
319
- ## Troubleshooting
154
+ ## Troubleshooting (cross-cutting only)
320
155
 
321
- > **Any error not in this table → Rule 18.** (Surface verbatim, propose options keyed to the error, apply only what the user confirms.)
156
+ For topic-specific errors, use the relevant reference. Cross-cutting failures:
322
157
 
323
158
  | Error | Cause | Fix |
324
159
  |-------|-------|-----|
325
- | `unknown command: df` | Tool not installed | `uip tools install @uipath/data-fabric-tool` |
326
- | `Not logged in` | Auth expired | `uip login` |
327
- | `HTTP 401` | Invalid token | Re-login; ensure `DataServiceApiUserAccess` scope is present |
160
+ | `unknown command: df` | Tool not installed | `uip tools install @uipath/data-fabric-tool@latest` |
161
+ | `Not logged in` / `HTTP 401` | Auth expired or invalid token | `uip login`; ensure `DataServiceApiUserAccess` scope is present |
328
162
  | `HTTP 403` | Permission denied | Ensure account has Data Fabric permissions |
329
- | `Entity not found` | Wrong entity ID | Run `entities list` to get correct ID |
330
- | `Record must include 'Id'` | Update body missing Id | Every record passed to `records update` must include `"Id": "<record-id>"` — both single and batch |
331
- | `Each field must include a 'fieldName' string` | Invalid field in `entities create` | Use `{"fieldName":"myfield"}` not `{"name":"myfield"}` |
332
- | `Entity name resolution failed` | Query/import with bad ID | Verify entity exists with `entities list` |
333
- | Import errors in CSV | Header mismatch | Run `entities get` and check exact field names (case-sensitive) |
334
- | `records import` succeeded but choice / relationship / file / auto-number column is `null` on every row | Complex field types are **not supported** by `records import` (Basic types only) — current Data Fabric platform behavior | Re-seed those columns via `records insert` with a JSON body (FILE fields additionally require `files upload` — Rule 6). Surface the limitation **before** invoking import next time — see Rule 20 and [`bulk-import.md`](bulk-import.md) |
335
- | Write to federated entity | Entity is read-only | Use `--native-only`; federated entities cannot be written to |
336
- | `cannot be a reserved word in C# or VB` (alias: `RESERVED_LANGUAGE_KEYWORDS`) | Entity or field name collides with a C# / VB reserved keyword (e.g. `Case`, `Class`, `New`, `Return`, `Internal`). SQL keywords like `Status` / `Order` / `Key` are **not** rejected. | Surface the rejected name + the error to the user. Offer a domain-specific rename: `Case` → `WorkItem` / `Matter`; `Class` → `Category`; `New` → `IsNew`. Apply only the user-confirmed rename. See Rule 4. |
337
- | `Choiceset member name must only contain alphanumeric characters, start with alphabetic characters and not be C# keyword` | Choice-set value `Name` validator (separate code path from Rule 4 — case-SENSITIVE lowercase match, incomplete keyword list). Lowercase tokens like `class`, `new`, `case` are rejected; the same word capitalized (`New`) or words not on its list (`select`) can slip through. | Namespace the system `Name` with a lowercase suffix (`internal_audit`, `new_lead`) and keep `DisplayName` unchanged. Do not rely on title-case to bypass — the entity / field validator (case-insensitive) would still reject it elsewhere. Full rule + the related `NumberId`-ordering caveat: [`choice-sets.md` → Value `Name` validation](choice-sets.md#value-name-validation). |
338
- | Constraint violation (`"outside of allowed range"`, `"exceeds lengthLimit"`, etc.) | Write value broke `minValue` / `maxValue` / `lengthLimit` / `decimalPrecision` | Surface the full error to the user, show the allowed range from `entities get`, and ask what value to use — never silently clamp. See Rule 18. |
339
- | `referenceEntityId` missing on RELATIONSHIP/FILE field | Field defined with names instead of UUIDs | Pass `referenceEntityId` as a UUID; `RELATIONSHIP` also needs `referenceFieldId`. See Rule 12. |
340
- | `Cannot read properties of undefined (reading 'sqlTypeName')` | Field `type` value didn't match a known `EntityFieldDataType` enum — almost always lowercase / mixed-case (e.g. `"boolean"` instead of `"BOOLEAN"`) | Case-fold to the UPPERCASE enum from the type table — see [`entity-schema.md` → Normalizing user-facing type names](entity-schema.md#normalizing-user-facing-type-names) |
341
- | `Each field in removeFields must include a non-empty 'fieldName' string` | `removeFields` was called with `{"id": "..."}` (the shape `updateFields` uses) instead of `{"fieldName": "..."}` | Re-emit with `{"fieldName": "<exact field name>"}` — see Rule 11 |
342
- | `unknown option '--folder-key'` or `unknown option '--include-folders'` | Installed `@uipath/data-fabric-tool` predates `1.197.0` (folder-key fan-out) | Upgrade: `uip tools install @uipath/data-fabric-tool@alpha` until `1.197.0+` is promoted to `latest`. See *Tool Version Requirements* |
343
- | `--folder-key and --include-folders are mutually exclusive` | Both flags passed on `entities list` / `choice-sets list` | Pick one: `--folder-key <key>` for a single folder, OR `--include-folders` for tenant + every folder you can see |
344
- | Entity / choice set just created via `--folder-key <X>` doesn't appear in `entities list` / `choice-sets list` | Lists default to tenant-only | Re-run with `--folder-key <X>` (same key) or `--include-folders` |
345
- | `MULTILINE_MAX` field shows `HasValue=true Length=N — call Get Entity Record By Id …` in `records list` / `query` | Expected — list/query return a size marker, not content (Rule 21) | Full value via `records get <entity-id> <record-id>`. Never persist or write back the marker |
346
- | *"Field '<name>' is of type MULTILINE_MAX and cannot be used in filters."* / *"Sort field '<name>' … cannot be used for sorting."* (400) | Type supports no filter/sort operators (Rule 21) | Surface verbatim; offer `records get` + client-side evaluation only with user approval |
347
- | Insert rejected: *"value … is N bytes, exceeds the 131072-byte limit configured for this MULTILINE_MAX field"* | `lengthLimit` is a UTF-16 **byte** budget — 2 bytes per char, so 131072 ⇒ ~65,536 chars max | Surface the limit; ask the user whether to truncate or store elsewhere — never silently clamp (Rule 18) |
348
-
349
- ---
350
-
351
- ## References
163
+ | `unknown option '--folder-key'` / `unknown option '--include-folders'` | Installed tool is outdated | `uip tools install @uipath/data-fabric-tool@latest`; if still missing, surface as unsupported |
164
+ | `--folder-key and --include-folders are mutually exclusive` | Both flags passed on `entities list` / `choice-sets list` | Pick one |
165
+ | Entity / choice set created via `--folder-key <X>` doesn't appear in list | Lists default to tenant-only | Re-run with `--folder-key <X>` or `--include-folders` |
352
166
 
353
- - [`entity-schema.md`](entity-schema.md) — Field definitions, supported types, schema update patterns, choice-set + relationship field shapes
354
- - [`choice-sets.md`](choice-sets.md) — Full choice-set CRUD (`list`/`list-values`/`create`/`update`/`delete` plus `choice-set-values create`/`update`/`delete`), look up `NumberId`s, add CHOICE_SET fields to entities, write choice values on records
355
- - [`records-query.md`](records-query.md) — Query filter syntax, pagination, sorting, choice/relationship semantics on read & write
356
- - [`filter-platform-contract.md`](filter-platform-contract.md) — Filter body structure, per-type operator support matrix, and what to do when a request needs an unsupported operator
357
- - [`file-attachments.md`](file-attachments.md) — File field upload/download/delete file
358
- - [`bulk-import.md`](bulk-import.md) — CSV format requirements and the Basic-fields-only limitation (complex types — `CHOICE_SET_*`, `RELATIONSHIP`, `FILE`, `AUTO_NUMBER` — are **not supported** by `records import`; use `records insert` with a JSON body, plus `files upload` for FILE)
167
+ Any error not in this table → Rule 18. Topic-specific error tables live in the topic references.