procesio-cli 0.1.1__py3-none-any.whl

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 (647) hide show
  1. procesio_cli/__init__.py +18 -0
  2. procesio_cli/_cli.py +71 -0
  3. procesio_cli/agents/__init__.py +0 -0
  4. procesio_cli/agents/_lib/__init__.py +0 -0
  5. procesio_cli/agents/_lib/actiondef.py +24 -0
  6. procesio_cli/agents/_lib/errors.py +40 -0
  7. procesio_cli/agents/_lib/reversibility.py +236 -0
  8. procesio_cli/agents/_lib/toolrunner.py +141 -0
  9. procesio_cli/agents/connector-builder/CONNECTOR-BUILDER-PLAYBOOK.md +62 -0
  10. procesio_cli/agents/connector-builder/CONNECTOR-BUILDER-PROCESIO-INTEROP.md +76 -0
  11. procesio_cli/agents/connector-builder/CONNECTOR-BUILDER-TROUBLESHOOTING.md +60 -0
  12. procesio_cli/agents/connector-builder/README.md +51 -0
  13. procesio_cli/agents/connector-builder/agent.yaml +61 -0
  14. procesio_cli/agents/connector-builder/context.py +19 -0
  15. procesio_cli/agents/connector-builder/handlers/__init__.py +1 -0
  16. procesio_cli/agents/connector-builder/handlers/checklist.py +71 -0
  17. procesio_cli/agents/connector-builder/handlers/guidance.py +37 -0
  18. procesio_cli/agents/connector-builder/handlers/nextstep.py +221 -0
  19. procesio_cli/agents/connector-builder/handlers/status.py +35 -0
  20. procesio_cli/agents/connector-builder/knowledge.py +47 -0
  21. procesio_cli/agents/connector-builder/main.py +93 -0
  22. procesio_cli/agents/connector-builder/tests/conftest.py +95 -0
  23. procesio_cli/agents/connector-builder/tests/test_cba_agent.py +148 -0
  24. procesio_cli/agents/orchestrator/__init__.py +0 -0
  25. procesio_cli/agents/orchestrator/bootstraplib.py +166 -0
  26. procesio_cli/agents/procesio/IMPLEMENTATION-PATTERNS/00-INDEX.md +60 -0
  27. procesio_cli/agents/procesio/IMPLEMENTATION-PATTERNS/01-PROCESSES.md +230 -0
  28. procesio_cli/agents/procesio/IMPLEMENTATION-PATTERNS/02-FORMS.md +287 -0
  29. procesio_cli/agents/procesio/IMPLEMENTATION-PATTERNS/03-INTEGRATIONS.md +384 -0
  30. procesio_cli/agents/procesio/IMPLEMENTATION-PATTERNS/04-DATABASE.md +293 -0
  31. procesio_cli/agents/procesio/PROCESIO-API-RELIABILITY-DOCTRINE.md +113 -0
  32. procesio_cli/agents/procesio/PROCESIO-BEST-PRACTICES.md +316 -0
  33. procesio_cli/agents/procesio/PROCESIO-BUILD-AND-TEST-PLAYBOOK.md +217 -0
  34. procesio_cli/agents/procesio/PROCESIO-DATASTORE.md +72 -0
  35. procesio_cli/agents/procesio/PROCESIO-ENVIRONMENTS.md +62 -0
  36. procesio_cli/agents/procesio/PROCESIO-SCHEDULING.md +47 -0
  37. procesio_cli/agents/procesio/PROCESIO-VISUAL-ORGANIZATION.md +175 -0
  38. procesio_cli/agents/procesio/README.md +97 -0
  39. procesio_cli/agents/procesio/__init__.py +0 -0
  40. procesio_cli/agents/procesio/agent.yaml +73 -0
  41. procesio_cli/agents/procesio/audit.py +226 -0
  42. procesio_cli/agents/procesio/checklist.py +135 -0
  43. procesio_cli/agents/procesio/context.py +19 -0
  44. procesio_cli/agents/procesio/handlers/__init__.py +0 -0
  45. procesio_cli/agents/procesio/handlers/audit.py +39 -0
  46. procesio_cli/agents/procesio/handlers/checklist.py +34 -0
  47. procesio_cli/agents/procesio/handlers/guidance.py +36 -0
  48. procesio_cli/agents/procesio/handlers/status.py +33 -0
  49. procesio_cli/agents/procesio/handlers/verify.py +39 -0
  50. procesio_cli/agents/procesio/knowledge.py +115 -0
  51. procesio_cli/agents/procesio/main.py +89 -0
  52. procesio_cli/agents/procesio/tests/__init__.py +0 -0
  53. procesio_cli/agents/procesio/tests/conftest.py +62 -0
  54. procesio_cli/agents/procesio/tests/test_audit.py +91 -0
  55. procesio_cli/agents/procesio/tests/test_checklist.py +28 -0
  56. procesio_cli/agents/procesio/tests/test_guidance.py +78 -0
  57. procesio_cli/agents/procesio/tests/test_manifest_sync.py +48 -0
  58. procesio_cli/agents/procesio/tests/test_verify.py +134 -0
  59. procesio_cli/agents/procesio/tests/test_workspace_scope.py +97 -0
  60. procesio_cli/agents/procesio/verifylib.py +222 -0
  61. procesio_cli/dashboard/README.md +117 -0
  62. procesio_cli/dashboard/__init__.py +18 -0
  63. procesio_cli/dashboard/serve.py +98 -0
  64. procesio_cli/dashboard/server/__init__.py +1 -0
  65. procesio_cli/dashboard/server/config_schemas.py +92 -0
  66. procesio_cli/dashboard/server/google.py +103 -0
  67. procesio_cli/dashboard/server/handler.py +160 -0
  68. procesio_cli/dashboard/server/inventory.py +213 -0
  69. procesio_cli/dashboard/server/jobs.py +118 -0
  70. procesio_cli/dashboard/server/llmtest.py +181 -0
  71. procesio_cli/dashboard/server/procesio_env.py +94 -0
  72. procesio_cli/dashboard/server/routes.py +74 -0
  73. procesio_cli/dashboard/server/runner.py +150 -0
  74. procesio_cli/dashboard/server/security.py +29 -0
  75. procesio_cli/dashboard/server/setup.py +211 -0
  76. procesio_cli/dashboard/server/validate.py +152 -0
  77. procesio_cli/dashboard/tests/conftest.py +16 -0
  78. procesio_cli/dashboard/tests/test_dashboard.py +225 -0
  79. procesio_cli/dashboard/tests/test_procesio_env.py +159 -0
  80. procesio_cli/dashboard/web/actions.js +274 -0
  81. procesio_cli/dashboard/web/api.js +79 -0
  82. procesio_cli/dashboard/web/app.js +385 -0
  83. procesio_cli/dashboard/web/copilot.js +72 -0
  84. procesio_cli/dashboard/web/google.js +121 -0
  85. procesio_cli/dashboard/web/index.html +67 -0
  86. procesio_cli/dashboard/web/procesio_env.js +187 -0
  87. procesio_cli/dashboard/web/styles.css +207 -0
  88. procesio_cli/registry.py +370 -0
  89. procesio_cli/scripts/build-router.py +249 -0
  90. procesio_cli/scripts/build-tool-skill.py +202 -0
  91. procesio_cli/scripts/check-requirements.py +131 -0
  92. procesio_cli/scripts/check-skill-governance.py +174 -0
  93. procesio_cli/scripts/evaluate-skill-routing.py +217 -0
  94. procesio_cli/scripts/evaluate-skills.py +316 -0
  95. procesio_cli/scripts/get-skill.py +122 -0
  96. procesio_cli/scripts/list-skills.py +68 -0
  97. procesio_cli/scripts/list-tools.py +73 -0
  98. procesio_cli/scripts/run-agent.py +59 -0
  99. procesio_cli/scripts/run-tool.py +123 -0
  100. procesio_cli/scripts/secret_scan.py +584 -0
  101. procesio_cli/scripts/set-credential.py +126 -0
  102. procesio_cli/scripts/validate-skills.py +530 -0
  103. procesio_cli/skills/PORTFOLIO.md +134 -0
  104. procesio_cli/skills/__init__.py +6 -0
  105. procesio_cli/skills/agent-skill-engineer/SKILL.md +226 -0
  106. procesio_cli/skills/agent-skill-engineer/evals/evals.json +422 -0
  107. procesio_cli/skills/agent-skill-engineer/references/authoring-standard.md +178 -0
  108. procesio_cli/skills/agent-skill-engineer/references/decision-framework.md +107 -0
  109. procesio_cli/skills/agent-skill-engineer/references/domain-evidence-protocol.md +248 -0
  110. procesio_cli/skills/agent-skill-engineer/references/evaluation-standard.md +191 -0
  111. procesio_cli/skills/agent-skill-engineer/references/expert-lenses.md +167 -0
  112. procesio_cli/skills/agent-skill-engineer/references/field-gate-standard.md +231 -0
  113. procesio_cli/skills/agent-skill-engineer/references/optimization-protocol.md +233 -0
  114. procesio_cli/skills/agent-skill-engineer/references/optimizer-contract.md +268 -0
  115. procesio_cli/skills/agent-skill-engineer/references/portability-standard.md +99 -0
  116. procesio_cli/skills/agent-skill-engineer/references/research-basis.md +128 -0
  117. procesio_cli/skills/agent-skill-engineer/references/review-standard.md +143 -0
  118. procesio_cli/skills/agent-skill-engineer/scripts/audit_skill.py +959 -0
  119. procesio_cli/skills/agent-skill-engineer/scripts/optimize_skill.py +891 -0
  120. procesio_cli/skills/agent-skill-engineer/scripts/scaffold_skill.py +397 -0
  121. procesio_cli/skills/evals/baseline-catalog.json +14 -0
  122. procesio_cli/skills/evals/baseline-routing-v2.json +38 -0
  123. procesio_cli/skills/evals/baseline.json +37 -0
  124. procesio_cli/skills/evals/behavioral.json +367 -0
  125. procesio_cli/skills/evals/field-boundary-development-v1.json +126 -0
  126. procesio_cli/skills/evals/field-closeout-correction-development-v1.json +23 -0
  127. procesio_cli/skills/evals/field-closeout-development-v1.json +89 -0
  128. procesio_cli/skills/evals/portfolio-pressure-training-v1.json +83 -0
  129. procesio_cli/skills/evals/routing.json +363 -0
  130. procesio_cli/skills/evals/validation-baseline.json +4 -0
  131. procesio_cli/skills/procesio-cli/SKILL.md +134 -0
  132. procesio_cli/skills/procesio-cli/evals/evals.json +111 -0
  133. procesio_cli/skills/procesio-cli/evals/workflows.json +16 -0
  134. procesio_cli/skills/procesio-cli/references/connector-lifecycle.md +47 -0
  135. procesio_cli/skills/procesio-cli/references/credentials-admin.md +113 -0
  136. procesio_cli/skills/procesio-cli/references/data-verification.md +71 -0
  137. procesio_cli/skills/procesio-cli/references/documents-files.md +44 -0
  138. procesio_cli/skills/procesio-cli/references/form-e2e.md +57 -0
  139. procesio_cli/skills/procesio-cli/references/operation-contract.md +138 -0
  140. procesio_cli/skills/procesio-cli/references/process-debugging.md +65 -0
  141. procesio_cli/skills/procesio-cli/references/process-lifecycle.md +88 -0
  142. procesio_cli/skills/procesio-cli/references/schedules-webhooks.md +58 -0
  143. procesio_cli/skills/procesio-cli/references/transport-environments.md +53 -0
  144. procesio_cli/skills/procesio-cli-maintainer/SKILL.md +84 -0
  145. procesio_cli/skills/procesio-cli-maintainer/evals/evals.json +116 -0
  146. procesio_cli/skills/procesio-cli-maintainer/references/change-contract.md +34 -0
  147. procesio_cli/skills/procesio-cli-maintainer/references/mcp-compatibility.md +13 -0
  148. procesio_cli/skills/procesio-cli-maintainer/references/skill-authoring.md +51 -0
  149. procesio_cli/skills/procesio-platform-advisor/SKILL.md +82 -0
  150. procesio_cli/skills/procesio-platform-advisor/evals/evals.json +116 -0
  151. procesio_cli/skills/procesio-platform-advisor/references/capability-map.md +22 -0
  152. procesio_cli/skills/procesio-platform-advisor/references/fit-framework.md +35 -0
  153. procesio_cli/skills/procesio-platform-advisor/references/freshness-policy.md +25 -0
  154. procesio_cli/skills/procesio-platform-advisor/references/sizing-method.md +70 -0
  155. procesio_cli/skills/procesio-platform-advisor/scripts/estimate_capacity.py +99 -0
  156. procesio_cli/skills/procesio-setup/SKILL.md +180 -0
  157. procesio_cli/skills/sql-server-optimizer/SKILL.md +86 -0
  158. procesio_cli/skills/sql-server-optimizer/evals/evals.json +116 -0
  159. procesio_cli/skills/sql-server-optimizer/references/db-context.md +44 -0
  160. procesio_cli/skills/sql-server-optimizer/references/generic-mode.md +32 -0
  161. procesio_cli/skills/sql-server-optimizer/references/procesio-mode.md +40 -0
  162. procesio_cli/skills/sql-server-optimizer/references/sql-rules.md +43 -0
  163. procesio_cli/skills/sql-server-optimizer/scripts/export-indexes.sql +178 -0
  164. procesio_cli/skills/sql-server-optimizer/scripts/export-procs-and-functions.sql +118 -0
  165. procesio_cli/skills/sql-server-optimizer/scripts/export-tables.sql +367 -0
  166. procesio_cli/skills/tests/__init__.py +0 -0
  167. procesio_cli/skills/tests/test_agent_skill_engineer.py +240 -0
  168. procesio_cli/skills/tests/test_auth_failure_stop.py +25 -0
  169. procesio_cli/skills/tests/test_capacity_estimator.py +85 -0
  170. procesio_cli/skills/tests/test_field_boundary_learning.py +100 -0
  171. procesio_cli/skills/tests/test_field_closeout_learning.py +123 -0
  172. procesio_cli/skills/tests/test_field_gate_standard.py +76 -0
  173. procesio_cli/skills/tests/test_operational_playbooks.py +51 -0
  174. procesio_cli/skills/tests/test_portfolio_pressure_training.py +35 -0
  175. procesio_cli/skills/tests/test_process_lifecycle_single_run.py +25 -0
  176. procesio_cli/skills/tests/test_skill_evaluator.py +67 -0
  177. procesio_cli/skills/tests/test_skill_optimizer.py +473 -0
  178. procesio_cli/skills/tests/test_skill_portfolio_review.py +70 -0
  179. procesio_cli/skills/tests/test_skill_release_binding.py +204 -0
  180. procesio_cli/skills/tests/test_skill_routing.py +74 -0
  181. procesio_cli/skills/tests/test_skill_scaffold_v2.py +116 -0
  182. procesio_cli/skills/tests/test_validate_skills.py +115 -0
  183. procesio_cli/tools/__init__.py +0 -0
  184. procesio_cli/tools/_lib/README.md +119 -0
  185. procesio_cli/tools/_lib/__init__.py +0 -0
  186. procesio_cli/tools/_lib/accounting.py +120 -0
  187. procesio_cli/tools/_lib/contacts.py +544 -0
  188. procesio_cli/tools/_lib/creds.py +83 -0
  189. procesio_cli/tools/_lib/creds_backends.py +578 -0
  190. procesio_cli/tools/_lib/dbprofiles.py +147 -0
  191. procesio_cli/tools/_lib/dbquery.py +286 -0
  192. procesio_cli/tools/_lib/dbschema.py +225 -0
  193. procesio_cli/tools/_lib/io.py +54 -0
  194. procesio_cli/tools/_lib/manifest.py +297 -0
  195. procesio_cli/tools/_lib/skill_release.py +127 -0
  196. procesio_cli/tools/_lib/skill_resources.py +118 -0
  197. procesio_cli/tools/_lib/userdata.py +228 -0
  198. procesio_cli/tools/_lib/webserialize/__init__.py +16 -0
  199. procesio_cli/tools/_lib/webserialize/admin.py +61 -0
  200. procesio_cli/tools/_lib/webserialize/client.py +264 -0
  201. procesio_cli/tools/_lib/webserialize/config.py +96 -0
  202. procesio_cli/tools/_lib/webserialize/errors.py +27 -0
  203. procesio_cli/tools/_lib/webserialize/framing.py +45 -0
  204. procesio_cli/tools/_lib/webserialize/registry.py +47 -0
  205. procesio_cli/tools/_lib/webserialize/runtime.py +61 -0
  206. procesio_cli/tools/_lib/webserialize/server.py +510 -0
  207. procesio_cli/tools/_lib/websession.py +194 -0
  208. procesio_cli/tools/connector-builder/CONNECTOR-BUILDER-API-NOTES.md +91 -0
  209. procesio_cli/tools/connector-builder/README.md +101 -0
  210. procesio_cli/tools/connector-builder/SKILL.md +248 -0
  211. procesio_cli/tools/connector-builder/__init__.py +7 -0
  212. procesio_cli/tools/connector-builder/actiondef.py +24 -0
  213. procesio_cli/tools/connector-builder/client.py +251 -0
  214. procesio_cli/tools/connector-builder/errors.py +44 -0
  215. procesio_cli/tools/connector-builder/gen_manifest.py +142 -0
  216. procesio_cli/tools/connector-builder/handlers/__init__.py +1 -0
  217. procesio_cli/tools/connector-builder/handlers/admin.py +182 -0
  218. procesio_cli/tools/connector-builder/handlers/auth.py +74 -0
  219. procesio_cli/tools/connector-builder/handlers/builds.py +396 -0
  220. procesio_cli/tools/connector-builder/handlers/common.py +104 -0
  221. procesio_cli/tools/connector-builder/handlers/files.py +111 -0
  222. procesio_cli/tools/connector-builder/handlers/raw.py +38 -0
  223. procesio_cli/tools/connector-builder/handlers/telemetry.py +39 -0
  224. procesio_cli/tools/connector-builder/main.py +94 -0
  225. procesio_cli/tools/connector-builder/tests/conftest.py +146 -0
  226. procesio_cli/tools/connector-builder/tests/test_cb_client.py +86 -0
  227. procesio_cli/tools/connector-builder/tests/test_cb_dispatch.py +105 -0
  228. procesio_cli/tools/connector-builder/tests/test_cb_manifest_sync.py +76 -0
  229. procesio_cli/tools/connector-builder/tests/test_cb_wait.py +123 -0
  230. procesio_cli/tools/connector-builder/tool.yaml +671 -0
  231. procesio_cli/tools/framework-map/.gitattributes +2 -0
  232. procesio_cli/tools/framework-map/README.md +98 -0
  233. procesio_cli/tools/framework-map/SKILL.md +30 -0
  234. procesio_cli/tools/framework-map/app.js +188 -0
  235. procesio_cli/tools/framework-map/fm_builder.py +476 -0
  236. procesio_cli/tools/framework-map/fm_catalog.py +19 -0
  237. procesio_cli/tools/framework-map/fm_ro_catalog.py +94 -0
  238. procesio_cli/tools/framework-map/fm_strings.py +101 -0
  239. procesio_cli/tools/framework-map/main.py +95 -0
  240. procesio_cli/tools/framework-map/styles.css +214 -0
  241. procesio_cli/tools/framework-map/tests/conftest.py +33 -0
  242. procesio_cli/tools/framework-map/tests/test_fm_build.py +126 -0
  243. procesio_cli/tools/framework-map/tests/test_fm_manifest_sync.py +63 -0
  244. procesio_cli/tools/framework-map/tests/test_fm_store_tree.py +75 -0
  245. procesio_cli/tools/framework-map/tool.yaml +61 -0
  246. procesio_cli/tools/mysql/MOVED-TO-CENTRAL.md +29 -0
  247. procesio_cli/tools/mysql/README.md +196 -0
  248. procesio_cli/tools/mysql/SKILL.md +37 -0
  249. procesio_cli/tools/mysql/__init__.py +0 -0
  250. procesio_cli/tools/mysql/connection.py +191 -0
  251. procesio_cli/tools/mysql/main.py +487 -0
  252. procesio_cli/tools/mysql/profiles.template.json +1 -0
  253. procesio_cli/tools/mysql/schema.py +434 -0
  254. procesio_cli/tools/mysql/tests/__init__.py +0 -0
  255. procesio_cli/tools/mysql/tests/conftest.py +21 -0
  256. procesio_cli/tools/mysql/tests/test_manifest_sync.py +68 -0
  257. procesio_cli/tools/mysql/tests/test_mysql.py +201 -0
  258. procesio_cli/tools/mysql/tests/test_mysql_schema.py +337 -0
  259. procesio_cli/tools/mysql/tool.yaml +112 -0
  260. procesio_cli/tools/procesio/DTO-SUBTOOLS-NOTE.md +360 -0
  261. procesio_cli/tools/procesio/FORM-DEV-GUIDE/00-INDEX.md +67 -0
  262. procesio_cli/tools/procesio/FORM-DEV-GUIDE/01-ANATOMY.md +209 -0
  263. procesio_cli/tools/procesio/FORM-DEV-GUIDE/02-CODE-INJECTION.md +309 -0
  264. procesio_cli/tools/procesio/FORM-DEV-GUIDE/03-DOM-CONTRACT.md +370 -0
  265. procesio_cli/tools/procesio/FORM-DEV-GUIDE/04-INTERACTION-RECIPES.md +600 -0
  266. procesio_cli/tools/procesio/FORM-DEV-GUIDE/05-STEPPER-AND-MOTION.md +426 -0
  267. procesio_cli/tools/procesio/FORM-DEV-GUIDE/06-PROCESS-INTEGRATION.md +347 -0
  268. procesio_cli/tools/procesio/FORM-DEV-GUIDE/07-DEPLOY-WORKFLOW.md +294 -0
  269. procesio_cli/tools/procesio/FORM-DEV-GUIDE/08-PITFALLS.md +569 -0
  270. procesio_cli/tools/procesio/FORM-DEV-GUIDE/09-NAVIGATION-AND-HOSTING.md +308 -0
  271. procesio_cli/tools/procesio/PHASE4-E2E-NOTES.md +594 -0
  272. procesio_cli/tools/procesio/PROCESIO-API-CORRECTIONS.md +295 -0
  273. procesio_cli/tools/procesio/PROCESIO-API-NOTES.md +6976 -0
  274. procesio_cli/tools/procesio/PROCESIO-AUTH-NOTES.md +226 -0
  275. procesio_cli/tools/procesio/PROCESIO-CARD-BUILD-NOTES.md +183 -0
  276. procesio_cli/tools/procesio/PROCESIO-CONNECTORS-NOTES.md +141 -0
  277. procesio_cli/tools/procesio/PROCESIO-CUSTOM-ACTION-NOTES.md +179 -0
  278. procesio_cli/tools/procesio/PROCESIO-DOCS-FIX-REPORT.md +123 -0
  279. procesio_cli/tools/procesio/PROCESIO-ENVIRONMENTS-NOTES.md +94 -0
  280. procesio_cli/tools/procesio/PROCESIO-FE-VALIDATION-NOTES.md +107 -0
  281. procesio_cli/tools/procesio/PROCESIO-FOREACH-NOTES.md +199 -0
  282. procesio_cli/tools/procesio/PROCESIO-FORM-API-HANG-NOTE.md +101 -0
  283. procesio_cli/tools/procesio/PROCESIO-FORM-SUBMISSION-NOTES.md +172 -0
  284. procesio_cli/tools/procesio/PROCESIO-HTML-TO-DOCX-NOTES.md +110 -0
  285. procesio_cli/tools/procesio/PROCESIO-INSTANCE-HISTORY-NOTES.md +242 -0
  286. procesio_cli/tools/procesio/PROCESIO-METERING-NOTES.md +201 -0
  287. procesio_cli/tools/procesio/PROCESIO-NODE-CODE-NOTES.md +279 -0
  288. procesio_cli/tools/procesio/PROCESIO-NODE-MODULE-WHITELIST.md +113 -0
  289. procesio_cli/tools/procesio/PROCESIO-PYTHON-ACTION-NOTES.md +165 -0
  290. procesio_cli/tools/procesio/PROCESIO-QUERY-STORE-NOTES.md +826 -0
  291. procesio_cli/tools/procesio/PROCESIO-RECONCILIATION-PATTERNS.md +104 -0
  292. procesio_cli/tools/procesio/PROCESIO-RESOURCE-MODEL-NOTES.md +1100 -0
  293. procesio_cli/tools/procesio/PROCESIO-SEND-EMAIL-CRED-OPTIONALITY.md +45 -0
  294. procesio_cli/tools/procesio/PROCESIO-SEND-EMAIL-NOTES.md +252 -0
  295. procesio_cli/tools/procesio/PROCESIO-SQL-ACTIONS-NOTES.md +284 -0
  296. procesio_cli/tools/procesio/PROCESIO-USAGE-GUIDE.md +219 -0
  297. procesio_cli/tools/procesio/README.md +341 -0
  298. procesio_cli/tools/procesio/SCHEDULE-INPUT-SECURITY-NOTES.md +63 -0
  299. procesio_cli/tools/procesio/SKILL.md +694 -0
  300. procesio_cli/tools/procesio/__init__.py +1 -0
  301. procesio_cli/tools/procesio/actiondef.py +27 -0
  302. procesio_cli/tools/procesio/assets/html2docx/html2docx.js +2155 -0
  303. procesio_cli/tools/procesio/auth.py +354 -0
  304. procesio_cli/tools/procesio/autogen.py +121 -0
  305. procesio_cli/tools/procesio/client.py +355 -0
  306. procesio_cli/tools/procesio/config.py +96 -0
  307. procesio_cli/tools/procesio/data/endpoints.json +2901 -0
  308. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/01-authentication.md +180 -0
  309. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/02-conventions.md +116 -0
  310. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/ANONYMOUS-SURFACE.md +51 -0
  311. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/README.md +104 -0
  312. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/SYMBOL-INDEX.md +444 -0
  313. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/03-auth-users-workspaces.md +731 -0
  314. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/04-processes.md +913 -0
  315. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/05-actions.md +605 -0
  316. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/06-files.md +237 -0
  317. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/07-forms-documents.md +985 -0
  318. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/08-credentials.md +532 -0
  319. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/09-datastore-datatypes.md +830 -0
  320. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/10-custom-urls.md +319 -0
  321. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/11-subscriptions-resources-analytics.md +455 -0
  322. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/12-webhooks-notifications-misc.md +519 -0
  323. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/13-realtime-signalr.md +153 -0
  324. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/99-internal-and-other-services.md +52 -0
  325. procesio_cli/tools/procesio/docs_info/FormBuilder mock.ts +5725 -0
  326. procesio_cli/tools/procesio/docs_info/Procesio Platform Actions.json +30219 -0
  327. procesio_cli/tools/procesio/docs_info/form-config-enums.ts +92 -0
  328. procesio_cli/tools/procesio/docs_info/form-theme.ts +1603 -0
  329. procesio_cli/tools/procesio/docs_info/process-validation-reference-1.md +2739 -0
  330. procesio_cli/tools/procesio/dto/__init__.py +13 -0
  331. procesio_cli/tools/procesio/dto/credential/builder.py +179 -0
  332. procesio_cli/tools/procesio/dto/credential/config.schema.json +19 -0
  333. procesio_cli/tools/procesio/dto/credential/description.md +193 -0
  334. procesio_cli/tools/procesio/dto/credential/fixtures/rest.config.json +11 -0
  335. procesio_cli/tools/procesio/dto/credential/fixtures/rest.dto.json +28 -0
  336. procesio_cli/tools/procesio/dto/credential/fixtures/rest.template.json +44 -0
  337. procesio_cli/tools/procesio/dto/credential/template.dto.json +16 -0
  338. procesio_cli/tools/procesio/dto/data/_refresh.py +147 -0
  339. procesio_cli/tools/procesio/dto/data/action_catalog.json +30825 -0
  340. procesio_cli/tools/procesio/dto/data/action_families.json +55 -0
  341. procesio_cli/tools/procesio/dto/data/platform_types.json +182 -0
  342. procesio_cli/tools/procesio/dto/datatype/builder.py +223 -0
  343. procesio_cli/tools/procesio/dto/datatype/config.schema.json +47 -0
  344. procesio_cli/tools/procesio/dto/datatype/description.md +85 -0
  345. procesio_cli/tools/procesio/dto/datatype/fixtures/customer.config.json +41 -0
  346. procesio_cli/tools/procesio/dto/datatype/fixtures/customer.dto.json +164 -0
  347. procesio_cli/tools/procesio/dto/datatype/template.dto.json +37 -0
  348. procesio_cli/tools/procesio/dto/document/builder.py +193 -0
  349. procesio_cli/tools/procesio/dto/document/config.schema.json +33 -0
  350. procesio_cli/tools/procesio/dto/document/description.md +124 -0
  351. procesio_cli/tools/procesio/dto/document/fixtures/invoice.config.json +16 -0
  352. procesio_cli/tools/procesio/dto/document/fixtures/invoice.dto.json +32 -0
  353. procesio_cli/tools/procesio/dto/document/template.dto.json +14 -0
  354. procesio_cli/tools/procesio/dto/form/FORM-STYLING-NOTES.md +142 -0
  355. procesio_cli/tools/procesio/dto/form/GOLDEN-DRIFT-NOTES.md +72 -0
  356. procesio_cli/tools/procesio/dto/form/RUN-PROCESS-RESULT-NOTES.md +80 -0
  357. procesio_cli/tools/procesio/dto/form/addelement.py +277 -0
  358. procesio_cli/tools/procesio/dto/form/builder.py +1009 -0
  359. procesio_cli/tools/procesio/dto/form/capture_goldens.py +106 -0
  360. procesio_cli/tools/procesio/dto/form/code_cipher.py +67 -0
  361. procesio_cli/tools/procesio/dto/form/config.schema.json +76 -0
  362. procesio_cli/tools/procesio/dto/form/data_shell.json +1 -0
  363. procesio_cli/tools/procesio/dto/form/description.md +346 -0
  364. procesio_cli/tools/procesio/dto/form/elements/approval.json +259 -0
  365. procesio_cli/tools/procesio/dto/form/elements/assignee.json +137 -0
  366. procesio_cli/tools/procesio/dto/form/elements/button.json +125 -0
  367. procesio_cli/tools/procesio/dto/form/elements/chart.json +341 -0
  368. procesio_cli/tools/procesio/dto/form/elements/chat.json +199 -0
  369. procesio_cli/tools/procesio/dto/form/elements/checkbox.json +153 -0
  370. procesio_cli/tools/procesio/dto/form/elements/column.json +77 -0
  371. procesio_cli/tools/procesio/dto/form/elements/columns.json +78 -0
  372. procesio_cli/tools/procesio/dto/form/elements/datetime-input.json +304 -0
  373. procesio_cli/tools/procesio/dto/form/elements/divider.json +54 -0
  374. procesio_cli/tools/procesio/dto/form/elements/dropdown.json +130 -0
  375. procesio_cli/tools/procesio/dto/form/elements/dynamic-table-row.json +253 -0
  376. procesio_cli/tools/procesio/dto/form/elements/file-upload.json +196 -0
  377. procesio_cli/tools/procesio/dto/form/elements/file-viewer.json +169 -0
  378. procesio_cli/tools/procesio/dto/form/elements/heading.json +79 -0
  379. procesio_cli/tools/procesio/dto/form/elements/icon.json +107 -0
  380. procesio_cli/tools/procesio/dto/form/elements/image.json +174 -0
  381. procesio_cli/tools/procesio/dto/form/elements/input.json +206 -0
  382. procesio_cli/tools/procesio/dto/form/elements/list.json +202 -0
  383. procesio_cli/tools/procesio/dto/form/elements/number-input.json +202 -0
  384. procesio_cli/tools/procesio/dto/form/elements/paragraph.json +79 -0
  385. procesio_cli/tools/procesio/dto/form/elements/radiobox.json +174 -0
  386. procesio_cli/tools/procesio/dto/form/elements/section.json +114 -0
  387. procesio_cli/tools/procesio/dto/form/elements/select.json +217 -0
  388. procesio_cli/tools/procesio/dto/form/elements/side-panel.json +146 -0
  389. procesio_cli/tools/procesio/dto/form/elements/signature-pad.json +141 -0
  390. procesio_cli/tools/procesio/dto/form/elements/static-table-row.json +84 -0
  391. procesio_cli/tools/procesio/dto/form/elements/step.json +105 -0
  392. procesio_cli/tools/procesio/dto/form/elements/stepper.json +126 -0
  393. procesio_cli/tools/procesio/dto/form/elements/tab.json +77 -0
  394. procesio_cli/tools/procesio/dto/form/elements/table.json +279 -0
  395. procesio_cli/tools/procesio/dto/form/elements/tabs.json +114 -0
  396. procesio_cli/tools/procesio/dto/form/elements/textarea.json +213 -0
  397. procesio_cli/tools/procesio/dto/form/enum_map.json +68 -0
  398. procesio_cli/tools/procesio/dto/form/fieldpath.py +284 -0
  399. procesio_cli/tools/procesio/dto/form/fixtures/reg.config.json +32 -0
  400. procesio_cli/tools/procesio/dto/form/fixtures/reg.elements.json +638 -0
  401. procesio_cli/tools/procesio/dto/form/sync_from_mock.py +386 -0
  402. procesio_cli/tools/procesio/dto/framework.py +125 -0
  403. procesio_cli/tools/procesio/dto/process/builder.py +1991 -0
  404. procesio_cli/tools/procesio/dto/process/config.schema.json +159 -0
  405. procesio_cli/tools/procesio/dto/process/description.md +218 -0
  406. procesio_cli/tools/procesio/dto/process/fixtures/greet.config.json +32 -0
  407. procesio_cli/tools/procesio/dto/process/fixtures/greet.dto.json +317 -0
  408. procesio_cli/tools/procesio/dto/process/naming.py +305 -0
  409. procesio_cli/tools/procesio/dto/process/normalize.py +74 -0
  410. procesio_cli/tools/procesio/dto/process/template.dto.json +32 -0
  411. procesio_cli/tools/procesio/dto/refdata.py +87 -0
  412. procesio_cli/tools/procesio/dto/registry.py +27 -0
  413. procesio_cli/tools/procesio/dto/webhook/builder.py +142 -0
  414. procesio_cli/tools/procesio/dto/webhook/config.schema.json +25 -0
  415. procesio_cli/tools/procesio/dto/webhook/description.md +92 -0
  416. procesio_cli/tools/procesio/dto/webhook/fixtures/order.config.json +10 -0
  417. procesio_cli/tools/procesio/dto/webhook/fixtures/order.dto.json +25 -0
  418. procesio_cli/tools/procesio/dto/webhook/template.dto.json +14 -0
  419. procesio_cli/tools/procesio/environments.py +264 -0
  420. procesio_cli/tools/procesio/errors.py +166 -0
  421. procesio_cli/tools/procesio/flowmodel/README.md +37 -0
  422. procesio_cli/tools/procesio/flowmodel/__init__.py +14 -0
  423. procesio_cli/tools/procesio/flowmodel/digest.py +223 -0
  424. procesio_cli/tools/procesio/flowmodel/families.py +34 -0
  425. procesio_cli/tools/procesio/flowmodel/fevalidation.py +1098 -0
  426. procesio_cli/tools/procesio/flowmodel/formdigest.py +232 -0
  427. procesio_cli/tools/procesio/flowmodel/inspect.py +78 -0
  428. procesio_cli/tools/procesio/flowmodel/model.py +82 -0
  429. procesio_cli/tools/procesio/flowmodel/nodeparam.py +871 -0
  430. procesio_cli/tools/procesio/flowmodel/reader.py +191 -0
  431. procesio_cli/tools/procesio/flowmodel/sqlparam.py +410 -0
  432. procesio_cli/tools/procesio/form_code_keys.py +50 -0
  433. procesio_cli/tools/procesio/formlint.py +292 -0
  434. procesio_cli/tools/procesio/gen_manifest.py +118 -0
  435. procesio_cli/tools/procesio/handlers/__init__.py +1 -0
  436. procesio_cli/tools/procesio/handlers/auth_actions.py +103 -0
  437. procesio_cli/tools/procesio/handlers/catalog.py +147 -0
  438. procesio_cli/tools/procesio/handlers/common.py +90 -0
  439. procesio_cli/tools/procesio/handlers/customaction_ops.py +146 -0
  440. procesio_cli/tools/procesio/handlers/datastore_ops.py +482 -0
  441. procesio_cli/tools/procesio/handlers/datatype_ops.py +275 -0
  442. procesio_cli/tools/procesio/handlers/dto_actions.py +258 -0
  443. procesio_cli/tools/procesio/handlers/environment_admin.py +146 -0
  444. procesio_cli/tools/procesio/handlers/fevalidate.py +236 -0
  445. procesio_cli/tools/procesio/handlers/files.py +141 -0
  446. procesio_cli/tools/procesio/handlers/flowgraph.py +229 -0
  447. procesio_cli/tools/procesio/handlers/flowlint.py +269 -0
  448. procesio_cli/tools/procesio/handlers/form_chains.py +336 -0
  449. procesio_cli/tools/procesio/handlers/form_code.py +277 -0
  450. procesio_cli/tools/procesio/handlers/form_element.py +199 -0
  451. procesio_cli/tools/procesio/handlers/form_events.py +441 -0
  452. procesio_cli/tools/procesio/handlers/form_update.py +270 -0
  453. procesio_cli/tools/procesio/handlers/formprocess.py +211 -0
  454. procesio_cli/tools/procesio/handlers/generic.py +135 -0
  455. procesio_cli/tools/procesio/handlers/layout.py +137 -0
  456. procesio_cli/tools/procesio/handlers/nodeparams.py +1018 -0
  457. procesio_cli/tools/procesio/handlers/process_layout.py +189 -0
  458. procesio_cli/tools/procesio/handlers/process_naming.py +213 -0
  459. procesio_cli/tools/procesio/handlers/processes.py +416 -0
  460. procesio_cli/tools/procesio/handlers/profile_admin.py +184 -0
  461. procesio_cli/tools/procesio/handlers/resource_ops.py +447 -0
  462. procesio_cli/tools/procesio/handlers/schedules.py +320 -0
  463. procesio_cli/tools/procesio/handlers/sqlactions.py +232 -0
  464. procesio_cli/tools/procesio/handlers/transport.py +463 -0
  465. procesio_cli/tools/procesio/handlers/usageguide.py +222 -0
  466. procesio_cli/tools/procesio/layout/README.md +196 -0
  467. procesio_cli/tools/procesio/layout/__init__.py +11 -0
  468. procesio_cli/tools/procesio/layout/adapter.py +736 -0
  469. procesio_cli/tools/procesio/layout/cycles.py +186 -0
  470. procesio_cli/tools/procesio/layout/dispatch.py +39 -0
  471. procesio_cli/tools/procesio/layout/elk/elk_runner.mjs +50 -0
  472. procesio_cli/tools/procesio/layout/elk/package-lock.json +21 -0
  473. procesio_cli/tools/procesio/layout/elk/package.json +11 -0
  474. procesio_cli/tools/procesio/layout/elk_engine.py +568 -0
  475. procesio_cli/tools/procesio/layout/engine.py +1311 -0
  476. procesio_cli/tools/procesio/layout/report.py +187 -0
  477. procesio_cli/tools/procesio/main.py +179 -0
  478. procesio_cli/tools/procesio/profiles.py +193 -0
  479. procesio_cli/tools/procesio/reliability.py +193 -0
  480. procesio_cli/tools/procesio/sqlformat.py +167 -0
  481. procesio_cli/tools/procesio/swagger.py +51 -0
  482. procesio_cli/tools/procesio/tests/__init__.py +0 -0
  483. procesio_cli/tools/procesio/tests/conftest.py +129 -0
  484. procesio_cli/tools/procesio/tests/test_auth.py +200 -0
  485. procesio_cli/tools/procesio/tests/test_autogen.py +78 -0
  486. procesio_cli/tools/procesio/tests/test_builder_attrpath_sqlbind.py +180 -0
  487. procesio_cli/tools/procesio/tests/test_builder_custom_action_catalog.py +72 -0
  488. procesio_cli/tools/procesio/tests/test_client.py +114 -0
  489. procesio_cli/tools/procesio/tests/test_client_reliability.py +139 -0
  490. procesio_cli/tools/procesio/tests/test_customaction.py +103 -0
  491. procesio_cli/tools/procesio/tests/test_customaction_test.py +80 -0
  492. procesio_cli/tools/procesio/tests/test_cycles.py +69 -0
  493. procesio_cli/tools/procesio/tests/test_datastore.py +378 -0
  494. procesio_cli/tools/procesio/tests/test_datastore_node.py +94 -0
  495. procesio_cli/tools/procesio/tests/test_dispatch.py +170 -0
  496. procesio_cli/tools/procesio/tests/test_document_page_size.py +19 -0
  497. procesio_cli/tools/procesio/tests/test_dto.py +734 -0
  498. procesio_cli/tools/procesio/tests/test_edit_dryrun_preview.py +96 -0
  499. procesio_cli/tools/procesio/tests/test_elk_layout.py +221 -0
  500. procesio_cli/tools/procesio/tests/test_environments.py +214 -0
  501. procesio_cli/tools/procesio/tests/test_fevalidate_gate.py +104 -0
  502. procesio_cli/tools/procesio/tests/test_fevalidation.py +317 -0
  503. procesio_cli/tools/procesio/tests/test_fieldpath_variables.py +87 -0
  504. procesio_cli/tools/procesio/tests/test_files.py +72 -0
  505. procesio_cli/tools/procesio/tests/test_flow_digest.py +202 -0
  506. procesio_cli/tools/procesio/tests/test_flowlint.py +114 -0
  507. procesio_cli/tools/procesio/tests/test_flowmodel.py +158 -0
  508. procesio_cli/tools/procesio/tests/test_form_add_element.py +256 -0
  509. procesio_cli/tools/procesio/tests/test_form_approval_gaps.py +319 -0
  510. procesio_cli/tools/procesio/tests/test_form_auto_names.py +60 -0
  511. procesio_cli/tools/procesio/tests/test_form_chains.py +217 -0
  512. procesio_cli/tools/procesio/tests/test_form_code_actions.py +188 -0
  513. procesio_cli/tools/procesio/tests/test_form_code_keys.py +92 -0
  514. procesio_cli/tools/procesio/tests/test_form_code_style.py +178 -0
  515. procesio_cli/tools/procesio/tests/test_form_delete_element.py +99 -0
  516. procesio_cli/tools/procesio/tests/test_form_element_config.py +141 -0
  517. procesio_cli/tools/procesio/tests/test_form_event_maps.py +135 -0
  518. procesio_cli/tools/procesio/tests/test_form_event_ops.py +376 -0
  519. procesio_cli/tools/procesio/tests/test_form_event_replace.py +86 -0
  520. procesio_cli/tools/procesio/tests/test_form_events.py +92 -0
  521. procesio_cli/tools/procesio/tests/test_form_parity.py +171 -0
  522. procesio_cli/tools/procesio/tests/test_form_select_source.py +74 -0
  523. procesio_cli/tools/procesio/tests/test_form_sync.py +35 -0
  524. procesio_cli/tools/procesio/tests/test_form_update.py +133 -0
  525. procesio_cli/tools/procesio/tests/test_formlint.py +155 -0
  526. procesio_cli/tools/procesio/tests/test_formlint_css_scope.py +38 -0
  527. procesio_cli/tools/procesio/tests/test_formlint_field_names.py +83 -0
  528. procesio_cli/tools/procesio/tests/test_guards.py +110 -0
  529. procesio_cli/tools/procesio/tests/test_hidden_setting_types.py +39 -0
  530. procesio_cli/tools/procesio/tests/test_html2docx_asset.py +132 -0
  531. procesio_cli/tools/procesio/tests/test_key_handle_terminology.py +45 -0
  532. procesio_cli/tools/procesio/tests/test_layout.py +574 -0
  533. procesio_cli/tools/procesio/tests/test_layout_report.py +88 -0
  534. procesio_cli/tools/procesio/tests/test_manifest_sync.py +68 -0
  535. procesio_cli/tools/procesio/tests/test_nodedelete.py +151 -0
  536. procesio_cli/tools/procesio/tests/test_nodeparam.py +826 -0
  537. procesio_cli/tools/procesio/tests/test_normalize.py +70 -0
  538. procesio_cli/tools/procesio/tests/test_payload_docs.py +86 -0
  539. procesio_cli/tools/procesio/tests/test_process_action_naming.py +170 -0
  540. procesio_cli/tools/procesio/tests/test_process_call_api_seed.py +46 -0
  541. procesio_cli/tools/procesio/tests/test_process_ext.py +373 -0
  542. procesio_cli/tools/procesio/tests/test_process_invariants.py +183 -0
  543. procesio_cli/tools/procesio/tests/test_process_layout.py +117 -0
  544. procesio_cli/tools/procesio/tests/test_process_naming.py +188 -0
  545. procesio_cli/tools/procesio/tests/test_process_query_store.py +172 -0
  546. procesio_cli/tools/procesio/tests/test_processinfo_variable.py +56 -0
  547. procesio_cli/tools/procesio/tests/test_profiles.py +127 -0
  548. procesio_cli/tools/procesio/tests/test_put_projects.py +41 -0
  549. procesio_cli/tools/procesio/tests/test_reliability.py +107 -0
  550. procesio_cli/tools/procesio/tests/test_removal_gate.py +95 -0
  551. procesio_cli/tools/procesio/tests/test_resource_ops.py +173 -0
  552. procesio_cli/tools/procesio/tests/test_save_validity.py +207 -0
  553. procesio_cli/tools/procesio/tests/test_schedule_cron_shape.py +111 -0
  554. procesio_cli/tools/procesio/tests/test_schedules.py +309 -0
  555. procesio_cli/tools/procesio/tests/test_sqlconvert.py +234 -0
  556. procesio_cli/tools/procesio/tests/test_sqlformat.py +83 -0
  557. procesio_cli/tools/procesio/tests/test_sqlparam.py +187 -0
  558. procesio_cli/tools/procesio/tests/test_superseded_actions.py +54 -0
  559. procesio_cli/tools/procesio/tests/test_surgical_concurrency.py +156 -0
  560. procesio_cli/tools/procesio/tests/test_tier4.py +123 -0
  561. procesio_cli/tools/procesio/tests/test_transport.py +147 -0
  562. procesio_cli/tools/procesio/tests/test_transport_data_stores.py +168 -0
  563. procesio_cli/tools/procesio/tests/test_transport_mapper_repair.py +150 -0
  564. procesio_cli/tools/procesio/tests/test_transport_webhook_strip.py +253 -0
  565. procesio_cli/tools/procesio/tests/test_usage_guide.py +96 -0
  566. procesio_cli/tools/procesio/tool.yaml +12486 -0
  567. procesio_cli/tools/sqlserver/MOVED-TO-CENTRAL.md +29 -0
  568. procesio_cli/tools/sqlserver/README.md +192 -0
  569. procesio_cli/tools/sqlserver/SKILL.md +37 -0
  570. procesio_cli/tools/sqlserver/SQLSERVER-SCHEMA-NOTES.md +284 -0
  571. procesio_cli/tools/sqlserver/__init__.py +0 -0
  572. procesio_cli/tools/sqlserver/connection.py +242 -0
  573. procesio_cli/tools/sqlserver/main.py +521 -0
  574. procesio_cli/tools/sqlserver/profiles.template.json +1 -0
  575. procesio_cli/tools/sqlserver/schema.py +600 -0
  576. procesio_cli/tools/sqlserver/tests/__init__.py +0 -0
  577. procesio_cli/tools/sqlserver/tests/conftest.py +21 -0
  578. procesio_cli/tools/sqlserver/tests/test_connection.py +75 -0
  579. procesio_cli/tools/sqlserver/tests/test_dbprofiles.py +92 -0
  580. procesio_cli/tools/sqlserver/tests/test_dbquery.py +220 -0
  581. procesio_cli/tools/sqlserver/tests/test_manifest_sync.py +68 -0
  582. procesio_cli/tools/sqlserver/tests/test_sqlserver.py +326 -0
  583. procesio_cli/tools/sqlserver/tests/test_sqlserver_schema.py +488 -0
  584. procesio_cli/tools/sqlserver/tool.yaml +123 -0
  585. procesio_cli/tools/web/README.md +381 -0
  586. procesio_cli/tools/web/SKILL.md +37 -0
  587. procesio_cli/tools/web/WEB-AUTOMATION-NOTES.md +277 -0
  588. procesio_cli/tools/web/__init__.py +21 -0
  589. procesio_cli/tools/web/actiondef.py +24 -0
  590. procesio_cli/tools/web/api.py +444 -0
  591. procesio_cli/tools/web/brokered.py +107 -0
  592. procesio_cli/tools/web/driver.py +839 -0
  593. procesio_cli/tools/web/drivercontract.py +44 -0
  594. procesio_cli/tools/web/errors.py +54 -0
  595. procesio_cli/tools/web/handlers/__init__.py +1 -0
  596. procesio_cli/tools/web/handlers/archive.py +367 -0
  597. procesio_cli/tools/web/handlers/browse.py +182 -0
  598. procesio_cli/tools/web/handlers/contacts.py +74 -0
  599. procesio_cli/tools/web/handlers/sessmgmt.py +120 -0
  600. procesio_cli/tools/web/main.py +128 -0
  601. procesio_cli/tools/web/sessions.py +253 -0
  602. procesio_cli/tools/web/steps.py +162 -0
  603. procesio_cli/tools/web/tests/__init__.py +0 -0
  604. procesio_cli/tools/web/tests/conftest.py +197 -0
  605. procesio_cli/tools/web/tests/test_api.py +330 -0
  606. procesio_cli/tools/web/tests/test_archive.py +190 -0
  607. procesio_cli/tools/web/tests/test_brokered.py +138 -0
  608. procesio_cli/tools/web/tests/test_dispatch.py +132 -0
  609. procesio_cli/tools/web/tests/test_errors.py +60 -0
  610. procesio_cli/tools/web/tests/test_manifest_sync.py +76 -0
  611. procesio_cli/tools/web/tests/test_page_contacts.py +68 -0
  612. procesio_cli/tools/web/tests/test_sessions.py +145 -0
  613. procesio_cli/tools/web/tests/test_steps.py +210 -0
  614. procesio_cli/tools/web/tool.yaml +184 -0
  615. procesio_cli/tools/xlsx/README.md +34 -0
  616. procesio_cli/tools/xlsx/SKILL.md +28 -0
  617. procesio_cli/tools/xlsx/__init__.py +0 -0
  618. procesio_cli/tools/xlsx/main.py +129 -0
  619. procesio_cli/tools/xlsx/reader.py +91 -0
  620. procesio_cli/tools/xlsx/tests/__init__.py +0 -0
  621. procesio_cli/tools/xlsx/tests/conftest.py +39 -0
  622. procesio_cli/tools/xlsx/tests/test_xlsx.py +103 -0
  623. procesio_cli/tools/xlsx/tool.yaml +30 -0
  624. procesio_cli/webplatform/aat_mcp/AAT-MCP-NOTES.md +244 -0
  625. procesio_cli/webplatform/aat_mcp/README.md +78 -0
  626. procesio_cli/webplatform/aat_mcp/bridge.py +705 -0
  627. procesio_cli/webplatform/aat_mcp/chat_server.py +194 -0
  628. procesio_cli/webplatform/aat_mcp/chat_surface.snapshot.json +668 -0
  629. procesio_cli/webplatform/aat_mcp/chat_surface.yaml +372 -0
  630. procesio_cli/webplatform/aat_mcp/gate.py +68 -0
  631. procesio_cli/webplatform/aat_mcp/http_server.py +139 -0
  632. procesio_cli/webplatform/aat_mcp/protocol.py +175 -0
  633. procesio_cli/webplatform/aat_mcp/server.py +306 -0
  634. procesio_cli/webplatform/aat_mcp/tests/conftest.py +8 -0
  635. procesio_cli/webplatform/aat_mcp/tests/test_aat_mcp.py +255 -0
  636. procesio_cli/webplatform/aat_mcp/tests/test_chat_surface.py +247 -0
  637. procesio_cli/webplatform/aat_mcp/tests/test_discovery.py +489 -0
  638. procesio_cli/webplatform/aat_mcp/tests/test_multiuser.py +86 -0
  639. procesio_cli/webplatform/aat_mcp/tests/test_progressive_discovery.py +89 -0
  640. procesio_cli/webplatform/aat_mcp/tests/test_protocol.py +180 -0
  641. procesio_cli/webplatform/aat_mcp/tests/test_skill_discovery.py +23 -0
  642. procesio_cli-0.1.1.dist-info/METADATA +467 -0
  643. procesio_cli-0.1.1.dist-info/RECORD +647 -0
  644. procesio_cli-0.1.1.dist-info/WHEEL +4 -0
  645. procesio_cli-0.1.1.dist-info/entry_points.txt +7 -0
  646. procesio_cli-0.1.1.dist-info/licenses/LICENSE +201 -0
  647. procesio_cli-0.1.1.dist-info/licenses/NOTICE +5 -0
