@uipath/skills 1.201.0-preview.621 → 1.202.0-preview.635

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (415) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.cursor-plugin/plugin.json +1 -1
  4. package/CODEOWNERS +41 -29
  5. package/README.md +1 -0
  6. package/assets/skill-status.json +13 -2
  7. package/assets/uip-catalog-snapshot.json +95 -46
  8. package/package.json +2 -1
  9. package/skills/uipath-admin/SKILL.md +107 -197
  10. package/skills/uipath-admin/references/audit-commands.md +69 -120
  11. package/skills/uipath-admin/references/audit-workflow-guide.md +101 -152
  12. package/skills/uipath-admin/references/authorization/authorization-commands.md +121 -210
  13. package/skills/uipath-admin/references/authorization/check-access.md +39 -63
  14. package/skills/uipath-admin/references/authorization/grant-permissions.md +38 -49
  15. package/skills/uipath-admin/references/authorization/permission-catalog.md +32 -34
  16. package/skills/uipath-admin/references/authorization/role-assignment-management.md +96 -99
  17. package/skills/uipath-admin/references/authorization/role-management.md +113 -142
  18. package/skills/uipath-admin/references/diagnose/CAPABILITY.md +13 -14
  19. package/skills/uipath-admin/references/diagnose/{references/failure-modes.md → failure-modes.md} +90 -46
  20. package/skills/uipath-admin/references/diagnose/{references/troubleshooting-guide.md → troubleshooting-guide.md} +21 -14
  21. package/skills/uipath-admin/references/external-app-management.md +42 -39
  22. package/skills/uipath-admin/references/identity-commands.md +72 -625
  23. package/skills/uipath-admin/references/identity-troubleshoot-guide.md +73 -95
  24. package/skills/uipath-admin/references/ip-restriction/bypass-rule-management.md +25 -54
  25. package/skills/uipath-admin/references/ip-restriction/enforcement-management.md +19 -31
  26. package/skills/uipath-admin/references/ip-restriction/ip-range-management.md +48 -45
  27. package/skills/uipath-admin/references/ip-restriction/ip-restriction-commands.md +89 -146
  28. package/skills/uipath-admin/references/key-concepts.md +24 -0
  29. package/skills/uipath-admin/references/organization-management.md +49 -70
  30. package/skills/uipath-admin/references/organizations-commands.md +39 -74
  31. package/skills/uipath-admin/references/pat-management.md +25 -38
  32. package/skills/uipath-admin/references/robot-account-management.md +16 -14
  33. package/skills/uipath-admin/references/smtp-management.md +19 -14
  34. package/skills/uipath-admin/references/tenant-management.md +1 -1
  35. package/skills/uipath-admin/references/tenants-commands.md +82 -148
  36. package/skills/uipath-admin/references/user-management.md +70 -56
  37. package/skills/uipath-agents/SKILL.md +4 -3
  38. package/skills/uipath-agents/references/authentication.md +4 -3
  39. package/skills/uipath-agents/references/coded/capabilities/datafabric.md +465 -0
  40. package/skills/uipath-agents/references/coded/capabilities/guardrails/guardrails-recommend.md +5 -0
  41. package/skills/uipath-agents/references/coded/capabilities/guardrails/guardrails.md +2 -0
  42. package/skills/uipath-agents/references/coded/capabilities/human-in-the-loop.md +12 -6
  43. package/skills/uipath-agents/references/coded/flow-integration.md +2 -2
  44. package/skills/uipath-agents/references/coded/frameworks/langgraph-integration.md +48 -16
  45. package/skills/uipath-agents/references/coded/frameworks/openai-agents-integration.md +1 -1
  46. package/skills/uipath-agents/references/coded/lifecycle/deployment.md +11 -1
  47. package/skills/uipath-agents/references/coded/quickstart.md +11 -8
  48. package/skills/uipath-agents/references/lowcode/capabilities/inline-in-flow/inline-in-flow.md +3 -3
  49. package/skills/uipath-agents/references/lowcode/capabilities/memory/memory.md +19 -2
  50. package/skills/uipath-agents/references/lowcode/evaluations/evaluate.md +2 -2
  51. package/skills/uipath-agents/references/lowcode/evaluations/orchestrator-eval-run.md +409 -155
  52. package/skills/uipath-agents/references/lowcode/evaluations/running-evaluations.md +2 -2
  53. package/skills/uipath-agents/references/lowcode/prompting/autonomous-agent-prompting-guide.md +1 -1
  54. package/skills/uipath-aops/SKILL.md +313 -0
  55. package/skills/uipath-aops/assets/templates/pipeline-dto-template.json +15 -0
  56. package/skills/uipath-aops/references/discovery-flow.md +312 -0
  57. package/skills/uipath-aops/references/migration-guide.md +146 -0
  58. package/skills/uipath-aops/references/pipeline-dto-guide.md +276 -0
  59. package/skills/uipath-aops/references/save-and-run-guide.md +156 -0
  60. package/skills/uipath-api-workflow/SKILL.md +48 -6
  61. package/skills/uipath-api-workflow/assets/templates/file-base64-roundtrip-example.json +154 -0
  62. package/skills/uipath-api-workflow/assets/templates/nested-control-flow-example.json +0 -1
  63. package/skills/uipath-api-workflow/references/cli-reference.md +20 -1
  64. package/skills/uipath-api-workflow/references/expressions-and-context.md +19 -0
  65. package/skills/uipath-api-workflow/references/files-and-base64.md +153 -0
  66. package/skills/uipath-api-workflow/references/operating-published-workflows.md +3 -2
  67. package/skills/uipath-api-workflow/references/task-types.md +89 -3
  68. package/skills/uipath-api-workflow/references/testing-and-evals.md +224 -0
  69. package/skills/uipath-api-workflow/references/troubleshooting.md +124 -4
  70. package/skills/uipath-coded-apps/SKILL.md +4 -2
  71. package/skills/uipath-coded-apps/assets/scripts/dashboards/build-dashboard.mjs +1 -1
  72. package/skills/uipath-coded-apps/references/dashboards/CAPABILITY.md +11 -1
  73. package/skills/uipath-coded-apps/references/dashboards/plugins/build/impl.md +5 -3
  74. package/skills/uipath-coded-apps/references/dashboards/plugins/deploy/impl.md +1 -0
  75. package/skills/uipath-coded-apps/references/oauth-client-setup.md +2 -0
  76. package/skills/uipath-coded-apps/references/pack-publish-deploy.md +18 -0
  77. package/skills/uipath-coded-apps/references/sdk/orchestrator.md +4 -0
  78. package/skills/uipath-connector-builder/SKILL.md +7 -5
  79. package/skills/uipath-connector-builder/references/debugging.md +5 -1
  80. package/skills/uipath-connector-builder/references/element-json.md +3 -1
  81. package/skills/uipath-connector-builder/references/standard-resources.md +37 -6
  82. package/skills/uipath-functions/SKILL.md +134 -222
  83. package/skills/uipath-functions/references/js/authoring-guide.md +141 -0
  84. package/skills/uipath-functions/references/js/bindings-guide.md +120 -0
  85. package/skills/uipath-functions/references/js/calling-uipath-apis-guide.md +112 -0
  86. package/skills/uipath-functions/references/js/coded-app-wiring-guide.md +103 -0
  87. package/skills/uipath-functions/references/js/deployment-guide.md +109 -0
  88. package/skills/uipath-functions/references/js/http-semantics-guide.md +80 -0
  89. package/skills/uipath-functions/references/js/job-mode-guide.md +114 -0
  90. package/skills/uipath-functions/references/js/local-dev-guide.md +107 -0
  91. package/skills/uipath-functions/references/python/workflow-guide.md +224 -0
  92. package/skills/uipath-governance/SKILL.md +9 -8
  93. package/skills/uipath-governance/references/compliance-pack/catalog/impl.md +36 -8
  94. package/skills/uipath-governance/references/compliance-pack/coverage/impl.md +14 -12
  95. package/skills/uipath-governance/references/compliance-pack/disable/impl.md +5 -3
  96. package/skills/uipath-governance/references/compliance-pack/full-apply/impl.md +7 -5
  97. package/skills/uipath-governance/references/compliance-pack/partial-apply/impl.md +14 -7
  98. package/skills/uipath-governance/references/compliance-pack/partial-apply/planning.md +3 -1
  99. package/skills/uipath-governance/references/compliance-pack/preview-gate.md +1 -1
  100. package/skills/uipath-governance/references/compliance-pack/query/impl.md +4 -2
  101. package/skills/uipath-governance/references/diagnose/CAPABILITY.md +12 -12
  102. package/skills/uipath-governance/references/diagnose/{references/failure-modes.md → failure-modes.md} +5 -5
  103. package/skills/uipath-governance/references/diagnose/{references/troubleshooting-guide.md → troubleshooting-guide.md} +2 -2
  104. package/skills/uipath-governance/references/disambiguation-guide.md +15 -7
  105. package/skills/uipath-human-in-the-loop/SKILL.md +107 -9
  106. package/skills/uipath-human-in-the-loop/references/hitl-casetask-action.md +413 -0
  107. package/skills/uipath-insights/SKILL.md +21 -14
  108. package/skills/uipath-insights/references/alerts-reads-guide.md +242 -0
  109. package/skills/uipath-insights/references/filter-discovery-guide.md +1 -1
  110. package/skills/uipath-insights/references/jobs-commands-guide.md +2 -2
  111. package/skills/uipath-ixp/references/cli-reference.md +1 -1
  112. package/skills/uipath-ixp/references/improve-prompts-guide.md +5 -6
  113. package/skills/uipath-maestro-bpmn/SKILL.md +87 -15
  114. package/skills/uipath-maestro-bpmn/references/diagnose/CAPABILITY.md +10 -10
  115. package/skills/uipath-maestro-bpmn/references/diagnose/{references/troubleshooting-guide.md → troubleshooting-guide.md} +1 -1
  116. package/skills/uipath-maestro-bpmn/references/expression-authoring.md +12 -2
  117. package/skills/uipath-maestro-bpmn/references/operate/CAPABILITY.md +12 -12
  118. package/skills/uipath-maestro-bpmn/references/operate/{references/run.md → run.md} +2 -2
  119. package/skills/uipath-maestro-bpmn/references/operate/{references/ship.md → ship.md} +3 -3
  120. package/skills/uipath-maestro-bpmn/references/patterns/ai-decision-review-guide.md +138 -0
  121. package/skills/uipath-maestro-bpmn/references/patterns/approval-chain-guide.md +136 -0
  122. package/skills/uipath-maestro-bpmn/references/patterns/composing-guide.md +113 -0
  123. package/skills/uipath-maestro-bpmn/references/patterns/external-wait-guide.md +145 -0
  124. package/skills/uipath-maestro-bpmn/references/patterns/failure-escalation-guide.md +103 -0
  125. package/skills/uipath-maestro-bpmn/references/patterns/high-volume-batch-guide.md +107 -0
  126. package/skills/uipath-maestro-bpmn/references/patterns/queue-distribution-guide.md +129 -0
  127. package/skills/uipath-maestro-bpmn/references/patterns/smart-triage-guide.md +129 -0
  128. package/skills/uipath-maestro-bpmn/references/registry-workflow.md +15 -0
  129. package/skills/uipath-maestro-bpmn/references/shared/local-metadata-regeneration-guide.md +67 -36
  130. package/skills/uipath-maestro-bpmn/references/shared/project-layout.md +6 -5
  131. package/skills/uipath-maestro-bpmn/references/structural-bpmn.md +23 -5
  132. package/skills/uipath-maestro-bpmn/validator/bpmn-spec.json +101 -53
  133. package/skills/uipath-maestro-case/SKILL.md +23 -24
  134. package/skills/uipath-maestro-case/references/bindings-and-expressions.md +30 -17
  135. package/skills/uipath-maestro-case/references/bindings-v2-sync.md +5 -5
  136. package/skills/uipath-maestro-case/references/brownfield.md +3 -3
  137. package/skills/uipath-maestro-case/references/case-commands.md +8 -4
  138. package/skills/uipath-maestro-case/references/case-editing-operations.md +19 -19
  139. package/skills/uipath-maestro-case/references/case-schema.md +17 -3
  140. package/skills/uipath-maestro-case/references/connector-integration.md +25 -16
  141. package/skills/uipath-maestro-case/references/connector-trigger-impl.md +15 -15
  142. package/skills/uipath-maestro-case/references/connector-trigger-planning.md +32 -29
  143. package/skills/uipath-maestro-case/references/entry-points-sync.md +2 -1
  144. package/skills/uipath-maestro-case/references/evals/evals.json +11 -11
  145. package/skills/uipath-maestro-case/references/implementation.md +74 -44
  146. package/skills/uipath-maestro-case/references/phased-execution.md +23 -21
  147. package/skills/uipath-maestro-case/references/placeholder-tasks.md +28 -23
  148. package/skills/uipath-maestro-case/references/planning.md +37 -252
  149. package/skills/uipath-maestro-case/references/plugins/case/impl-json.md +3 -3
  150. package/skills/uipath-maestro-case/references/plugins/case/planning.md +8 -6
  151. package/skills/uipath-maestro-case/references/plugins/conditions/case-exit-conditions/impl-json.md +3 -3
  152. package/skills/uipath-maestro-case/references/plugins/conditions/case-exit-conditions/planning.md +11 -10
  153. package/skills/uipath-maestro-case/references/plugins/conditions/stage-entry-conditions/impl-json.md +6 -6
  154. package/skills/uipath-maestro-case/references/plugins/conditions/stage-entry-conditions/planning.md +12 -12
  155. package/skills/uipath-maestro-case/references/plugins/conditions/stage-exit-conditions/impl-json.md +4 -4
  156. package/skills/uipath-maestro-case/references/plugins/conditions/stage-exit-conditions/planning.md +10 -9
  157. package/skills/uipath-maestro-case/references/plugins/conditions/task-entry-conditions/impl-json.md +5 -5
  158. package/skills/uipath-maestro-case/references/plugins/conditions/task-entry-conditions/planning.md +16 -14
  159. package/skills/uipath-maestro-case/references/plugins/logging/impl-json.md +3 -3
  160. package/skills/uipath-maestro-case/references/plugins/sla/impl-json.md +15 -15
  161. package/skills/uipath-maestro-case/references/plugins/sla/planning.md +20 -21
  162. package/skills/uipath-maestro-case/references/plugins/stages/impl-json.md +6 -6
  163. package/skills/uipath-maestro-case/references/plugins/stages/planning.md +9 -9
  164. package/skills/uipath-maestro-case/references/plugins/tasks/action/impl-json.md +9 -9
  165. package/skills/uipath-maestro-case/references/plugins/tasks/action/planning.md +38 -38
  166. package/skills/uipath-maestro-case/references/plugins/tasks/agent/impl-json.md +3 -3
  167. package/skills/uipath-maestro-case/references/plugins/tasks/agent/planning.md +24 -20
  168. package/skills/uipath-maestro-case/references/plugins/tasks/api-workflow/impl-json.md +3 -3
  169. package/skills/uipath-maestro-case/references/plugins/tasks/api-workflow/planning.md +24 -20
  170. package/skills/uipath-maestro-case/references/plugins/tasks/case-management/impl-json.md +4 -4
  171. package/skills/uipath-maestro-case/references/plugins/tasks/case-management/planning.md +25 -21
  172. package/skills/uipath-maestro-case/references/plugins/tasks/connector-activity/impl-json.md +30 -22
  173. package/skills/uipath-maestro-case/references/plugins/tasks/connector-activity/planning.md +44 -28
  174. package/skills/uipath-maestro-case/references/plugins/tasks/connector-trigger/impl-json.md +10 -10
  175. package/skills/uipath-maestro-case/references/plugins/tasks/connector-trigger/planning.md +27 -23
  176. package/skills/uipath-maestro-case/references/plugins/tasks/create-inline-common.md +3 -3
  177. package/skills/uipath-maestro-case/references/plugins/tasks/process/impl-json.md +3 -3
  178. package/skills/uipath-maestro-case/references/plugins/tasks/process/planning.md +25 -22
  179. package/skills/uipath-maestro-case/references/plugins/tasks/rpa/impl-json.md +3 -3
  180. package/skills/uipath-maestro-case/references/plugins/tasks/rpa/planning.md +25 -21
  181. package/skills/uipath-maestro-case/references/plugins/tasks/wait-for-timer/impl-json.md +4 -4
  182. package/skills/uipath-maestro-case/references/plugins/tasks/wait-for-timer/planning.md +5 -4
  183. package/skills/uipath-maestro-case/references/plugins/triggers/event/impl-json.md +9 -9
  184. package/skills/uipath-maestro-case/references/plugins/triggers/event/planning.md +30 -19
  185. package/skills/uipath-maestro-case/references/plugins/triggers/manual/impl-json.md +4 -4
  186. package/skills/uipath-maestro-case/references/plugins/triggers/manual/planning.md +8 -7
  187. package/skills/uipath-maestro-case/references/plugins/triggers/timer/impl-json.md +3 -3
  188. package/skills/uipath-maestro-case/references/plugins/triggers/timer/planning.md +5 -4
  189. package/skills/uipath-maestro-case/references/plugins/variables/bindings/impl-json.md +5 -5
  190. package/skills/uipath-maestro-case/references/plugins/variables/global-vars/impl-json.md +7 -7
  191. package/skills/uipath-maestro-case/references/plugins/variables/global-vars/planning.md +21 -17
  192. package/skills/uipath-maestro-case/references/plugins/variables/io-binding/impl-json.md +29 -21
  193. package/skills/uipath-maestro-case/references/plugins/variables/io-binding/planning.md +23 -21
  194. package/skills/uipath-maestro-case/references/registry-discovery.md +5 -5
  195. package/skills/uipath-maestro-flow/.maintenance/README.md +35 -28
  196. package/skills/uipath-maestro-flow/.maintenance/check-anchors.sh +19 -1
  197. package/skills/uipath-maestro-flow/.maintenance/check-links.sh +3 -0
  198. package/skills/uipath-maestro-flow/.maintenance/check-plugin-pairs.sh +2 -2
  199. package/skills/uipath-maestro-flow/SKILL.md +66 -76
  200. package/skills/uipath-maestro-flow/references/author/CAPABILITY.md +75 -72
  201. package/skills/uipath-maestro-flow/references/author/brownfield.md +90 -0
  202. package/skills/uipath-maestro-flow/references/author/{references/editing-operations-cli.md → editing-operations-cli.md} +9 -4
  203. package/skills/uipath-maestro-flow/references/author/editing-operations-json.md +373 -0
  204. package/skills/uipath-maestro-flow/references/author/editing-operations.md +103 -0
  205. package/skills/uipath-maestro-flow/references/author/{references/greenfield.md → greenfield.md} +32 -20
  206. package/skills/uipath-maestro-flow/references/author/planning-arch.md +342 -0
  207. package/skills/uipath-maestro-flow/references/author/planning-impl.md +283 -0
  208. package/skills/uipath-maestro-flow/references/author/plugins/agent/impl.md +227 -0
  209. package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/agent/planning.md +2 -2
  210. package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/agentic-process/impl.md +2 -2
  211. package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/agentic-process/planning.md +1 -1
  212. package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/api-workflow/impl.md +2 -2
  213. package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/api-workflow/planning.md +1 -1
  214. package/skills/uipath-maestro-flow/references/author/plugins/batch-transform/impl.md +171 -0
  215. package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/batch-transform/planning.md +1 -1
  216. package/skills/uipath-maestro-flow/references/author/plugins/connector/impl.md +449 -0
  217. package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/connector/planning.md +3 -3
  218. package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/connector-trigger/impl.md +20 -18
  219. package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/connector-trigger/planning.md +2 -2
  220. package/skills/uipath-maestro-flow/references/author/plugins/data-fabric/impl.md +427 -0
  221. package/skills/uipath-maestro-flow/references/author/plugins/data-fabric/planning.md +185 -0
  222. package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/decision/impl.md +5 -0
  223. package/skills/uipath-maestro-flow/references/author/plugins/delay/impl.md +38 -0
  224. package/skills/uipath-maestro-flow/references/author/plugins/end/impl.md +56 -0
  225. package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/flow/impl.md +2 -2
  226. package/skills/uipath-maestro-flow/references/author/plugins/hitl/impl.md +178 -0
  227. package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/hitl/planning.md +14 -1
  228. package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/http/impl-connector.md +4 -4
  229. package/skills/uipath-maestro-flow/references/author/plugins/http/impl-manual.md +68 -0
  230. package/skills/uipath-maestro-flow/references/author/plugins/http/impl.md +173 -0
  231. package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/http/planning.md +3 -3
  232. package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/inline-agent/impl.md +6 -6
  233. package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/inline-agent/planning.md +1 -1
  234. package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/inline-voice-agent/impl.md +4 -4
  235. package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/inline-voice-agent/planning.md +1 -1
  236. package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/ixp/impl.md +8 -8
  237. package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/loop/impl.md +1 -1
  238. package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/loop/planning.md +1 -1
  239. package/skills/uipath-maestro-flow/references/author/plugins/merge/impl.md +43 -0
  240. package/skills/uipath-maestro-flow/references/author/plugins/merge/planning.md +24 -0
  241. package/skills/uipath-maestro-flow/references/author/plugins/rpa/impl.md +117 -0
  242. package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/rpa/planning.md +1 -1
  243. package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/scheduled-trigger/impl.md +6 -8
  244. package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/script/impl.md +5 -5
  245. package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/script/planning.md +1 -1
  246. package/skills/uipath-maestro-flow/references/author/plugins/subflow/impl.md +164 -0
  247. package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/subflow/planning.md +1 -1
  248. package/skills/uipath-maestro-flow/references/author/plugins/summarize/impl.md +189 -0
  249. package/skills/uipath-maestro-flow/references/author/plugins/summarize/planning.md +66 -0
  250. package/skills/uipath-maestro-flow/references/author/plugins/switch/planning.md +34 -0
  251. package/skills/uipath-maestro-flow/references/author/plugins/terminate/impl.md +48 -0
  252. package/skills/uipath-maestro-flow/references/author/plugins/transform/impl.md +241 -0
  253. package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/transform/planning.md +1 -1
  254. package/skills/uipath-maestro-flow/references/diagnose/CAPABILITY.md +39 -37
  255. package/skills/uipath-maestro-flow/references/diagnose/{references/failure-modes.md → failure-modes.md} +22 -22
  256. package/skills/uipath-maestro-flow/references/diagnose/{references/troubleshooting-guide.md → troubleshooting-guide.md} +60 -1
  257. package/skills/uipath-maestro-flow/references/evaluate/CAPABILITY.md +27 -25
  258. package/skills/uipath-maestro-flow/references/evaluate/{references/commands-reference.md → commands-reference.md} +58 -7
  259. package/skills/uipath-maestro-flow/references/evaluate/eval-sets-guide.md +227 -0
  260. package/skills/uipath-maestro-flow/references/evaluate/upload-safety.md +94 -0
  261. package/skills/uipath-maestro-flow/references/operate/CAPABILITY.md +21 -21
  262. package/skills/uipath-maestro-flow/references/operate/{references/manage.md → manage.md} +4 -4
  263. package/skills/uipath-maestro-flow/references/operate/run.md +121 -0
  264. package/skills/uipath-maestro-flow/references/operate/{references/ship.md → ship.md} +5 -5
  265. package/skills/uipath-maestro-flow/references/shared/action-nodes.md +30 -22
  266. package/skills/uipath-maestro-flow/references/shared/cli-commands.md +76 -184
  267. package/skills/uipath-maestro-flow/references/shared/cli-conventions.md +49 -60
  268. package/skills/uipath-maestro-flow/references/shared/file-format.md +32 -11
  269. package/skills/uipath-maestro-flow/references/shared/node-output-wiring.md +49 -104
  270. package/skills/uipath-maestro-flow/references/shared/ux-narration-and-todos.md +66 -103
  271. package/skills/uipath-maestro-flow/references/shared/variables-and-expressions.md +4 -4
  272. package/skills/uipath-planner/SKILL.md +1 -1
  273. package/skills/uipath-planner/assets/templates/case/case-sdd-template.md +5 -3
  274. package/skills/uipath-planner/references/case/case-design-lane-guide.md +1 -1
  275. package/skills/uipath-planner/references/case/case-design-layers-guide.md +2 -2
  276. package/skills/uipath-planner/references/non-pdd-lane-guide.md +2 -1
  277. package/skills/uipath-planner/references/pdd-driven-lane-guide.md +3 -2
  278. package/skills/uipath-planner/references/sdd-generation-guide.md +1 -0
  279. package/skills/uipath-planner/scripts/case/audit_sdd.py +77 -1
  280. package/skills/uipath-platform/SKILL.md +6 -4
  281. package/skills/uipath-platform/references/integration-service/activities.md +7 -4
  282. package/skills/uipath-platform/references/integration-service/reference-resolution.md +28 -0
  283. package/skills/uipath-platform/references/integration-service/resources.md +11 -0
  284. package/skills/uipath-platform/references/integration-service/triggers.md +2 -2
  285. package/skills/uipath-platform/references/licensing/diagnose/CAPABILITY.md +80 -0
  286. package/skills/uipath-platform/references/licensing/diagnose/references/failure-modes.md +147 -0
  287. package/skills/uipath-platform/references/licensing/diagnose/references/troubleshooting-guide.md +125 -0
  288. package/skills/uipath-platform/references/licensing/licensing.md +3 -0
  289. package/skills/uipath-platform/references/licensing/user-licenses-allocations.md +5 -0
  290. package/skills/uipath-platform/references/orchestrator/run-jobs.md +11 -2
  291. package/skills/uipath-platform/references/traces/feedback.md +4 -4
  292. package/skills/uipath-platform/references/traces/traces.md +1 -1
  293. package/skills/uipath-process-mining/SKILL.md +6 -6
  294. package/skills/uipath-process-mining/references/lifecycle-and-rbac.md +10 -8
  295. package/skills/uipath-process-mining/references/model-editing.md +1 -1
  296. package/skills/uipath-process-mining/references/querying.md +4 -3
  297. package/skills/uipath-review/SKILL.md +171 -541
  298. package/skills/uipath-review/references/agents/agents-lowcode-rules.md +73 -92
  299. package/skills/uipath-review/references/agents/guardrails/coded-guardrails-review.md +4 -0
  300. package/skills/uipath-review/references/agents/guardrails/guardrails-review.md +73 -180
  301. package/skills/uipath-review/references/architecture-assessment-guide.md +93 -105
  302. package/skills/uipath-review/references/review-workflow-guide.md +1 -1
  303. package/skills/uipath-review/references/rpa/modern-studio-issues.md +44 -44
  304. package/skills/uipath-review/references/rpa/rpa-common-issues.md +251 -321
  305. package/skills/uipath-review/references/rpa/rpa-review-checklist.md +1 -1
  306. package/skills/uipath-review/references/rule-catalog-workflow.md +25 -45
  307. package/skills/uipath-review/references/rule-format.md +21 -21
  308. package/skills/uipath-rpa/.maintenance/pattern-card-maintenance.md +1 -1
  309. package/skills/uipath-rpa/CLAUDE.md +4 -5
  310. package/skills/uipath-rpa/SKILL.md +40 -246
  311. package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/FindText.md +2 -10
  312. package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/GetColorAtPosition.md +2 -10
  313. package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/GetCursorPosition.md +2 -10
  314. package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/GetField.md +13 -13
  315. package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/GetFieldAtPosition.md +2 -10
  316. package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/GetScreenArea.md +27 -8
  317. package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/GetText.md +2 -14
  318. package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/GetTextAtPosition.md +2 -10
  319. package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/MoveCursor.md +3 -11
  320. package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/MoveCursorToText.md +2 -10
  321. package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/SendControlKey.md +2 -8
  322. package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/SendKeys.md +2 -10
  323. package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/SendKeysSecure.md +2 -10
  324. package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/SetField.md +14 -13
  325. package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/SetFieldAtPosition.md +4 -7
  326. package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/TerminalSession/_common-options.md +29 -0
  327. package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/TerminalSession/authoring-paths.md +58 -0
  328. package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/TerminalSession.md +197 -11
  329. package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/WaitFieldText.md +2 -10
  330. package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/WaitScreenReady.md +9 -10
  331. package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/WaitScreenText.md +2 -14
  332. package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/WaitTextAtPosition.md +2 -10
  333. package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities.json +271 -0
  334. package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/coded/coded-api.md +61 -3
  335. package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/overview.md +76 -0
  336. package/skills/uipath-rpa/references/cli-reference.md +63 -29
  337. package/skills/uipath-rpa/references/coded/codedworkflow-reference.md +59 -1
  338. package/skills/uipath-rpa/references/coded/operations-guide.md +2 -1
  339. package/skills/uipath-rpa/references/debugging.md +29 -12
  340. package/skills/uipath-rpa/references/environment-setup.md +54 -1
  341. package/skills/uipath-rpa/references/execution-maps-guide.md +10 -9
  342. package/skills/uipath-rpa/references/legacy/activity-docs/_INVOKE-CODE.md +1 -1
  343. package/skills/uipath-rpa/references/uia-starter-guide.md +46 -8
  344. package/skills/uipath-rpa/references/xaml/common-pitfalls.md +3 -4
  345. package/skills/uipath-rpa/references/xaml/csharp-activity-binding-guide.md +7 -8
  346. package/skills/uipath-rpa/references/xaml/xaml-basics-and-rules.md +132 -42
  347. package/skills/uipath-solution/SKILL.md +9 -6
  348. package/skills/uipath-solution/references/activate-and-manage.md +11 -6
  349. package/skills/uipath-solution/references/develop-solution.md +39 -28
  350. package/skills/uipath-solution/references/pack-and-deploy.md +49 -1
  351. package/skills/uipath-solution/references/scenarios/failure-modes.md +1 -1
  352. package/skills/uipath-solution/references/scenarios/intra-solution-references.md +3 -3
  353. package/skills/uipath-solution/references/scenarios/manual-edits.md +1 -1
  354. package/skills/uipath-solution/references/scenarios.md +2 -2
  355. package/skills/uipath-solution/references/solution-overview.md +15 -6
  356. package/skills/uipath-tasks/SKILL.md +11 -6
  357. package/skills/uipath-tasks/references/task-assignment.md +5 -0
  358. package/skills/uipath-tasks/references/task-catalogs.md +7 -4
  359. package/skills/uipath-tasks/references/task-completion.md +3 -1
  360. package/skills/uipath-tasks/references/task-data.md +3 -3
  361. package/skills/uipath-tasks/references/task-lifecycle.md +11 -0
  362. package/skills/uipath-tasks/references/task-metadata.md +4 -3
  363. package/skills/uipath-test/SKILL.md +13 -28
  364. package/skills/uipath-test/references/failure-triage-guide.md +90 -0
  365. package/skills/uipath-test/references/playwright-first-mile-guide.md +2 -2
  366. package/skills/uipath-test/references/publish-and-link-guide.md +0 -1
  367. package/skills/uipath-test/references/test-result-report-guide.md +1 -2
  368. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/interpretations/healing-agent-data.md +1 -1
  369. package/skills/uipath-troubleshoot/references/presenting.md +1 -1
  370. package/skills/uipath-troubleshoot/references/products/maestro/playbooks/folder-not-accessible.md +1 -1
  371. package/skills/uipath-troubleshoot/references/products/maestro/playbooks/generic-error-400.md +4 -4
  372. package/skills/uipath-troubleshoot/references/products/maestro/playbooks/integration-service-400.md +2 -2
  373. package/skills/uipath-troubleshoot/references/products/maestro/playbooks/job-operation-timeout.md +1 -1
  374. package/skills/uipath-troubleshoot/references/products/maestro/playbooks/no-suitable-runtime-machine.md +1 -1
  375. package/version-manifest.json +2 -2
  376. package/skills/uipath-maestro-case/scripts/audit_plan.py +0 -231
  377. package/skills/uipath-maestro-flow/references/author/references/brownfield.md +0 -93
  378. package/skills/uipath-maestro-flow/references/author/references/editing-operations-json.md +0 -545
  379. package/skills/uipath-maestro-flow/references/author/references/editing-operations.md +0 -131
  380. package/skills/uipath-maestro-flow/references/author/references/planning-arch.md +0 -638
  381. package/skills/uipath-maestro-flow/references/author/references/planning-impl.md +0 -306
  382. package/skills/uipath-maestro-flow/references/author/references/plugins/agent/impl.md +0 -229
  383. package/skills/uipath-maestro-flow/references/author/references/plugins/batch-transform/impl.md +0 -174
  384. package/skills/uipath-maestro-flow/references/author/references/plugins/connector/impl.md +0 -741
  385. package/skills/uipath-maestro-flow/references/author/references/plugins/delay/impl.md +0 -75
  386. package/skills/uipath-maestro-flow/references/author/references/plugins/end/impl.md +0 -65
  387. package/skills/uipath-maestro-flow/references/author/references/plugins/hitl/impl.md +0 -204
  388. package/skills/uipath-maestro-flow/references/author/references/plugins/http/impl-manual.md +0 -65
  389. package/skills/uipath-maestro-flow/references/author/references/plugins/http/impl.md +0 -201
  390. package/skills/uipath-maestro-flow/references/author/references/plugins/merge/impl.md +0 -43
  391. package/skills/uipath-maestro-flow/references/author/references/plugins/merge/planning.md +0 -29
  392. package/skills/uipath-maestro-flow/references/author/references/plugins/rpa/impl.md +0 -121
  393. package/skills/uipath-maestro-flow/references/author/references/plugins/subflow/impl.md +0 -230
  394. package/skills/uipath-maestro-flow/references/author/references/plugins/summarize/impl.md +0 -198
  395. package/skills/uipath-maestro-flow/references/author/references/plugins/summarize/planning.md +0 -71
  396. package/skills/uipath-maestro-flow/references/author/references/plugins/switch/planning.md +0 -38
  397. package/skills/uipath-maestro-flow/references/author/references/plugins/terminate/impl.md +0 -48
  398. package/skills/uipath-maestro-flow/references/author/references/plugins/transform/impl.md +0 -287
  399. package/skills/uipath-maestro-flow/references/evaluate/references/eval-sets-guide.md +0 -226
  400. package/skills/uipath-maestro-flow/references/evaluate/references/upload-safety.md +0 -82
  401. package/skills/uipath-maestro-flow/references/operate/references/run.md +0 -99
  402. /package/skills/uipath-maestro-bpmn/references/diagnose/{references/failure-modes.md → failure-modes.md} +0 -0
  403. /package/skills/uipath-maestro-bpmn/references/operate/{references/manage.md → manage.md} +0 -0
  404. /package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/decision/planning.md +0 -0
  405. /package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/delay/planning.md +0 -0
  406. /package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/end/planning.md +0 -0
  407. /package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/flow/planning.md +0 -0
  408. /package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/ixp/planning.md +0 -0
  409. /package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/queue/impl.md +0 -0
  410. /package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/queue/planning.md +0 -0
  411. /package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/scheduled-trigger/planning.md +0 -0
  412. /package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/switch/impl.md +0 -0
  413. /package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/terminate/planning.md +0 -0
  414. /package/skills/uipath-maestro-flow/references/evaluate/{references/evaluators-guide.md → evaluators-guide.md} +0 -0
  415. /package/skills/uipath-maestro-flow/references/evaluate/{references/running-guide.md → running-guide.md} +0 -0