@@ -0,0 +1,180 @@
1
+ # Authentication & Authorization
2
+
3
+ > Audience: an integrator (human or AI) building an application whose backend is the PROCESIO microservices platform.
4
+ > Source of truth: `BE/Web-Api/WebApi/Application/Middleware/*`, `Application/Controllers/AuthenticationProxy/AuthenticationController.cs`, `Domain/Constants/TokenConstants.cs`, `Domain/Enums/Authentication*` , `Domain/Enums/Authorization/*`.
5
+
6
+ Everything an external client talks to goes through the **Web-Api gateway**. The gateway runs a fixed middleware chain on every request:
7
+
8
+ ```
9
+ HTTP request
10
+ → LoggingMiddleware (request/response logging)
11
+ → SecureInternalRequests (only for internal/ endpoints — see §6; 404 if headers missing)
12
+ → DeserializeToken (detect auth mode, parse JWT claims into internal headers)
13
+ → Authentication (validate the token against Authentication-Proxy/Keycloak)
14
+ → GetUserFromToken (hydrate the user context)
15
+ → Authorization (enforce the per-route permission)
16
+ → Controller
17
+ ```
18
+
19
+ Identity itself (users, passwords, sessions, OTP, social login) lives in **Keycloak**, fronted by the **Authentication-Proxy** service. Web-Api never stores passwords — it forwards credentials to the proxy and returns the issued tokens.
20
+
21
+ ---
22
+
23
+ ## 1. The three authentication modes
24
+
25
+ `DeserializeToken` picks the mode automatically from the headers present (`Domain/Enums/AuthenticationTypes.cs → WebApiAuthTypes`):
26
+
27
+ | Mode | How the gateway detects it | Use it for |
28
+ | --- | --- | --- |
29
+ | **Bearer JWT** (`Token = 0`) | `Authorization: Bearer <jwt>` header **or** an access-token cookie | Interactive apps, server-to-server with a logged-in user |
30
+ | **API key** (`ApiKey = 1`) | Both `key` and `value` headers present | Headless/machine integrations, scripts, webhook producers |
31
+ | **Anonymous** (`Anonymous = 2`) | Neither of the above, and the endpoint is `[AllowAnonymous]` | Login, token refresh, inbound webhook trigger, public forms, custom-URL launches |
32
+
33
+ If an endpoint requires auth and none is supplied, the gateway returns **`401 Unauthorized`** (cookie clients may instead get a `307` auto-refresh redirect — see §4).
34
+
35
+ ---
36
+
37
+ ## 2. Logging in (Bearer JWT) — `POST api/Authentication`
38
+
39
+ This is the entry point that mints a token from a username + password.
40
+
41
+ - **Method/route:** `POST {baseUrl}/api/Authentication`
42
+ - **Auth:** Anonymous
43
+ - **Content-Type:** `application/x-www-form-urlencoded` (note: **form fields, not JSON**)
44
+ - **Body** (`AuthenticateUserDto`):
45
+
46
+ | Form field | Type | Required | Notes |
47
+ | --- | --- | --- | --- |
48
+ | `username` | string | yes | The PROCESIO account username/email |
49
+ | `password` | string | yes | |
50
+ | `code` | string | no | One-time code (OTP/MFA), when the account requires it |
51
+
52
+ - **Response `200 OK`** (`AuthenticationTokenResponseDto`, JSON; returned in the body **only when the client is not using cookies** — see §4):
53
+
54
+ | JSON field | Type | Meaning |
55
+ | --- | --- | --- |
56
+ | `access_token` | string (JWT) | Send as `Authorization: Bearer <access_token>` on later calls |
57
+ | `expires_in` | number (seconds) | Access-token lifetime |
58
+ | `refresh_token` | string (JWT) | Used to obtain a new access token |
59
+ | `refresh_expires_in` | number (seconds) | Refresh-token lifetime |
60
+ | `token_type` | string | Usually `Bearer` |
61
+ | `session_state` | string | Keycloak session id |
62
+ | `scope` | string | Granted scopes |
63
+ | `error` | string | Present on failure (e.g. `invalid_grant`) |
64
+ | `error_description` | string | Human-readable failure reason |
65
+
66
+ **Example**
67
+
68
+ ```bash
69
+ curl -X POST "https://api.procesio.app/api/Authentication" \
70
+ -H "Content-Type: application/x-www-form-urlencoded" \
71
+ --data-urlencode "username=alice@example.com" \
72
+ --data-urlencode "password=•••••••••"
73
+ # → { "access_token": "eyJ...", "expires_in": 300, "refresh_token": "eyJ...", ... }
74
+ ```
75
+
76
+ Then call any protected endpoint:
77
+
78
+ ```bash
79
+ curl "https://api.procesio.app/api/Projects" \
80
+ -H "Authorization: Bearer eyJ..." \
81
+ -H "x-version: 1.19"
82
+ ```
83
+
84
+ ### Single sign-on (SSO)
85
+ For social / external IdP login the proxy exposes a redirect-based OAuth2 flow (all Anonymous, mostly hidden from Swagger):
86
+ - `GET api/Authentication/authorize/{identityProvider}?redirect_uri=...` → returns the IdP authorization URL.
87
+ - `GET api/Authentication/oauth2/callback/{identityProvider}` → IdP redirects here; PROCESIO completes login and issues tokens.
88
+ - `GET api/Authentication/otp/callback` → OTP completion.
89
+
90
+ `identityProvider` is the `IdentityProvider` enum (see `03-auth-users-workspaces.md`).
91
+
92
+ ---
93
+
94
+ ## 3. Refreshing & ending a session
95
+
96
+ | Action | Endpoint | Body (`x-www-form-urlencoded`) |
97
+ | --- | --- | --- |
98
+ | Refresh access token | `POST api/Authentication/refreshToken` | `refresh_token` (required), `client_id` (default `procesio-ui`) |
99
+ | Log out current session | `POST api/Authentication/logOut` | `refresh_token` |
100
+ | Log out **all** sessions | `DELETE api/Authentication/logOut` | `token` (an access token) |
101
+
102
+ All three are Anonymous (they authenticate by possession of the refresh/access token itself).
103
+
104
+ ---
105
+
106
+ ## 4. Two client styles: token-in-body vs. cookie (BFF)
107
+
108
+ The same auth endpoints serve two client styles, decided by whether the request carries the PROCESIO UI cookie marker:
109
+
110
+ - **Programmatic clients (recommended for integrations):** do **not** use cookies. `POST api/Authentication` returns the full `AuthenticationTokenResponseDto` in the body. You store `access_token` and send it as `Authorization: Bearer ...`. You refresh manually via `refreshToken`.
111
+ - **Browser/BFF clients (the PROCESIO SPA):** the gateway sets HTTP-only cookies `__Host-procesio.access` / `__Host-procesio.refresh` (`__Dev-` prefix in debug builds) and returns only `{ "message": "Authentication successful" }`. When the access token expires, the gateway transparently refreshes from the cookie and replies `307 Temporary Redirect` to the same path so the browser retries with fresh cookies. A `x-session-expires-at` response header carries the refresh-token expiry.
112
+
113
+ > For an app builder, prefer the **token-in-body** style — it is stateless and predictable. Only the official SPA needs the cookie path.
114
+
115
+ ---
116
+
117
+ ## 5. API keys (headless auth) — alternative to JWT
118
+
119
+ API keys let a machine integration authenticate without a user login. They are **workspace-scoped** and managed under `api/ApiKey` (see `12-webhooks-notifications-misc.md`).
120
+
121
+ - **Create:** `POST api/ApiKey` (JWT-authenticated) returns the secret **once**. A user may hold up to **25** keys.
122
+ - **Use:** send two headers on every request:
123
+
124
+ | Header | Value |
125
+ | --- | --- |
126
+ | `key` | the 16-char key **name** |
127
+ | `value` | the 64-char key **secret** |
128
+
129
+ Optionally set `auth_type: 1` to force API-key mode. The gateway looks the key up within its workspace, checks it is active, and validates the secret against a stored hash.
130
+
131
+ ```bash
132
+ curl "https://api.procesio.app/api/Projects" \
133
+ -H "key: myintegrationkey" \
134
+ -H "value: <64-char-secret>" \
135
+ -H "x-version: 1.19"
136
+ ```
137
+
138
+ > **Restriction:** API-key requests are explicitly **rejected by every `api/ApiKey` management endpoint** — you must use a JWT to create/list/delete keys. API keys are for calling the *rest* of the API.
139
+
140
+ ---
141
+
142
+ ## 6. Authorization model — permissions per endpoint
143
+
144
+ Once authenticated, the `Authorization` middleware enforces a permission derived from two attributes on the controller/action:
145
+
146
+ - **Entity** — `[AuthorizationEntity(AuthorizationEntityType.X)]` (controller level). Values (`Domain/Enums/Authorization/AuthorizationEntityType.cs`):
147
+
148
+ `MasterWorkspace(1)`, `Workspace(2)`, `ProcessDesigner(3)`, `ProcessInstance(4)`, `CustomActions(5)`, `DataModels(6)`, `Credentials(7)`, `DocumentDesigner(8)`, `Webhook(9)`, `Schedule(10)`, `ApiKey(11)`, `FormTemplate(12)`, `FormInstance(13)`, `DataStore(14)`, `ProcesioAdmin(101)`, `None(102)`.
149
+
150
+ - **Action** — `[AuthorizationAction(AuthorizationActionType.X)]` (method level). Values (`AuthorizationActionType.cs`):
151
+
152
+ `None(1)` = authenticated but no specific permission required · `Read(2)` · `Update(3)` · `Create(4)` · `Delete(5)` · `Admin(6)`.
153
+
154
+ The effective permission documented per endpoint is written **`Entity:Action`** (e.g. `ProcessInstance:Read`, `Credentials:Create`). `Permission: None` means "any authenticated caller". `ProcesioAdmin:*` endpoints require platform-admin rights and are typically hidden from Swagger (but still reachable).
155
+
156
+ > **Internal endpoints are out of scope for external clients.** Routes beginning with `internal/` (and controllers marked `[SecureInternalController]`) require the `prc-service` + `prc-code` headers and return **404** to anyone else. They are service-to-service only and are *not* documented in the endpoint reference. See [Appendix: internal & inter-service surface](endpoints/99-internal-and-other-services.md).
157
+
158
+ ---
159
+
160
+ ## 7. Workspace context
161
+
162
+ PROCESIO is multi-tenant via **workspaces**. A user belongs to one or more workspaces under a **master workspace**. Most data operations are scoped to the "active" workspace:
163
+
164
+ - The active workspace is normally encoded in the JWT, but many endpoints accept an explicit override:
165
+ - Header `workspaceId: <guid>`, or
166
+ - Query param `targetWorkspace=<guid>` (declared via the `[HasOptionalParameter]` filter on endpoints that support switching).
167
+ - Master-workspace-level operations use the `MasterWorkspace` entity; per-workspace operations use `Workspace`.
168
+
169
+ When building an app that spans multiple workspaces, pass the target workspace explicitly on each call rather than relying on a default.
170
+
171
+ ---
172
+
173
+ ## 8. Quick-start checklist for an integration
174
+
175
+ 1. **Get a token:** `POST /api/Authentication` (form-urlencoded) → keep `access_token` + `refresh_token`. *(Or create an API key in the UI and use `key`/`value` headers.)*
176
+ 2. **Always send** `Authorization: Bearer <token>` (or `key`+`value`) and `x-version: 1.19`.
177
+ 3. **Pick the workspace** with `workspaceId`/`targetWorkspace` when needed.
178
+ 4. **Refresh** before `expires_in` elapses via `POST /api/Authentication/refreshToken`.
179
+ 5. **Call the domain endpoints** documented in [`endpoints/`](endpoints/). The most common goal — *run an automation* — is in [`04-processes.md`](endpoints/04-processes.md).
180
+ 6. **For realtime results** (async action/test/CSV runs) open the SignalR hub — see [`13-realtime-signalr.md`](endpoints/13-realtime-signalr.md).
@@ -0,0 +1,116 @@
1
+ # API conventions
2
+
3
+ > Shared rules that apply to every Web-Api endpoint in this reference. Read this once; the per-domain files assume it.
4
+
5
+ ---
6
+
7
+ ## 1. Base URL
8
+
9
+ All paths in this reference are **relative to the Web-Api gateway host** of your PROCESIO deployment:
10
+
11
+ | Deployment | Example gateway base URL |
12
+ | --- | --- |
13
+ | PROCESIO public cloud (historical SaaS) | `https://api.procesio.app` |
14
+ | On-prem / self-hosted | your install's gateway host (e.g. `https://procesio.your-company.internal`) |
15
+ | Local dev | `http://localhost:<port>` (the container binds Kestrel on port `8000`) |
16
+
17
+ A full request URL is therefore `{baseUrl}` + the route shown, e.g. `https://api.procesio.app/api/Projects`.
18
+
19
+ > The FE origins allowed by CORS in the reference config are `https://procesio.app`, `https://dev.procesio.app`, `https://qa.procesio.app`, `https://forms.procesio.app` (+ a few customer hosts). Server-to-server clients are not subject to CORS.
20
+
21
+ There is **no version segment in the path** — see §3.
22
+
23
+ ---
24
+
25
+ ## 2. Standard headers
26
+
27
+ | Header | Direction | When | Notes |
28
+ | --- | --- | --- | --- |
29
+ | `Authorization: Bearer <jwt>` | request | JWT auth | See [authentication](01-authentication.md) |
30
+ | `key` + `value` | request | API-key auth | Alternative to `Authorization` |
31
+ | `x-version` | request | optional | API version selector; defaults to `1.19` |
32
+ | `Content-Type` | request | bodies | `application/json` unless an endpoint says `x-www-form-urlencoded` or `multipart/form-data` |
33
+ | `workspaceId` / `?targetWorkspace=` | request | optional | Select the active workspace |
34
+ | `x-session-expires-at` | response | cookie clients | Refresh-token expiry (epoch) |
35
+ | `x-requested-by: playground-v1` | request | SPA only | Marks the official UI/BFF cookie flow |
36
+
37
+ ---
38
+
39
+ ## 3. API versioning
40
+
41
+ - Versioning uses the **`x-version` request header** (`HeaderApiVersionReader("x-version")`), **not** a URL segment or query string.
42
+ - Current/default version is **`1.19`** (`WebApiConstants.CURRENT_API_VERSION`). If the header is omitted the gateway assumes the default (`AssumeDefaultVersionWhenUnspecified = true`).
43
+ - The server reports supported versions back via the `api-supported-versions` response header (`ReportApiVersions = true`).
44
+ - **Recommendation:** always send `x-version: 1.19` so your client is pinned to a known contract.
45
+
46
+ ---
47
+
48
+ ## 4. Content types & serialization
49
+
50
+ - Request/response bodies are **JSON** serialized with **Newtonsoft.Json** unless stated otherwise.
51
+ - A handful of endpoints use other content types:
52
+ - `application/x-www-form-urlencoded` — the auth endpoints (`api/Authentication/*`).
53
+ - `multipart/form-data` — file/package uploads (file controllers, custom-action & platform-action upload, credential certificate upload, CSV import). The file part name is usually **`package`** (`file` for CSV import); other inputs ride as **request headers**, not form fields. See the relevant domain doc.
54
+ - Binary streams — file/document **downloads** return raw bytes with the stored MIME type and a download filename (not JSON), despite the class-level `[Produces("application/json")]`.
55
+ - **Wire field names:** JSON property names follow the C# property unless overridden by `[JsonProperty("...")]` or, for form fields, `[ModelBinder(Name="...")]` / `[FromForm(Name=...)]`. The per-domain docs list the **wire name** for every field.
56
+
57
+ ### C# → JSON type mapping used throughout
58
+
59
+ | C# type | Wire type |
60
+ | --- | --- |
61
+ | `Guid` | `string` (uuid) |
62
+ | `DateTime` / `DateTimeOffset` | `string` (ISO-8601 date-time) |
63
+ | `bool` | `boolean` |
64
+ | `int` / `long` / `decimal` / `double` | `number` |
65
+ | `string` | `string` |
66
+ | `enum` | `number` (the underlying int) — or its name; enums are listed with values per field |
67
+ | `List<T>` / `T[]` | `array` of `T` |
68
+ | nested class | `object` (defined in that file's **Shared DTOs** section) |
69
+ | `object` / `JToken` | free-form JSON (shape not constrained server-side) |
70
+
71
+ ---
72
+
73
+ ## 5. Error responses
74
+
75
+ Most validation/domain errors return an **array of `ApiErrorResponse`** (`Infrastructure.Core.CustomError.ApiErrorResponse`):
76
+
77
+ ```json
78
+ [
79
+ { "statusCode": 1001, "value": "Entity not found.", "target": "id" }
80
+ ]
81
+ ```
82
+
83
+ | Field | Type | Meaning |
84
+ | --- | --- | --- |
85
+ | `statusCode` | number | A PROCESIO **`ErrorCodes`** enum value (a domain error code) — **not** the HTTP status |
86
+ | `value` | string\|object | Human-readable message (resolved from the error-code map) |
87
+ | `target` | string\|object | The offending field/property name, when applicable |
88
+
89
+ Notes:
90
+ - The **HTTP status** conveys the category: `400` validation/bad request, `401` unauthenticated, `403` forbidden (insufficient permission), `404` not found *(also returned intentionally for unauthorized `internal/` calls)*, `409` conflict (e.g. CSV job not finished), `413` payload too large (uploads), `415` unsupported media type (webhook/custom-URL body), `500` server error.
91
+ - A few endpoints return a **bare exception-message string** instead of the array on unhandled errors — clients should tolerate both shapes on `400`/`500`.
92
+ - Anonymous endpoints (forms, custom-URL launch) deliberately apply a small randomized delay (`TimeDelay.RandomWait`) as a timing-attack mitigation.
93
+
94
+ ---
95
+
96
+ ## 6. Pagination, filtering, sorting
97
+
98
+ There is no single global paging envelope; patterns vary by domain:
99
+ - **Common `Pagination` DTO** (subscriptions/resources): `PageNumber` (only applied when > 1), `PageItemCount` (only applied when > 0). See `11-subscriptions-resources-analytics.md`.
100
+ - **Data Store rows** use **query-string** filters, not a JSON body: `filters[N].displayName`, `filters[N].operator` (numeric `DataStoreRowsFilterOperator`), `filters[N].value`, plus `sort.displayName` + `sort.direction` (1=Asc, 2=Desc). See `09-datastore-datatypes.md`.
101
+ - Many list endpoints expose `searchName`, `count` sibling endpoints, and entity-specific filters — documented inline.
102
+
103
+ ---
104
+
105
+ ## 7. Async operations & realtime
106
+
107
+ Several operations are **asynchronous**: the HTTP call starts the work and the result is delivered later.
108
+ - **Process launch** can be synchronous (`runSynchronous=true`, blocks up to `secondsTimeOut`) or async (returns `{ "instanceId": "<guid>" }`; poll `GET api/Projects/instances/{id}/status`). See `04-processes.md`.
109
+ - **Connector/test-action runs and CSV import/export** push their results over **SignalR**. Obtain a `connectionId` from the hub and pass it (body `ConnectionId` or header `connectionId`) to the start endpoint. See `13-realtime-signalr.md`.
110
+
111
+ ---
112
+
113
+ ## 8. Health
114
+
115
+ - `GET /health` — liveness/readiness (anonymous, bypasses the auth chain). Not part of the business API.
116
+ - Prometheus metrics are exposed on a separate port (`9090`, `/metrics`) and are not reachable through the public API path.
@@ -0,0 +1,51 @@
1
+ # PROCESIO — the ANONYMOUS surface, enumerated
2
+
3
+ **Generated** from `API-DOCUMENTATION/endpoints/*.md`. **Do not hand-edit** — regenerate.
4
+
5
+ > ⚠ **WHY THIS EXISTS.** Three anonymous endpoints were met one incident at a time: `api/Webhooks/launch/{id}` (a bearer id that travels in packs), `api/FormProcess/.../launch`, and `api/Form/dataStore/{id}/rows` (full CRUD, including DELETE, on any store the path names). **All three were documented and none was read before it mattered.**
6
+
7
+ > ⚠ **THE GENERAL FORM: on every endpoint below the access control is AN ID.** An id is a bearer credential — it travels in process definitions, in exported packs, in shared links, in logs and in browser history. **Treat every `{id}` in this table as a secret, or decide deliberately that it is not.**
8
+
9
+ | verbs | route | operation | the id that IS the control | documented at |
10
+ |---|---|---|---|---|
11
+ | `POST` | `api/Authentication` | `Authenticate` | `{(none in route)}` | `03-auth-users-workspaces.md:32` |
12
+ | `GET` | `api/Authentication` | `AuthenticationForm` | `{(none in route)}` | `03-auth-users-workspaces.md:45` |
13
+ | `GET` | `api/Authentication/oauth2/callback/{identityProvider}` | `AuthenticateByBroker` | `{identityProvider}` | `03-auth-users-workspaces.md:54` |
14
+ | `GET` | `api/Authentication/otp/callback` | `AuthenticateOTPCallback` | `{(none in route)}` | `03-auth-users-workspaces.md:65` |
15
+ | `GET` | `api/Authentication/authorize/{identityProvider}` | `GetAuthorization` | `{identityProvider}` | `03-auth-users-workspaces.md:74` |
16
+ | `POST` | `api/Authentication/refreshToken` | `RefreshToken` | `{(none in route)}` | `03-auth-users-workspaces.md:84` |
17
+ | `POST` | `api/Authentication/logOut` | `Logout` | `{(none in route)}` | `03-auth-users-workspaces.md:96` |
18
+ | `DELETE` | `api/Authentication/logOut` | `DeleteAllSessions` | `{(none in route)}` | `03-auth-users-workspaces.md:105` |
19
+ | `POST` | `api/Users/otp/setup` | `OtpSetup` | `{(none in route)}` | `03-auth-users-workspaces.md:128` |
20
+ | `POST` | `api/Users` | `CreateUser` | `{(none in route)}` | `03-auth-users-workspaces.md:136` |
21
+ | `PUT` | `api/Users/details` | `UpdateUserDetails` | `{(none in route)}` | `03-auth-users-workspaces.md:145` |
22
+ | `POST` | `api/Users/withActivation` | `CreateUserWithActivationResponse` | `{(none in route)}` | `03-auth-users-workspaces.md:154` |
23
+ | `POST` | `api/Users/resendToken` | `RefreshCreateUserToken` | `{(none in route)}` | `03-auth-users-workspaces.md:164` |
24
+ | `POST` | `api/Users/password/change` | `ChangePassword` | `{(none in route)}` | `03-auth-users-workspaces.md:172` |
25
+ | `POST` | `api/Users/password/forgot` | `ForgotPassword` | `{(none in route)}` | `03-auth-users-workspaces.md:181` |
26
+ | `POST` | `api/Users/password/update` | `UpdatePassword` | `{(none in route)}` | `03-auth-users-workspaces.md:190` |
27
+ | `POST` | `api/Form` | `SaveForm` | `{(none in route)}` | `07-forms-documents.md:65` |
28
+ | `POST` | `api/FormTemplate/{id}/duplicate` | `DuplicateForm` | `{id}` | `07-forms-documents.md:183` |
29
+ | `GET` | `api/FormTemplate/{workspaceId}/{id}` | `GetAnonymousForm` | `{workspaceId}` · `{id}` | `07-forms-documents.md:192` |
30
+ | `GET` | `api/FormProcess/{formTemplateId}/{processTemplateId}` | `GetProcessTemplate` | `{formTemplateId}` · `{processTemplateId}` | `07-forms-documents.md:350` |
31
+ | `POST` | `api/FormProcess/{formTemplateId}/{processTemplateId}/publish` | `PublishFlow` | `{formTemplateId}` · `{processTemplateId}` | `07-forms-documents.md:361` |
32
+ | `POST` | `api/FormProcess/{formTemplateId}/{processTemplateId}/launch` | `LaunchFlowInstance` | `{formTemplateId}` · `{processTemplateId}` | `07-forms-documents.md:375` |
33
+ | `GET` | `api/FormProcess/{formTemplateId}/{processTemplateId}/{processInstanceId}/variables` | `GetFlowInstanceVariables` | `{formTemplateId}` · `{processTemplateId}` · `{processInstanceId}` | `07-forms-documents.md:392` |
34
+ | `POST` | `api/Form/upload` | `UploadFormFile` | `{(none in route)}` | `07-forms-documents.md:412` |
35
+ | `POST` | `api/FormProcess/{formTemplateId}/{flowInstanceId}/upload` | `Upload` | `{formTemplateId}` · `{flowInstanceId}` | `07-forms-documents.md:443` |
36
+ | `GET` | `api/FormProcess/download` | `Download` | `{(none in route)}` | `07-forms-documents.md:461` |
37
+ | `GET` | `api/Form/dataStore/{dataStoreId}/rows` | `GetRows` | `{dataStoreId}` | `07-forms-documents.md:484` |
38
+ | `POST` | `api/Form/dataStore/{dataStoreId}/rows` | `AddRows` | `{dataStoreId}` | `07-forms-documents.md:499` |
39
+ | `PUT` | `api/Form/dataStore/{dataStoreId}/rows` | `UpdateRow` | `{dataStoreId}` | `07-forms-documents.md:509` |
40
+ | `DELETE` | `api/Form/dataStore/{dataStoreId}/rows` | `DeleteRows` | `{dataStoreId}` | `07-forms-documents.md:519` |
41
+ | `GET` | `api/DataTypes/primary` | `GetPrimaryTypes` | `{(none in route)}` | `09-datastore-datatypes.md:478` |
42
+ | `GET` | `api/DataTypes/procesio` | `GetProcesioTypes` | `{(none in route)}` | `09-datastore-datatypes.md:490` |
43
+ | `GET` | `api/DataTypes/primary/count` | `CountPrimaryDataTypes` | `{(none in route)}` | `09-datastore-datatypes.md:502` |
44
+ | `GET|POST|PUT|PATCH|DELETE` | `/{masterWorkspaceUrl}/{workspaceUrl}/{entityUrl}` | `Launch` | `{masterWorkspaceUrl}` · `{workspaceUrl}` · `{entityUrl}` | `10-custom-urls.md:218` |
45
+ | `GET|POST|PUT|PATCH|DELETE` | `/{tinyUrl}` | `Launch` | `{tinyUrl}` | `10-custom-urls.md:248` |
46
+ | `GET|POST|PUT|PATCH|DELETE` | `api/Webhooks/launch/{id}` | `LaunchWebhook` | `{id}` | `12-webhooks-notifications-misc.md:155` |
47
+ | `POST` | `api/Webhooks/launch/{id}/verifone` | `LaunchFormData` | `{id}` | `12-webhooks-notifications-misc.md:193` |
48
+ | `GET` | `api/Webhooks/launch/{id}/verifone` | `LaunchGetFormData` | `{id}` | `12-webhooks-notifications-misc.md:208` |
49
+
50
+ **Total anonymous endpoints: 38**
51
+
@@ -0,0 +1,104 @@
1
+ # PROCESIO Public API Reference
2
+
3
+ This is an exhaustive reference of the **public HTTP API** exposed by the PROCESIO low-code automation platform, plus its realtime (SignalR) channel. It is written so that **another AI can generate applications that use PROCESIO as their backend**, without reading the microservice source.
4
+
5
+ - **Scope:** every public, externally-reachable endpoint of the **Web-Api gateway** (297 REST endpoints across 12 domains) + the System-Notifications SignalR hub. Internal/inter-service endpoints are listed separately and are explicitly out of scope.
6
+ - **Source:** extracted from the PROCESIO Back-End microservice repositories (see [`provenance`](#provenance)). No source was modified.
7
+ - **Language/format:** English, Markdown.
8
+
9
+ > **What is PROCESIO?** A platform where users design *processes* (automation flows) out of *actions*, optionally fed by *forms*, *files*, *data-store tables*, *credentials*, and triggered manually, on a *schedule*, or via *webhooks*. The public API lets your app do everything the PROCESIO UI can: authenticate, manage these resources, **launch processes and read their results**, and receive realtime events.
10
+
11
+ ---
12
+
13
+ ## Start here
14
+
15
+ 1. **[01 — Authentication & Authorization](01-authentication.md)** — how to get a token (or API key), the permission model, workspaces. **Read this first.**
16
+ 2. **[02 — Conventions](02-conventions.md)** — base URL, headers, `x-version`, error format, type mapping, pagination, async/realtime. **Read this second.**
17
+ 3. Then jump to the domain you need (table below). To *run an automation* — the most common goal — go straight to **[04 — Processes](endpoints/04-processes.md)**.
18
+
19
+ ---
20
+
21
+ ## Endpoint reference (by domain)
22
+
23
+ | # | Document | Endpoints | What it covers |
24
+ | --- | --- | --- | --- |
25
+ | 03 | [Auth, Users, Workspaces, Permissions](endpoints/03-auth-users-workspaces.md) | 52 | Login/SSO/OTP, sign-up, self-service account, user CRUD, workspaces & master workspaces, permissions, preferences |
26
+ | 04 | [Processes & Schedules](endpoints/04-processes.md) | 39 | Process templates (designer), **launching & running instances**, instance status/output, debugger, schedules |
27
+ | 05 | [Actions](endpoints/05-actions.md) | 21 | Action prototypes/templates/nodes, connector actions, custom-action upload, platform actions, test runs |
28
+ | 06 | [Files](endpoints/06-files.md) | 8 | Upload/download of files for flows, connector actions, schedules, test actions (multipart + binary stream) |
29
+ | 07 | [Forms & Documents](endpoints/07-forms-documents.md) | 49 | Form templates/instances/applications/chains, **anonymous public form submission & flow launch**, document templates |
30
+ | 08 | [Credentials](endpoints/08-credentials.md) | 21 | Credential vault CRUD, templates, OAuth2 authorization flow, certificate upload |
31
+ | 09 | [Data Store & Data Types](endpoints/09-datastore-datatypes.md) | 38 | Dynamic tables (schema + **rows query/CRUD**), CSV import/export jobs, platform data-type definitions |
32
+ | 10 | [Custom URLs & public launch URLs](endpoints/10-custom-urls.md) | 19 | Vanity/short URLs mapping to forms, webhooks, workspaces; **anonymous catch-all launch routes** |
33
+ | 11 | [Subscriptions, Resources & Analytics](endpoints/11-subscriptions-resources-analytics.md) | 26 | Billing/subscriptions, quota config, process & execution-environment analytics |
34
+ | 12 | [Webhooks, Notifications, API Keys, Transport](endpoints/12-webhooks-notifications-misc.md) | 24 | Webhook CRUD, **anonymous inbound webhook trigger**, notification inbox, **API-key management**, import/export |
35
+ | 13 | [Realtime (SignalR hub)](endpoints/13-realtime-signalr.md) | hub | WebSocket connection, `connectionId` model, server→client events for async results |
36
+ | 99 | [Internal & other services (appendix)](endpoints/99-internal-and-other-services.md) | — | What is **not** public, and why |
37
+
38
+ **Total public REST endpoints documented: 297** (+ the SignalR hub).
39
+
40
+ Each domain file lists, per endpoint: HTTP method + full route, auth mode + required permission, path/query params, special headers, request body DTO (every field with wire name, type, required/optional), responses, and notes. Nested/shared DTOs are defined once per file in a "Shared DTOs" section.
41
+
42
+ ---
43
+
44
+ ## Common recipes
45
+
46
+ > Replace `{baseUrl}` with your deployment's gateway host (e.g. `https://api.procesio.app`). Send `x-version: 1.19` on every call.
47
+
48
+ ### A. Authenticate
49
+ ```bash
50
+ curl -X POST "{baseUrl}/api/Authentication" \
51
+ -H "Content-Type: application/x-www-form-urlencoded" \
52
+ --data-urlencode "username=USER" --data-urlencode "password=PASS"
53
+ # → access_token, refresh_token, expires_in
54
+ ```
55
+
56
+ ### B. Run a process and get the result (one-shot, synchronous)
57
+ ```bash
58
+ # id = the process TEMPLATE id; body = the flow's input variables
59
+ curl -X POST "{baseUrl}/api/Projects/{templateId}/run?runSynchronous=true&secondsTimeOut=60" \
60
+ -H "Authorization: Bearer <token>" -H "x-version: 1.19" \
61
+ -H "Content-Type: application/json" \
62
+ -d '{ "payload": { /* input variables */ }, "connectionId": null }'
63
+ ```
64
+ Async variant: omit `runSynchronous` → response is `{ "instanceId": "<guid>" }`, then poll:
65
+ ```bash
66
+ curl "{baseUrl}/api/Projects/instances/{instanceId}/status?flowTemplateId={templateId}" \
67
+ -H "Authorization: Bearer <token>" -H "x-version: 1.19"
68
+ ```
69
+ The two-step path (`publish` → `launch`) and the full input-variable shape are in [04 — Processes](endpoints/04-processes.md).
70
+
71
+ ### C. Trigger a process from an external system (no auth)
72
+ ```bash
73
+ # id = the webhook id configured in PROCESIO; body becomes the trigger payload
74
+ curl -X POST "{baseUrl}/api/Webhooks/launch/{webhookId}" \
75
+ -H "Content-Type: application/json" -d '{ "any": "payload" }'
76
+ ```
77
+ Add `?respondOk=true` for a bare 200, or `?payload=<json>` to override the body. See [12](endpoints/12-webhooks-notifications-misc.md).
78
+
79
+ ### D. Read/write Data Store rows
80
+ - Query: `GET {baseUrl}/api/DataStore/{dataStoreId}/rows?filters[0].displayName=Email&filters[0].operator=1&filters[0].value=a@example.com`
81
+ - Insert/update/delete rows are JSON dictionaries keyed by **column display name**. See [09](endpoints/09-datastore-datatypes.md).
82
+
83
+ ### E. Receive async results in realtime
84
+ Connect to the SignalR hub at `{notificationsHost}/hub/notification?userId=<guid>`, invoke `GetConnectionId()`, pass that `connectionId` to connector/test/CSV start endpoints, and handle the server→client events. See [13](endpoints/13-realtime-signalr.md).
85
+
86
+ ---
87
+
88
+ ## Conventions recap (see [02](02-conventions.md) for detail)
89
+
90
+ - **Auth:** `Authorization: Bearer <jwt>` *or* `key` + `value` headers (API key). Some endpoints are `[AllowAnonymous]` (login, webhook trigger, public forms, custom-URL launch).
91
+ - **Version:** `x-version` header, default `1.19`. No version in the URL path.
92
+ - **Bodies:** JSON (Newtonsoft) unless noted; auth endpoints use `x-www-form-urlencoded`; uploads use `multipart/form-data` (file part usually named `package`).
93
+ - **Workspace:** select with `workspaceId` header or `?targetWorkspace=<guid>`.
94
+ - **Errors:** array of `{ statusCode (PROCESIO error code), value (message), target (field) }`; HTTP status carries the category.
95
+
96
+ ---
97
+
98
+ ## Provenance
99
+
100
+ Generated from the PROCESIO Back-End workspace. Repositories were synced on their default branches before extraction:
101
+
102
+ The public surface is the **Web-Api** gateway (`api/*` routes, port 8000). The SignalR hub is hosted by **System-Notifications** (`/hub/notification`). Extraction date: 2026-06-24. API version at extraction: **1.19**.
103
+
104
+ > If PROCESIO's source changes, re-sync the repos (`/be-pull`) and re-run the extraction; the `x-version` value and endpoint set may shift.