@@ -1,54 +1,36 @@
1
1
  # Check Access (Effective Permissions)
2
2
 
3
- Conceptual guide and scope-specific workflows for `uip admin authorization check-access`. For the full flag/argument table and output code, see [authorization-commands.md — Check Access](authorization-commands.md#check-access--uip-admin-authorization-check-access).
3
+ Guide for `uip admin authorization check-access`. See [authorization-commands.md — Check Access](authorization-commands.md#check-access--uip-admin-authorization-check-access) for the complete flag/argument table and output codes.
4
4
 
5
- ## Concept
5
+ ## Purpose and Output
6
6
 
7
- `check-access` is the **Policy Decision Point (PDP)**. It answers: *"What can this principal actually do at this scope, right now?"*
7
+ `check-access` is the Policy Decision Point (PDP): it reports what a principal can do at a scope now. Unlike `roles assignments list`, which reads PAP catalog assignments, it evaluates effective access, including server-side role catalogs managed by `orchestrator`, `dataservice`, `insights`, `taskmining`, `testmanager`, `automationops`, `casemanagement`, and `processmining`. The catalog still exposes those roles and assignments through `roles list --service <svc>` and `roles assignments list --service <svc>`, but the PDP is authoritative for resolved permissions.
8
8
 
9
- Unlike `roles assignments list` (which reads stored assignments from the PAP catalog), `check-access` evaluates **effective** access — it folds in server-side rules from services that manage their own role catalogs (`orchestrator`, `dataservice`, `insights`, `taskmining`, `testmanager`, `automationops`, `casemanagement`, `processmining`) that the PAP catalog alone may not reflect. The catalog *does* surface these services' roles and assignments (`roles list --service <svc>` / `roles assignments list --service <svc>`), but the PDP is the source of truth for "what permissions resolve right now".
9
+ Returned `Data` includes `roleAssignments.results[]` effective roles. Each row contains `roleId`, `roleName`, `serviceName` (display-name form), `roleType`, and nested `roleAssignments[]` entries for underlying grants. It also includes `grantedServicesMetadata` (services with any access) and `grantedRolesMetadata` (roles contributing to the result).
10
10
 
11
- Returned `Data`:
11
+ Inspect every nested `roleAssignments[]` entry; do not collapse paths:
12
12
 
13
- - `roleAssignments.results[]` — list of effective roles the principal has at the scope. Each row is a role with metadata (`roleId`, `roleName`, `serviceName` (display-name form), `roleType`) **and a nested `roleAssignments[]` array** recording each underlying grant.
14
- - `grantedServicesMetadata` — services the principal has any access to.
15
- - `grantedRolesMetadata` — roles contributing to the result.
13
+ | Entry | Report label |
14
+ |---|---|
15
+ | `securityPrincipalType: "User"` and `securityPrincipalId == queried-user-id` | `direct` |
16
+ | `securityPrincipalType: "Group"` | `inherited from <Group displayName>` |
17
+ | `securityPrincipalType: "Robot"` or `"ExternalApplication"` | `via <Robot\|ExternalApplication> <name>` |
16
18
 
17
- ## Direct vs. Inherited — Always Surface the Distinction
19
+ For group entries, resolve `securityPrincipalId` with `uip admin groups get <id> --output json`, cache lookups within one report, and treat the entry as a group of which the user is a member. Explain that revoking a direct grant targets the user’s assignment; revoking an inherited grant requires changing group membership or the group’s role binding.
18
20
 
19
- `check-access` aggregates effective permissions from **direct** user grants AND grants the user **inherits via group membership**. The user needs to see which is which — revoking a direct grant means targeting the user's own assignment; revoking an inherited grant means changing group membership (or the group's role binding).
21
+ Group roles by the response’s `serviceName`, verbatim. When only `ownerServiceName` is available from `roles get`, translate it using [authorization-commands.md — Service display-name mapping](authorization-commands.md#service-display-name-mapping). Include scope and service span where useful:
20
22
 
21
- For every role in `roleAssignments.results[]`, inspect the nested `roleAssignments[]`:
23
+ ```text
24
+ Effective access for <user> at tenant <tenant> — spans <N> services: <service labels>
22
25
 
23
- | Nested entry | Interpretation | Label to render |
24
- |---|---|---|
25
- | `securityPrincipalType: "User"` AND `securityPrincipalId == queried-user-id` | Role assigned directly to this user | `direct` |
26
- | `securityPrincipalType: "Group"` | Role assigned to a group the user is a member of | `inherited from <Group displayName>` — resolve the `securityPrincipalId` via `uip admin groups get <id> --output json` (cache lookups within one report) |
27
- | `securityPrincipalType: "Robot"` / `"ExternalApplication"` | Cross-principal grant (rare on a user `check-access`) | `via <Robot\|ExternalApplication> <name>` |
28
-
29
- Multiple entries under one role's `roleAssignments[]` mean the user has the role via multiple paths — list **all** of them; do not collapse.
30
-
31
- ### Example presentation
32
-
33
- ```
34
- Effective access for alice@example.com at tenant Prod-East — spans 3 services: IXP, Orchestrator, Apps
35
-
36
- IXP (ownerServiceName: Reinfer)
37
- • IXP Tenant Admin — inherited from Tenant Admins
38
- • IXP Project Reader — direct
39
-
40
- Orchestrator
41
- • Orchestrator Folder Admin — inherited from Tenant Admins
42
-
43
- Apps
44
- • App User — direct
26
+ <service label>
27
+ • <role> — direct
28
+ • <role> — inherited from <group>
45
29
  ```
46
30
 
47
- The response's `serviceName` field is already the display name (e.g., `"IXP"`, `"Data Service"`) — surface verbatim. When you only have `ownerServiceName` from a companion `roles get`, translate via [authorization-commands.md — Service display-name mapping](authorization-commands.md#service-display-name-mapping-cli-ownerservicename--user-facing-label).
48
-
49
- ## Identity Argument
31
+ ## Identity and Scope
50
32
 
51
- The principal is the **positional** first argument — UUID, name, or email. The CLI resolves names and emails via the identity API.
33
+ The principal is the positional first argument: UUID, name, or email. The CLI resolves names and emails through the identity API; there is no `--identity-id` flag. Run:
52
34
 
53
35
  ```bash
54
36
  uip admin authorization check-access <USER_GUID>
@@ -56,50 +38,44 @@ uip admin authorization check-access alice@example.com
56
38
  uip admin authorization check-access "Alice Smith"
57
39
  ```
58
40
 
59
- There is no `--identity-id` flag. With `--file`, the identity is set in the request body (`SecurityPrincipalId`) and the positional argument is omitted.
41
+ With `--file`, omit the positional argument and set the identity in the request body as `SecurityPrincipalId`.
60
42
 
61
- ## Choosing the Scope
43
+ `--scope` accepts only `Tenant` (default) or `Folder`:
62
44
 
63
- `check-access --scope` accepts only **`Tenant`** (default) or **`Folder`** — narrower than the scope vocab on `roles create` or `roles assignments create`.
45
+ | Scope | Use | Required flags beyond identity |
46
+ |---|---|---|
47
+ | `Tenant` | Per-tenant access | `--tenant-id <GUID>` optional; defaults to the login tenant |
48
+ | `Folder` | Folder-scoped access | `--scope Folder --folder-id <FOLDER_ID>`; `--tenant-id` is the owning tenant’s `ParentId` and defaults to the login tenant |
64
49
 
65
- | Scope | When to use | Required flags beyond identity |
66
- |-------|-------------|--------------------------------|
67
- | `Tenant` (default if omitted) | Per-tenant access | `--tenant-id <GUID>` optional (defaults to login tenant) |
68
- | `Folder` | Folder-scoped access | `--scope Folder --folder-id <FOLDER_ID>`. `--tenant-id` becomes the owning tenant ParentId (defaults to login tenant) |
50
+ `--folder-id` replaces the older `--scope-id` / `--parent-folder-id` pair. For Folder scope, `--folder-id` is the folder’s `Id` and `--tenant-id` is its owning tenant’s `ParentId`. Do not use `Organization` or `Project` scope.
69
51
 
70
- > **No `Organization` / `Project` scope on `check-access`.** The PDP doesn't expose those directly. To approximate:
71
- > - **Org-wide entitlement check** — loop `check-access <USER> --tenant-id <TID>` over every tenant (`tenants list`), then aggregate `grantedRolesMetadata` per service.
72
- > - **Project-level access** — use `--scope Folder` with the project's owning folder, or filter the default `Tenant` result to the service that owns the project (`--service documentunderstanding` etc.).
52
+ For org-wide entitlement, run `check-access <USER> --tenant-id <TID>` for every tenant from `tenants list` and aggregate `grantedRolesMetadata` per service. For project-level access, use `--scope Folder` with the owning folder, or filter the default `Tenant` result to the owning service with `--service documentunderstanding` (or the relevant service).
73
53
 
74
- > `--folder-id` replaces the older `--scope-id` / `--parent-folder-id` pair. For Folder scope, `--folder-id` is the Folder's `Id` and `--tenant-id` is the owning tenant's `ParentId`.
54
+ ## Workflows
75
55
 
76
- ## Workflow: Check a User's Effective Access at the Login Tenant
56
+ Run the following for login-tenant access; the default scope is `Tenant` and the default tenant is the login tenant:
77
57
 
78
58
  ```bash
79
59
  uip admin authorization check-access <USER_GUID> --output json
80
60
  ```
81
61
 
82
- Default scope is `Tenant`, default tenant is the login tenant.
83
-
84
- ## Workflow: Check Across Tenants
62
+ Run the following for another tenant:
85
63
 
86
64
  ```bash
87
65
  uip admin authorization check-access <USER_GUID> --tenant-id <OTHER_TENANT_ID> --output json
88
66
  ```
89
67
 
90
- ## Workflow: Restrict to One Service
91
-
92
- Especially useful for services that manage their own roles, where the PAP catalog may not reflect server-side rules:
68
+ Run the following to restrict evaluation to one service, especially when server-side service roles may not appear in the PAP catalog:
93
69
 
94
70
  ```bash
95
71
  uip admin authorization check-access <USER_GUID> --service orchestrator --output json
96
72
  ```
97
73
 
98
- Known service names: `apps, authz, automationops, casemanagement, dataservice, documentunderstanding, identity, insights, licensing, oms, orchestrator, platform, processmining, reinfer, studio, taskmining, testmanager`. Other names are accepted free-form (passed through verbatim as `ServiceName`).
74
+ Use these known service names: `apps, authz, automationops, casemanagement, dataservice, documentunderstanding, identity, insights, licensing, oms, orchestrator, platform, processmining, reinfer, studio, taskmining, testmanager`. Other names are accepted free-form and passed verbatim as `ServiceName`.
99
75
 
100
- > **`--service centralizedaccess` is not in the list.** `check-access` does pass arbitrary `--service` values through verbatim, but the PDP has no separate "centralizedaccess" service to score — querying it returns no useful access info. For the multi-service / Centralized Access view, omit `--service` and let the default Tenant evaluation return every role the principal holds across services.
76
+ Do not use `--service centralizedaccess`: although arbitrary values pass through, the PDP has no separate `centralizedaccess` service and returns no useful access information. Omit `--service` for the multi-service / Centralized Access view.
101
77
 
102
- ## Workflow: Folder Scope
78
+ Run the following for Folder scope:
103
79
 
104
80
  ```bash
105
81
  uip admin authorization check-access <USER_GUID> \
@@ -108,11 +84,11 @@ uip admin authorization check-access <USER_GUID> \
108
84
  --output json
109
85
  ```
110
86
 
111
- `--tenant-id` defaults to the login tenant for the ParentId; override only when targeting a folder in a different tenant.
87
+ `--tenant-id` defaults to the login tenant’s `ParentId`; override it only for a folder in another tenant.
112
88
 
113
- ## Workflow: Advanced — File-Based Request
89
+ ## File-Based Request
114
90
 
115
- Use `--file <PATH>` for filters not exposed inline (e.g. `RoleNameStartsWith`). With `--file`, omit the positional identity and the inline scope flags — they're set in the body.
91
+ Run `--file <PATH>` when using filters not exposed inline, such as `RoleNameStartsWith`. Omit the positional identity and inline scope flags; put them in the body.
116
92
 
117
93
  `check-access.json`:
118
94
 
@@ -128,7 +104,7 @@ Use `--file <PATH>` for filters not exposed inline (e.g. `RoleNameStartsWith`).
128
104
  }
129
105
  ```
130
106
 
131
- For Folder scope, `Value.Id` is the folder UUID and `Value.ParentId` is the owning tenant UUID.
107
+ For Folder scope, `Value.Id` is the folder UUID and `Value.ParentId` is the owning tenant UUID. Run:
132
108
 
133
109
  ```bash
134
110
  uip admin authorization check-access --file ./check-access.json --output json
@@ -136,4 +112,4 @@ uip admin authorization check-access --file ./check-access.json --output json
136
112
 
137
113
  ## Resolving Principal IDs
138
114
 
139
- If you only have a UUID and want to verify the identity exists first, or if you need IDs for non-User principals, see [role-assignment-management.md — Resolving Principal IDs](role-assignment-management.md#resolving-principal-ids).
115
+ To verify a UUID or obtain IDs for non-User principals, see [role-assignment-management.md — Resolving Principal IDs](role-assignment-management.md#resolve-principals-before-mutation).
@@ -1,44 +1,40 @@
1
1
  # Grant Permission(s) to a Principal
2
2
 
3
- Workflow for the ad-hoc **"grant me X"** / **"give <PRINCIPAL> permissions Y, Z"** request — a shortcut over the full Create-Role + Create-Assignment pair, optimized for the common case where the user names *permissions*, not a role shape.
3
+ Workflow for ad-hoc **"grant me X"** / **"give <PRINCIPAL> permissions Y, Z"** requests: a shortcut over Create-Role + Create-Assignment when the user names permissions rather than a role shape.
4
4
 
5
5
  For per-command flag tables and output codes, see [authorization-commands.md](authorization-commands.md). For shared role-shape concepts (Centralized Access, service-inference rules, scope modes), see [role-management.md](role-management.md).
6
6
 
7
7
  ## When to Use This Workflow
8
8
 
9
- The user names **one or more permissions** without naming a role or a scope. Examples:
9
+ Use when the user names permissions without naming a role or scope, such as *"grant me DOCUMENTUNDERSTANDING.PROJECTS.READ"*, *"give alice DU projects read and update"*, or *"what's the minimal grant for licensing reads?"* If the user names a role shape first, use [role-management.md — Workflow: Create a Custom Role](role-management.md#workflow-create-a-custom-role); its Step 1a-1d substeps cover the role-first path.
10
10
 
11
- - *"grant me DOCUMENTUNDERSTANDING.PROJECTS.READ"*
12
- - *"give alice DU projects read and update"*
13
- - *"what's the minimal grant for licensing reads?"*
14
-
15
- If the user names a **role shape first** (e.g., *"create a tenant role for DU"*, *"make a custom role with DU permissions"*), use [role-management.md — Workflow: Create a Custom Role](role-management.md#workflow-create-a-custom-role) instead — those Step 1a-1d substeps cover the role-first entry path.
16
-
17
- > **Sibling workflow.** [Step 1b of Workflow: Create a Custom Role](role-management.md#step-1b--hoist-check-prefer-the-umbrella-when-permissions-overlap) is the binary (service vs. umbrella) form of the same scope-selection problem this workflow solves with a full N-scope intersection (Steps G2-G3). Keep them in sync if either changes.
18
-
19
- > **Never skip the scope menu.** The same permission name (e.g., `DOCUMENTUNDERSTANDING.PROJECTS.UPDATE`) almost always appears in *both* the service catalog *and* the Tenant / TenantGlobal umbrella catalogs. Defaulting to `--service <svc>` silently locks the role to one service and loses the multi-service reuse the umbrella offers. Always probe every applicable scope and let the user pick.
11
+ > **Sibling workflow.** [Step 1b of Workflow: Create a Custom Role](role-management.md#step-1b--hoist-overlapping-permissions-to-the-umbrella) is the binary service-versus-umbrella form of the scope-selection problem solved here with a full N-scope intersection (Steps G2-G3). Keep them synchronized.
12
+ >
13
+ > **Never skip the scope menu.** A permission may appear in both service and Tenant / TenantGlobal umbrella catalogs. Do not default to `--service <svc>`; probe every applicable scope and let the user choose.
20
14
 
21
15
  ## Step G1 — Identify the permission(s)
22
16
 
23
- Resolve the user's wording to one or more concrete permission `name` values (e.g., "DU projects update" → `DOCUMENTUNDERSTANDING.PROJECTS.UPDATE`; "DU projects read and update" → `[…PROJECTS.READ, …PROJECTS.UPDATE]`). If any token is ambiguous (no exact match), grep the catalog:
17
+ Resolve the wording to exact permission `name` values. If any token is ambiguous or has no exact match, run:
24
18
 
25
19
  ```bash
26
20
  uip admin authorization permissions list --output json \
27
21
  --output-filter "Data[?contains(name, '<TOKEN>')].{name:name,resourceType:resourceType,scopeType:scopeType}"
28
22
  ```
29
23
 
30
- If multiple candidates remain for any token, render a numbered Markdown menu and stop until disambiguated. End of this step: a confirmed list of one or more permission `name` strings.
24
+ If multiple candidates remain for any token, render a numbered Markdown menu and stop until the user disambiguates. End with one or more confirmed permission `name` strings.
31
25
 
32
26
  ## Step G2 — Probe which scopes admit each permission
33
27
 
34
- Always run the Tenant and TenantGlobal probes; gate the other two on the permission set. The CLI tells you which scopes each permission is valid in:
28
+ Run the Tenant and TenantGlobal probes always; run the other probes conditionally:
35
29
 
36
30
  | Probe | Run when |
37
31
  |---|---|
38
32
  | `permissions list --scope Tenant` | Always |
39
33
  | `permissions list --scope TenantGlobal` | Always |
40
- | `permissions list --service <SERVICE>` | Every selected permission shares the same service prefix (one probe per distinct prefix) |
41
- | `permissions list --scope Organization` | Any selected permission has an org-scope service prefix (e.g., `APPS.*`, `IDENTITY.*`) |
34
+ | `permissions list --service <SERVICE>` | Every selected permission shares one service prefix; run one per distinct prefix |
35
+ | `permissions list --scope Organization` | Any selected permission has an org-scope service prefix, such as `APPS.*` or `IDENTITY.*` |
36
+
37
+ Run:
42
38
 
43
39
  ```bash
44
40
  uip admin authorization permissions list --scope Tenant --output json > tenant.json
@@ -47,44 +43,37 @@ uip admin authorization permissions list --service <SERVICE> --output json > svc
47
43
  uip admin authorization permissions list --scope Organization --output json > org.json # conditional
48
44
  ```
49
45
 
50
- Membership rule: a permission is "valid in scope X" iff its `name` appears in the catalog returned for that scope. Many tenant-services share the same catalog between `--scope Tenant` and `--scope TenantGlobal` — treat them as two distinct menu options.
51
-
52
- ## Step G2.5 — Compute the intersection of valid scopes/services across all selected permissions
53
-
54
- A role can hold a permission only if **every** permission in the set is valid at that role shape. Build the intersection across **five** candidate shapes — four umbrella scopes (Tenant, TenantGlobal, Organization, Project) **plus** the Service shape (`--service <SERVICE>`, scope inferred). The Service shape is always a row in the matrix when every selected permission shares one service prefix — never drop it silently just because an umbrella also admits the perm.
46
+ A permission is valid in scope X iff its `name` appears in that scope's catalog. Treat Tenant and TenantGlobal as distinct menu options even when their catalogs match.
55
47
 
56
- 1. For each candidate permission, record the set of shapes where it appears: e.g., `DOCUMENTUNDERSTANDING.PROJECTS.UPDATE = {Tenant, TenantGlobal, Service:documentunderstanding}`.
57
- 2. **Intersect** the shape-sets across all candidates. The result is the set of role shapes the role can take.
48
+ ## Step G2.5 — Compute the intersection of valid scopes/services
58
49
 
59
- Branch on the intersection:
50
+ Build each permission's shape-set and intersect the five candidate shapes: Tenant, TenantGlobal, Organization, Project, and Service (`--service <SERVICE>`, scope inferred). Include Service whenever all selected permissions share one service prefix, even if an umbrella also admits them. Record shapes such as `{Tenant, TenantGlobal, Service:documentunderstanding}`; the intersection is the permissible role-shape set.
60
51
 
61
52
  | Intersection | Action |
62
- |--------------|--------|
63
- | **Empty** (no shape holds all candidates) | The permissions cannot live on one role. Surface the per-permission scope matrix to the user and offer: (a) split into multiple roles by scope group, (b) drop the outliers, (c) reconsider the set. Do not silently downshift to a single role that omits permissions. |
64
- | **One shape** | Skip the menu — proceed to Step G4 with that shape. State the resolution in the summary. |
53
+ |---|---|
54
+ | **Empty** | Show the per-permission scope matrix and offer (a) split into multiple roles by scope group, (b) drop outliers, or (c) reconsider the set. Never silently omit permissions or downshift to one incomplete role. |
55
+ | **One shape** | Skip the menu, proceed to Step G4, and state the resolved shape. |
65
56
  | **≥2 shapes** | Render the matrix and menu in Step G3. |
66
57
 
67
- > **Project-scope-only permissions** (e.g., `DOCUMENTUNDERSTANDING.DOCUMENTTYPE.*`) have **no umbrella** — they appear *only* in `permissions list --scope Project --service <svc>`. If every candidate is Project-scope and they share the same service, the intersection is `{Project:<service>}`; skip the menu and use `--scope Project --service <svc>`. If the set mixes Project with Tenant/Org, the intersection is empty — apply the split rule above.
68
-
69
- ## Step G3 — Render the intersection matrix and scope menu (Tenant Recommended when present)
58
+ **Project-scope-only permissions** (for example, `DOCUMENTUNDERSTANDING.DOCUMENTTYPE.*`) have no umbrella and appear only in `permissions list --scope Project --service <svc>`. If all candidates are Project-scope and share a service, the intersection is `{Project:<service>}`; skip the menu and use `--scope Project --service <svc>`. If Project is mixed with Tenant or Organization, the intersection is empty and the split rule applies.
70
59
 
71
- When the intersection has ≥2 shapes, render **two artifacts**: a presence matrix (so the user sees why each option is offered) followed by a numbered menu (so the user replies with a digit). Mark **Tenant** as Recommended when present. Show only shapes that survived the intersection — never list an option the role can't take.
60
+ ## Step G3 — Render the intersection matrix and scope menu
72
61
 
73
- **Decide which rows to render before drafting either artifact:**
62
+ When the intersection has ≥2 shapes, render the presence matrix first, then a numbered menu. Show only intersection survivors; never offer an invalid shape. Mark Tenant **Recommended** when present. Decide rows as follows:
74
63
 
75
64
  | Row in `Scope/Service` column | Owning service for the created role | Render when |
76
65
  |---|---|---|
77
- | Tenant | `CentralizedAccess` | Intersection includes `Tenant`. Mark **Recommended**. |
78
- | TenantGlobal | `CentralizedAccess` | Intersection includes `TenantGlobal`. |
79
- | Organization | `CentralizedAccess` | Intersection includes `Organization` (i.e., every selected permission has an org-scope service prefix). |
80
- | Service | `<SERVICE>` (e.g., `DocumentUnderstanding`) | Intersection includes the service catalog AND every selected permission shares one service prefix. Omit when permissions span multiple services or are cross-cutting (e.g., `AUTHZ.*`). |
81
- | Project | `<SERVICE>` | Intersection is `{Project:<service>}` only — handled by the project-only branch in Step G2.5; usually not shown alongside umbrella rows. |
66
+ | Tenant | `CentralizedAccess` | Intersection includes `Tenant`; mark **Recommended** |
67
+ | TenantGlobal | `CentralizedAccess` | Intersection includes `TenantGlobal` |
68
+ | Organization | `CentralizedAccess` | Intersection includes `Organization`, meaning every selected permission has an org-scope service prefix |
69
+ | Service | `<SERVICE>` (for example, `DocumentUnderstanding`) | Intersection includes the service catalog and every selected permission shares one service prefix; omit for multi-service or cross-cutting permissions such as `AUTHZ.*` |
70
+ | Project | `<SERVICE>` | Intersection is `{Project:<service>}` only; normally handled by the Project-only branch in Step G2.5 rather than shown with umbrella rows |
82
71
 
83
- > **Owning Service** is the value `roles get` will return as `ownerServiceName` after creation — umbrella scopes (no `--service`) resolve to `CentralizedAccess`; a service-shape role resolves to the named service. See [role-management.md — Step 6](role-management.md#step-6--summarize-highlight-the-resolved-service).
72
+ **Owning Service** is the `ownerServiceName` returned by `roles get`: umbrella scopes without `--service` resolve to `CentralizedAccess`; service-shape roles resolve to the named service. See [role-management.md — Step 6](role-management.md#step-6--summarize-the-resolved-service).
84
73
 
85
- **Artifact 1 — Intersection matrix.** First column is `Scope/Service`; second column is `Owning Service`; third column is presence (✅ for shapes in the intersection, ❌ for shapes that were probed but excluded). Always include the **Service** row when every selected permission shares one service prefix — its absence was the gap that motivated this column layout. Example for `DOCUMENTUNDERSTANDING.PROJECTS.UPDATE` (single perm, single service):
74
+ **Artifact 1 — Intersection matrix.** Use columns `Scope/Service`, `Owning Service`, and `Perm present?`; use ✅ for intersection shapes and ❌ for probed but excluded shapes. Always include the Service row when all selected permissions share one service prefix:
86
75
 
87
- ```
76
+ ```markdown
88
77
  | Scope/Service | Owning Service | Perm present? |
89
78
  |---------------|-----------------------|---------------|
90
79
  | Tenant | CentralizedAccess | ✅ |
@@ -94,9 +83,9 @@ When the intersection has ≥2 shapes, render **two artifacts**: a presence matr
94
83
  | Project | DocumentUnderstanding | ❌ |
95
84
  ```
96
85
 
97
- **Artifact 2 — Numbered menu** built from the ✅ rows above, renumbered from `1`:
86
+ **Artifact 2 — Numbered menu.** Build it from the ✅ rows and renumber from `1`. Identify the permission(s), explain that they are valid in multiple role shapes, state each shape's binding, owning service, and create flags, and end with “Reply with the digit of your choice.” Use this structure:
98
87
 
99
- ```
88
+ ```markdown
100
89
  `<PERMISSION_NAME_1>` (+ N more) are valid in multiple role shapes. Pick:
101
90
 
102
91
  1. **Tenant** (Recommended) — multi-service role bound to one tenant. Owning service: `CentralizedAccess`. Built with `--scope Tenant` and no `--service`. Reusable across every tenant-service in this tenant.
@@ -107,26 +96,26 @@ When the intersection has ≥2 shapes, render **two artifacts**: a presence matr
107
96
  Reply with the digit of your choice.
108
97
  ```
109
98
 
110
- **Why Tenant is the default recommendation:** the Tenant-shape role can bundle additional tenant-scope permissions from any other service later (`LICENSING.*`, `IDENTITY.*`, etc.) without re-authoring; the service-shape role cannot. The Service option is still listed (with its `Owning Service` made explicit) so the user can deliberately pick strict service isolation when that's what they want.
99
+ Recommend Tenant because it can later bundle tenant-scope permissions from other services (`LICENSING.*`, `IDENTITY.*`, etc.) without re-authoring; still list Service for deliberate isolation.
111
100
 
112
101
  ## Step G4 — Map the pick to the create-call shape
113
102
 
114
103
  | Pick | `roles create` flags |
115
- |------|----------------------|
104
+ |---|---|
116
105
  | Tenant | `--scope Tenant` (no `--service`; `--tenant-id` defaults to login) |
117
106
  | TenantGlobal | `--scope TenantGlobal` (no `--service`) |
118
107
  | Organization | `--scope Organization` (no `--service`) |
119
108
  | Service | `--service <SERVICE>` (no `--scope`; registry infers) |
120
109
  | Project | `--scope Project --service <SERVICE>` |
121
110
 
122
- Author `actions.json` as a JSON array containing **every** permission `name` confirmed in Step G1 — not just one. Then run [Steps 2-5 of Workflow: Create a Custom Role](role-management.md#step-2--suggest-a-role-name) (name suggestion, action-file authoring, create, verify). After the role exists, run [Workflow: Create a Single Assignment](role-assignment-management.md#workflow-create-a-single-assignment) — including the [Echo-before-mutate protocol](role-assignment-management.md#echo-before-mutate-protocol) for the principal.
111
+ Author `actions.json` as a JSON array containing **every** permission `name` confirmed in Step G1. Then run [Steps 2-5 of Workflow: Create a Custom Role](role-management.md#step-2--suggest-a-role-name): name suggestion, action-file authoring, create, and verify. After the role exists, run [Workflow: Create a Single Assignment](role-assignment-management.md#create-one-assignment), including the [Echo-before-mutate protocol](role-assignment-management.md#echo-before-mutate-protocol) for the principal.
123
112
 
124
113
  ## Step G5 — Summarize: state the resolved scope, service, and full permission list
125
114
 
126
115
  In the post-create / post-assign summary, include:
127
116
 
128
- - The scope path the assignment landed on.
129
- - The resolved `--service` value (or "no `--service` — multi-service <scope> role" when omitted).
130
- - The **full list of permissions** in the role — not just the one the user named first. This matters when the role bundles several permissions; silently omitting some from the summary hides the actual grant scope.
117
+ - The scope path where the assignment landed.
118
+ - The resolved `--service` value, or “no `--service` — multi-service <scope> role” when omitted.
119
+ - The **full list of permissions** in the role, not only the first named permission.
131
120
 
132
- Same rule as [Step 6 of Workflow: Create a Custom Role](role-management.md#step-6--summarize-highlight-the-resolved-service).
121
+ Apply the same rule as [Step 6 of Workflow: Create a Custom Role](role-management.md#step-6--summarize-the-resolved-service).
@@ -4,36 +4,34 @@ Conceptual guide for the read-only catalog at `uip admin authorization permissio
4
4
 
5
5
  ## Concept
6
6
 
7
- The catalog is the master list of permission definitions across all services. Permissions are referenced **by `name`** (the dotted string, e.g. `STUDIO.X.Y`) when authoring custom roles — see [role-management.md — Workflow: Create a Custom Role](role-management.md#workflow-create-a-custom-role).
8
-
9
- Each permission record:
7
+ The catalog is the master list of permission definitions. Custom roles reference permissions by `name` (the dotted string, such as `STUDIO.X.Y`); see [role-management.md — Workflow: Create a Custom Role](role-management.md#workflow-create-a-custom-role).
10
8
 
11
9
  | Field | Example | Used for |
12
10
  |-------|---------|----------|
13
- | `id` | UUID | Internal — not required for role authoring |
14
- | `name` | `IDENTITY.GROUP.UPDATE` | **What goes into `roles create --file ./actions.json`** |
11
+ | `id` | UUID | Internal; not required for role authoring |
12
+ | `name` | `IDENTITY.GROUP.UPDATE` | **Value in `roles create --file ./actions.json`** |
15
13
  | `namespace` | `IDENTITY` | Grouping / display |
16
14
  | `serviceDisplayName` | `Identity Service` | Grouping / display |
17
15
  | `resourceType` | `Group` | Grouping / display |
18
16
  | `resourceAction` | `Update` | Grouping / display |
19
17
  | `resourceGroup` | `Identity` | Grouping / display |
20
- | `scopeType` | `ORGANIZATION` / `TENANT` / `PROJECT` / `ANY` | Determines which role-scope mode the permission belongs in |
18
+ | `scopeType` | `ORGANIZATION` / `TENANT` / `PROJECT` / `ANY` | Determines the role-scope mode |
21
19
 
22
20
  > The `--file` payload for `roles create`/`roles update` is a **JSON array of permission `name` strings**, not UUIDs. The CLI resolves names to ids server-side.
23
21
 
24
22
  ## Scope Behavior
25
23
 
26
- Each service registers its permissions at a specific scope. Examples:
24
+ Each service registers permissions at a specific scope:
27
25
 
28
- - Studio permissions register at `Tenant` (per the service registry — `--service studio` infers `Tenant`).
29
- - Apps permissions register at `Organization`.
30
- - Document Understanding registers Project-shape permissions (queryable with `--scope Project --service documentunderstanding`).
26
+ - Studio registers at `Tenant`; `--service studio` therefore infers `Tenant`.
27
+ - Apps registers at `Organization`.
28
+ - Document Understanding registers Project-shape permissions; query them with `--scope Project --service documentunderstanding`.
31
29
 
32
- Passing `--scope <TYPE>` may surface or hide service-specific entries depending on where the service registered.
30
+ `--scope <TYPE>` may surface or hide entries according to service registration.
33
31
 
34
32
  ## `--service` Infers Scope
35
33
 
36
- When you call `permissions list` with `--service <NAME>` and **no `--scope`**, the CLI consults the service registry and applies the inferred scope automatically. To override, pass both `--service` and `--scope` explicitly (used by Project-shape services like Document Understanding and Reinfer).
34
+ With `--service <NAME>` and no `--scope`, `permissions list` consults the service registry and applies the inferred scope. Override it by passing both flags, as required for Project-shape services such as Document Understanding and Reinfer.
37
35
 
38
36
  ```bash
39
37
  uip admin authorization permissions list --service studio --output json
@@ -42,9 +40,9 @@ uip admin authorization permissions list --service documentunderstanding --scope
42
40
 
43
41
  ### `--service` serviceNames and How to Re-Derive Them
44
42
 
45
- `--service <NAME>` is right when the caller names the service ("which permissions does Orchestrator contribute?"). It is wrong for locating a permission whose owning service you do not know — use [Find the Permission Governing an Action](#workflow-find-the-permission-governing-an-action) instead.
43
+ Use `--service <NAME>` when the caller names the service. When the owning service is unknown, use [Find the Permission Governing an Action](#workflow-find-the-permission-governing-an-action).
46
44
 
47
- The value `--service` takes is a **`serviceName`** — the API filter this flag sets, equal to the catalog `Namespace` lowercased and to `lowercase(OwnerServiceName)` from `roles list`. All 22 (verified against `uip` 1.201.0):
45
+ `--service` takes a **`serviceName`**: the API filter equal to catalog `Namespace` lowercased and to `lowercase(OwnerServiceName)` from `roles list`. All 22, verified against `uip` 1.201.0:
48
46
 
49
47
  ```
50
48
  apps audit authz automationops casemanagement communicationsmining cx
@@ -53,33 +51,33 @@ licensing oms orchestrator platform processmining reinfer relay studio
53
51
  taskmining testmanager
54
52
  ```
55
53
 
56
- `centralizedaccess` is the one namespace with **no** usable `serviceName`. `CENTRALIZEDACCESS` permissions (the platform Administration page) are reachable only via `--scope Tenant` or an unfiltered list.
54
+ `centralizedaccess` is the only namespace without a usable `serviceName`. Reach `CENTRALIZEDACCESS` permissions, including the platform Administration page, only with `--scope Tenant` or an unfiltered list.
57
55
 
58
- Derive the `serviceName` from `Namespace` or `OwnerServiceName`, never from `ServiceDisplayName`: `reinfer` works and `ixp` does not (`REINFER` / `Reinfer` displays as "IXP"); `casemanagement` works and `maestro` does not (displays as "Maestro").
56
+ Derive `serviceName` from `Namespace` or `OwnerServiceName`, never `ServiceDisplayName`: `reinfer` works and `ixp` does not (`REINFER` / `Reinfer` displays as “IXP”); `casemanagement` works and `maestro` does not (displays as “Maestro”).
59
57
 
60
58
  #### Re-derive the List When a `serviceName` Is Rejected
61
59
 
62
- Never guess a replacement `serviceName`, and never trust the `Known services:` roster printed by `check-access --help` — it is a stale 18-entry mirror that omits `audit`, `communicationsmining`, `cx`, `governedinference`, and `relay`. Ask the catalog:
60
+ Never guess a replacement `serviceName`, and never trust the `Known services:` roster from `check-access --help`; it is a stale 18-entry mirror omitting `audit`, `communicationsmining`, `cx`, `governedinference`, and `relay`. Run the catalog query, choose a real `serviceName`, and retry the original command:
63
61
 
64
62
  ```bash
65
63
  uip admin authorization permissions list --output plain --output-filter "[].Namespace" \
66
64
  | tr '[:upper:]' '[:lower:]' | sort -u | grep -v '^centralizedaccess$'
67
65
  ```
68
66
 
69
- `--output plain` emits one bare value per line, so this needs no `jq` and the ~210 KB catalog never reaches the transcript. Run it, pick the real `serviceName`, retry the original command.
67
+ `--output plain` emits one bare value per line, so no `jq` is needed and the approximately 210 KB catalog does not reach the transcript.
70
68
 
71
69
  ## Cross-Cutting `authz` Permissions
72
70
 
73
- `AUTHZ` holds 14 permissions: 10 at `ScopeType: ANY` — the only `ANY` rows in the whole catalog — plus 4 at `ORGANIZATION`. `ANY` matches every scope filter, so **every** `--service` slice returns those 10 alongside the service's own rows: `--service studio` yields `STUDIO` + `AUTHZ`, `--service identity` yields `IDENTITY` + `AUTHZ`. `--service authz` adds the 4 `ORGANIZATION` rows.
71
+ `AUTHZ` has 14 permissions: 10 at `ScopeType: ANY`—the only `ANY` rows in the catalog—and 4 at `ORGANIZATION`. `ANY` matches every scope filter, so every `--service` slice includes those 10 alongside that service's rows: `--service studio` yields `STUDIO` + `AUTHZ`; `--service identity` yields `IDENTITY` + `AUTHZ`; `--service authz` adds the 4 `ORGANIZATION` rows.
74
72
 
75
- A slice is a **role-shape slice**, never a namespace filter, and never returns another namespace's rows. Two consequences:
73
+ A slice is a **role-shape slice**, not a namespace filter, and never returns another namespace's rows:
76
74
 
77
- 1. **A slice returning only those 10 `AUTHZ` rows means the `--service` / `--scope` pair matched nothing of that service** — e.g. `--service apps --scope Project`. That floor, not `Data: []`, is the "wrong slice" signal.
78
- 2. **A valid `serviceName` at the wrong scope hides real permissions.** `--service documentunderstanding` returns 17 rows at its inferred `Tenant` scope; `--scope Project` returns 49. Never rule a permission out from one slice — drop `--service` and re-query.
75
+ 1. A slice containing only the 10 `AUTHZ` rows means the `--service` / `--scope` pair matched none of that service—for example, `--service apps --scope Project`. This floor, not `Data: []`, signals the wrong slice.
76
+ 2. A valid `serviceName` at the wrong scope hides real permissions. `--service documentunderstanding` returns 17 rows at its inferred `Tenant` scope and 49 at `--scope Project`. Never rule out a permission from one slice; remove `--service` and re-query.
79
77
 
80
78
  ## Workflow: Find the Permission Governing an Action
81
79
 
82
- Use this when diagnosing a 403 or mapping a UI surface ("the Administration page", "the Studio settings tab") to its permission name. Search the **whole** catalog — do not pre-filter by `--service`:
80
+ Use this for a 403 or to map a UI surface, such as an Administration page or Studio settings tab, to its permission name. Search the **whole** catalog; do not pre-filter by `--service`. Run:
83
81
 
84
82
  ```bash
85
83
  uip admin authorization permissions list --output json \
@@ -94,29 +92,29 @@ uip admin authorization permissions list --output json \
94
92
 
95
93
  Rules:
96
94
 
97
- 1. **When searching, always filter.** An unfiltered list is ~500 records / ~210 KB of JSON — past most agents' tool-output limit, so it truncates and the record you need can be present but unread. Never conclude "not found" from a truncated list. (Filtering is for *finding* one permission. When the goal is to hand over the whole catalog, or one named service's slice, list it unfiltered or with `--service` and save it complete — see [Find Permission Names for Role Authoring](#workflow-find-permission-names-for-role-authoring).)
98
- 2. **`--output-filter` JMESPath `contains` is case-sensitive.** `Name` is UPPERCASE; `Description`, `ResourceType`, and `ResourceGroup` are sentence/Pascal case. `contains(Description, 'Administration')` returns `[]` while `contains(Description, 'administration')` matches.
99
- 3. Search `Name` on an UPPERCASE keyword first, then widen to `Description` in lowercase:
95
+ 1. **Always filter when searching.** An unfiltered list is approximately 500 records / 210 KB of JSON and may exceed tool-output limits, so truncation can hide the needed record. Never conclude “not found” from truncated output. For handing over the whole catalog or a named service's complete slice, list unfiltered or with `--service` and save it complete; see [Find Permission Names for Role Authoring](#workflow-find-permission-names-for-role-authoring).
96
+ 2. **`--output-filter` JMESPath `contains` is case-sensitive.** `Name` is UPPERCASE; `Description`, `ResourceType`, and `ResourceGroup` use sentence/Pascal case. `contains(Description, 'Administration')` returns `[]`; `contains(Description, 'administration')` matches.
97
+ 3. Search `Name` with an UPPERCASE keyword first, then widen to lowercase `Description`. Run:
100
98
  ```bash
101
99
  uip admin authorization permissions list --output json \
102
100
  --output-filter "[?contains(Name, 'ADMIN') || contains(Description, 'admin')]"
103
101
  ```
104
- 4. Narrow by role shape with `--scope`, never a guessed `--service`. Scope matters: `--scope Tenant` surfaces the Administration page permission, `--scope Organization` does not — so try the unfiltered catalog before ruling a permission out.
105
- 5. Read `ScopeType` off the hit — it dictates the role scope needed to grant it (`TENANT` → a `Tenant`- or `TenantGlobal`-shape role). See [role-management.md](role-management.md).
102
+ 4. Narrow by role shape with `--scope`, never with a guessed `--service`. Scope matters: `--scope Tenant` surfaces the Administration page permission, while `--scope Organization` does not. Try the unfiltered catalog before ruling out a permission.
103
+ 5. Read `ScopeType` from the hit; it determines the role scope needed to grant it (`TENANT` → a `Tenant`- or `TenantGlobal`-shape role). See [role-management.md](role-management.md).
106
104
 
107
105
  ## Workflow: Find Permission Names for Role Authoring
108
106
 
109
- To build a custom role's actions file:
107
+ To build a custom role actions file:
110
108
 
111
- 1. List candidate permissions for the target service:
109
+ 1. List candidate permissions for the target service. Run:
112
110
  ```bash
113
111
  uip admin authorization permissions list --service <SERVICE> --output json
114
112
  ```
115
- 2. Extract `name` values for the actions the role should grant (e.g. `STUDIO.X.Y`, `IDENTITY.GROUP.READ`).
116
- 3. Write them to `actions.json` as a flat string array:
113
+ 2. Extract `name` values for the actions the role should grant, such as `STUDIO.X.Y` or `IDENTITY.GROUP.READ`.
114
+ 3. Write a flat string array to `actions.json`:
117
115
  ```json
118
116
  ["STUDIO.X.Y", "STUDIO.A.B", "IDENTITY.GROUP.READ"]
119
117
  ```
120
- 4. Pass via `--file ./actions.json` to `roles create` or `roles update`. See [role-management.md](role-management.md).
118
+ 4. Pass it with `--file ./actions.json` to `roles create` or `roles update`. See [role-management.md](role-management.md).
121
119
 
122
- When the user is selecting permissions interactively, present them as a **single numbered table grouped by `serviceDisplayName`** with columns `# | Service | Permission | Scope | Description` — see [role-management.md — Step 3](role-management.md#step-3--present-permissions-as-a-numbered-menu). Map the user's picked numbers to permission `name` strings internally; never ask the user to copy UUIDs.
120
+ For interactive selection, present one numbered table grouped by `serviceDisplayName`, with columns `# | Service | Permission | Scope | Description`; see [role-management.md — Step 3](role-management.md#step-3--present-a-numbered-permission-menu). Map selected numbers to permission `name` strings internally; never ask the user to copy UUIDs.