@gadmin2n/schematics 0.0.144 → 0.0.146

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 (280) hide show
  1. package/dist/lib/application/files/gadmin2-game-angle-demo/config/.types.d.ts +10 -0
  2. package/dist/lib/application/files/gadmin2-game-angle-demo/config/prisma/approval.prisma +2 -0
  3. package/dist/lib/application/files/gadmin2-game-angle-demo/config/prisma/workflow.prisma +140 -19
  4. package/dist/lib/application/files/gadmin2-game-angle-demo/server/package.json +2 -2
  5. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/data-mngt.seed.ts +0 -2
  6. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/workflow-node-types.ts +694 -327
  7. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/workflow-outbox.ts +49 -0
  8. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/workflow.seed.ts +35 -5
  9. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/agenda/agenda.service.ts +14 -24
  10. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/codeRuntime/code-executor.spec.ts +23 -0
  11. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/codeRuntime/code-executor.ts +16 -5
  12. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/codeRuntime/code-runtime.controller.spec.ts +98 -0
  13. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/codeRuntime/code-runtime.controller.ts +26 -6
  14. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/codeRuntime/code-runtime.dto.ts +17 -2
  15. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction-runtime.controller.spec.ts +1 -0
  16. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction-runtime.controller.ts +3 -0
  17. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction-runtime.dto.ts +0 -2
  18. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction-signal-outbox.service.spec.ts +30 -0
  19. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction-signal-outbox.service.ts +28 -6
  20. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction.service.spec.ts +63 -0
  21. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction.service.ts +151 -38
  22. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-wait.handler.ts +4 -1
  23. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/human-approval.handler.spec.ts +16 -5
  24. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/human-approval.handler.ts +23 -6
  25. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/httpRequest/http-request-runtime.controller.spec.ts +130 -0
  26. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/httpRequest/http-request-runtime.controller.ts +62 -62
  27. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/httpRequest/http-request-runtime.dto.ts +15 -1
  28. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/httpRequest/http-request-runtime.util.spec.ts +70 -9
  29. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/httpRequest/http-request-runtime.util.ts +31 -7
  30. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/approval-signal-outbox.service.spec.ts +30 -0
  31. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/approval-signal-outbox.service.ts +28 -6
  32. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/approval-subject-source.util.spec.ts +50 -3
  33. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/approval-subject-source.util.ts +26 -3
  34. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/human-approval.dto.ts +53 -47
  35. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/human-approval.errors.ts +0 -1
  36. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/human-approval.service.spec.ts +541 -0
  37. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/human-approval.service.ts +442 -200
  38. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/outbox-retry.util.ts +1 -0
  39. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/runtime/human-approval-runtime.controller.spec.ts +150 -0
  40. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/runtime/human-approval-runtime.controller.ts +56 -40
  41. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/runtime/human-approval-runtime.dto.ts +16 -60
  42. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/integrationConnection/integration-connection.controller.ts +13 -0
  43. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/integrationConnection/integration-connection.service.spec.ts +44 -0
  44. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/integrationConnection/integration-connection.service.ts +6 -0
  45. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/dsl-validate.util.spec.ts +258 -12
  46. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/dsl-validate.util.ts +127 -14
  47. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/manual-workflow-execution.spec.ts +85 -0
  48. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/manual-workflow-execution.ts +108 -0
  49. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/parameter-binding.ts +5 -5
  50. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/temporal.service.spec.ts +96 -25
  51. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/temporal.service.ts +77 -34
  52. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-callable.spec.ts +23 -34
  53. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-callable.ts +0 -21
  54. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-cancellation.spec.ts +245 -0
  55. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-compiler.service.spec.ts +639 -188
  56. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-compiler.service.ts +408 -235
  57. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-compiler.types.ts +1 -3
  58. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-data-edge.util.spec.ts +279 -95
  59. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-data-edge.util.ts +360 -80
  60. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-event-catalog.spec.ts +323 -0
  61. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-execution-idempotency.spec.ts +773 -0
  62. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-execution.dto.ts +7 -13
  63. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-export.dto.ts +0 -16
  64. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-export.service.spec.ts +184 -0
  65. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-export.service.ts +69 -138
  66. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-handle-validator.spec.ts +113 -0
  67. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-handle-validator.ts +59 -13
  68. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-runtime.facade.ts +86 -0
  69. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-switch-config.spec.ts +25 -0
  70. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-switch-config.ts +45 -0
  71. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow.controller.spec.ts +78 -43
  72. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow.controller.ts +103 -40
  73. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow.dto.ts +57 -0
  74. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow.module.ts +3 -1
  75. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow.service.spec.ts +1000 -240
  76. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow.service.ts +2184 -317
  77. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowConfig/node-config-validator.service.spec.ts +279 -2
  78. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowConfig/node-config-validator.service.ts +5 -1
  79. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowConfig/subject-config-validator.service.spec.ts +4 -1
  80. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowConfig/subject-config-validator.service.ts +5 -1
  81. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowConfig/widget-catalog.service.spec.ts +12 -3
  82. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowConfig/widget-catalog.service.ts +10 -1
  83. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeInstance/workflowNodeInstance.service.spec.ts +2 -24
  84. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeInstance/workflowNodeInstance.service.ts +3 -70
  85. package/dist/lib/application/files/gadmin2-game-angle-demo/web/package.json +3 -1
  86. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/RowActions.tsx +25 -5
  87. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/WorkflowActionButton.test.tsx +71 -0
  88. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/WorkflowActionButton.tsx +89 -0
  89. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/index.ts +1 -0
  90. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/header.tsx +52 -12
  91. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/config/routeRegistry.tsx +12 -0
  92. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/constants/layout.ts +2 -2
  93. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/AddDataModal.tsx +10 -33
  94. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/AddPageModal.tsx +13 -37
  95. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/DevShell.tsx +55 -7
  96. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/style.css +14 -0
  97. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/http.ts +10 -0
  98. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/list.tsx +1 -0
  99. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/workflowAction.ts +19 -0
  100. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/index.ts +1 -0
  101. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/types.ts +3 -1
  102. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useDynamicResources.tsx +1 -6
  103. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useReferenceUpload.ts +95 -0
  104. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/locales/en/common.json +2 -2
  105. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/locales/en/workflow.json +672 -110
  106. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/locales/zh_CN/common.json +2 -2
  107. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/locales/zh_CN/workflow.json +676 -114
  108. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/plugins/devShellPlugin.ts +13 -1
  109. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/agenda/index.tsx +1 -0
  110. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasEditPage.tsx +38 -4
  111. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasListPage.tsx +276 -376
  112. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/CanvasAiModal.tsx +126 -6
  113. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/human-approval/DecisionModal.test.tsx +50 -0
  114. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/human-approval/DecisionModal.tsx +48 -11
  115. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/human-approval/inbox.tsx +32 -34
  116. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/business-events/RegisterBusinessEventModal.test.tsx +111 -0
  117. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/business-events/RegisterBusinessEventModal.tsx +167 -0
  118. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/business-events/business-events.css +99 -0
  119. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/business-events/detail.test.tsx +106 -0
  120. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/business-events/detail.tsx +324 -0
  121. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/business-events/index.test.tsx +73 -0
  122. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/business-events/index.tsx +359 -0
  123. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/CanvasZoomControls.tsx +46 -0
  124. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/CreateNodeInstanceDrawer.tsx +9 -1
  125. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/CustomNode.test.tsx +105 -4
  126. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/CustomNode.tsx +90 -48
  127. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/DeletableEdge.tsx +3 -2
  128. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/DslView.test.tsx +259 -0
  129. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/DslView.tsx +167 -103
  130. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/EnhancedFlowRenderer.tsx +142 -140
  131. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/ExecutionStatusNode.test.tsx +60 -15
  132. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/ExecutionStatusNode.tsx +25 -12
  133. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/FlowRenderer.tsx +364 -200
  134. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/NewNodeDefaults.test.tsx +220 -52
  135. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/NodeOutputSummary.test.tsx +260 -0
  136. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/NodeOutputSummary.tsx +300 -130
  137. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/NodePropertyPanel.test.tsx +507 -33
  138. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/NodePropertyPanel.tsx +630 -592
  139. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/ParameterBindingEditor.tsx +67 -70
  140. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/ReadonlyNodePanel.test.tsx +90 -0
  141. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/ReadonlyNodePanel.tsx +325 -0
  142. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/RunWorkflowModal.test.tsx +52 -0
  143. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/RunWorkflowModal.tsx +14 -9
  144. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/StatusCards.tsx +2 -1
  145. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/VersionPanel.tsx +2 -1
  146. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/WorkflowCodeEditor.test.tsx +42 -0
  147. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/WorkflowCodeEditor.tsx +76 -0
  148. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/WorkflowWorkspaceHeader.tsx +56 -0
  149. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/parameter-binding-editor.css +46 -0
  150. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/workflow-code-editor.css +34 -0
  151. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/connections/ConnectionModal.test.tsx +53 -7
  152. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/connections/ConnectionModal.tsx +123 -62
  153. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/connections/connections.css +85 -0
  154. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/connections/connectionsApi.ts +29 -0
  155. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/connections/index.test.tsx +75 -0
  156. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/connections/index.tsx +69 -36
  157. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/editor.test.tsx +494 -0
  158. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/editor.tsx +665 -194
  159. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/hooks/useReferencedNodeInstanceConfigs.test.tsx +92 -0
  160. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/hooks/useReferencedNodeInstanceConfigs.ts +96 -0
  161. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/hooks/useWorkflowAgent.test.tsx +297 -0
  162. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/hooks/useWorkflowAgent.ts +135 -65
  163. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/index.tsx +53 -42
  164. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/instance-detail.tsx +344 -155
  165. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/instances.tsx +79 -58
  166. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/components/CreateNodeInstanceModal.tsx +123 -144
  167. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/components/NodeInstanceForm.tsx +169 -98
  168. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/components/node-instance-form.css +91 -0
  169. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/index.tsx +54 -31
  170. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/node-config.css +854 -0
  171. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/schema-form/SchemaField.tsx +41 -14
  172. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/schema-form/SchemaForm.test.tsx +75 -0
  173. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/schema-form/SchemaForm.tsx +3 -0
  174. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/schema-form/default-widgets.tsx +20 -2
  175. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/schema-form/widget-registry.tsx +2 -1
  176. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/show.tsx +61 -66
  177. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ApprovalRuleEditor.test.tsx +33 -1
  178. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ApprovalRuleEditor.tsx +47 -15
  179. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/BranchConfigEditors.test.tsx +104 -0
  180. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/CallableInputParametersEditor.tsx +22 -52
  181. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/CodeConfigEditor.test.tsx +72 -0
  182. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/CodeConfigEditor.tsx +78 -70
  183. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/CronTriggerConfigEditor.tsx +569 -0
  184. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/DbExecuteConfigEditor.tsx +130 -0
  185. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/DelayConfigEditor.tsx +100 -0
  186. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/EventTriggerConfigEditor.tsx +620 -0
  187. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ExternalRequestConfigEditor.test.tsx +22 -45
  188. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ExternalRequestConfigEditor.tsx +25 -92
  189. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ExternalWaitConfigEditor.tsx +3 -11
  190. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ForEachConfigEditor.test.tsx +58 -0
  191. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ForEachConfigEditor.tsx +107 -0
  192. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/HttpRequestConfigEditor.test.tsx +212 -31
  193. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/HttpRequestConfigEditor.tsx +214 -304
  194. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/HumanApprovalConfigEditor.test.tsx +175 -40
  195. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/HumanApprovalConfigEditor.tsx +693 -293
  196. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/IfElseConfigEditor.tsx +190 -0
  197. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ManualTriggerConfigEditor.test.tsx +152 -0
  198. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ManualTriggerConfigEditor.tsx +286 -0
  199. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ParallelConfigEditor.tsx +101 -0
  200. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ParameterBindingListEditor.tsx +99 -0
  201. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/SimplifiedNodeEditors.test.tsx +495 -0
  202. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/SubWorkflowConfigEditor.test.tsx +124 -0
  203. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/SubWorkflowConfigEditor.tsx +222 -0
  204. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/SubjectPicker.tsx +2 -4
  205. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/SwitchConfigEditor.tsx +204 -0
  206. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/UserGroupCreateModal.tsx +3 -1
  207. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/UserGroupEditModal.tsx +9 -6
  208. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/callable-workflow.ts +4 -0
  209. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/code-config.css +96 -0
  210. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/event-catalog.api.ts +117 -0
  211. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/http-request-config.css +242 -0
  212. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/human-approval-config.css +194 -0
  213. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/show.tsx +264 -167
  214. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/temporal-tenant/index.tsx +6 -9
  215. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/types/parameter-binding.ts +19 -16
  216. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/types.ts +28 -4
  217. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/useWorkflowFormValidation.test.tsx +59 -0
  218. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/useWorkflowFormValidation.ts +24 -0
  219. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/forEachConnection.test.ts +311 -0
  220. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/forEachConnection.ts +198 -0
  221. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/mainFlowConnection.test.ts +143 -0
  222. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/mainFlowConnection.ts +19 -0
  223. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/newNodeConfig.ts +103 -5
  224. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/removeWorkflowEdges.test.ts +158 -3
  225. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/removeWorkflowEdges.ts +117 -9
  226. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/resolveEffectiveOutput.test.ts +70 -0
  227. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/resolveEffectiveOutput.ts +48 -0
  228. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/resolveLookupPorts.test.ts +55 -0
  229. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/resolveLookupPorts.ts +95 -22
  230. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/resolveOutputs.test.ts +148 -1
  231. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/resolveOutputs.ts +62 -11
  232. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/resolveWorkflowDisplay.test.ts +19 -0
  233. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/resolveWorkflowDisplay.ts +1 -1
  234. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/subWorkflowChange.test.ts +45 -0
  235. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/subWorkflowChange.ts +26 -0
  236. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/validateWorkflowDsl.test.ts +502 -0
  237. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/validateWorkflowDsl.ts +694 -0
  238. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/workflowDateTime.test.ts +27 -0
  239. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/workflowDateTime.ts +33 -0
  240. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/workflowHistory.test.ts +34 -0
  241. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/workflowHistory.ts +52 -0
  242. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/workflowPublishError.test.ts +99 -0
  243. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/workflowPublishError.ts +91 -0
  244. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/workflowSkillPrompt.test.ts +74 -0
  245. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/workflowSkillPrompt.ts +120 -0
  246. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/workflow-ui.css +481 -0
  247. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/styles/index.css +1 -1
  248. package/package.json +1 -1
  249. package/dist/lib/application/files/gadmin2-game-angle-demo/config/ui/WorkflowEventOutbox.ts +0 -62
  250. package/dist/lib/application/files/gadmin2-game-angle-demo/server/scripts/migrate-human-approval-configs.ts +0 -86
  251. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/workflow-event-trigger.ts +0 -60
  252. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/workflows.ts +0 -698
  253. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/human-approval.external-decision.spec.ts +0 -183
  254. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/legacy-approval-config-migration.ts +0 -227
  255. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-http-response.spec.ts +0 -82
  256. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-http-response.ts +0 -111
  257. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowEventOutbox/workflowEventOutbox.controller.spec.ts +0 -54
  258. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowEventOutbox/workflowEventOutbox.controller.ts +0 -147
  259. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowEventOutbox/workflowEventOutbox.module.ts +0 -10
  260. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowEventOutbox/workflowEventOutbox.service.spec.ts +0 -350
  261. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowEventOutbox/workflowEventOutbox.service.ts +0 -110
  262. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/index.ts +0 -1
  263. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/InstanceRequiredDialog.tsx +0 -106
  264. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/LookupConnectionDialog.test.tsx +0 -45
  265. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/LookupConnectionDialog.tsx +0 -43
  266. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/NodeTypeBadge.tsx +0 -36
  267. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/hooks/useNodeInstanceLibrary.ts +0 -41
  268. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ApproverSourceEditor.test.tsx +0 -47
  269. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ApproverSourceEditor.tsx +0 -182
  270. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ReturnResultConfigEditor.test.tsx +0 -34
  271. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ReturnResultConfigEditor.tsx +0 -16
  272. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/approver-source.test.ts +0 -25
  273. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/approver-source.ts +0 -42
  274. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/lookupConnection.test.ts +0 -208
  275. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/lookupConnection.ts +0 -246
  276. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflowEventOutbox/create.tsx +0 -111
  277. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflowEventOutbox/edit.tsx +0 -127
  278. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflowEventOutbox/index.tsx +0 -4
  279. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflowEventOutbox/list.tsx +0 -282
  280. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflowEventOutbox/show.tsx +0 -74
@@ -1,698 +0,0 @@
1
- import { Prisma, PrismaClient } from '@prisma/client';
2
-
3
- /**
4
- * Mock workflow data with DSL, versions, instances, and node executions.
5
- */
6
- const WORKFLOWS = [
7
- {
8
- code: 'daily_data_sync',
9
- name: '每日数据同步',
10
- description: '每天凌晨2点从外部API同步用户数据到本地数据库',
11
- status: 'PUBLISHED' as const,
12
- isEnabled: true,
13
- creator: 'admin',
14
- dsl: {
15
- nodes: [
16
- {
17
- id: 'trigger_1',
18
- type: 'cron_trigger',
19
- label: 'Cron 触发',
20
- position: { x: 100, y: 200 },
21
- },
22
- {
23
- id: 'action_1',
24
- type: 'http_request',
25
- label: '拉取外部数据',
26
- position: { x: 350, y: 200 },
27
- config: {},
28
- },
29
- {
30
- id: 'action_2',
31
- type: 'code',
32
- label: '数据转换',
33
- position: { x: 600, y: 200 },
34
- config: {},
35
- },
36
- {
37
- id: 'action_3',
38
- type: 'db_execute',
39
- label: '写入数据库',
40
- position: { x: 850, y: 200 },
41
- config: {},
42
- },
43
- ],
44
- edges: [
45
- { id: 'e-trigger_1-action_1', source: 'trigger_1', target: 'action_1' },
46
- { id: 'e-action_1-action_2', source: 'action_1', target: 'action_2' },
47
- { id: 'e-action_2-action_3', source: 'action_2', target: 'action_3' },
48
- ],
49
- },
50
- },
51
- {
52
- code: 'user_reg_approval',
53
- name: '新用户注册审批',
54
- description: '新用户注册后触发审批流程,管理员审批通过后激活用户',
55
- status: 'PUBLISHED' as const,
56
- isEnabled: true,
57
- creator: 'admin',
58
- dsl: {
59
- nodes: [
60
- {
61
- id: 'trigger_1',
62
- type: 'webhook_trigger',
63
- label: 'Webhook 接收注册',
64
- position: { x: 100, y: 200 },
65
- },
66
- {
67
- id: 'approval_1',
68
- type: 'approval',
69
- label: '管理员审批',
70
- position: { x: 600, y: 200 },
71
- config: {},
72
- },
73
- {
74
- id: 'condition_1',
75
- type: 'if_else',
76
- label: '审批结果判断',
77
- position: { x: 850, y: 200 },
78
- config: {},
79
- },
80
- {
81
- id: 'action_2',
82
- type: 'db_execute',
83
- label: '激活用户',
84
- position: { x: 1100, y: 100 },
85
- config: {},
86
- },
87
- ],
88
- edges: [
89
- {
90
- id: 'e-trigger_1-approval_1',
91
- source: 'trigger_1',
92
- target: 'approval_1',
93
- },
94
- {
95
- id: 'e-approval_1-condition_1',
96
- source: 'approval_1',
97
- target: 'condition_1',
98
- },
99
- {
100
- id: 'e-condition_1-action_2',
101
- source: 'condition_1',
102
- target: 'action_2',
103
- label: 'true',
104
- },
105
- ],
106
- },
107
- },
108
- {
109
- code: 'error_monitor_alert',
110
- name: '异常监控告警',
111
- description: '监听系统事件并记录异常监控结果',
112
- status: 'PUBLISHED' as const,
113
- isEnabled: true,
114
- creator: 'system',
115
- dsl: {
116
- nodes: [
117
- {
118
- id: 'trigger_1',
119
- type: 'event_trigger',
120
- label: '监听错误事件',
121
- position: { x: 100, y: 200 },
122
- config: {},
123
- },
124
- {
125
- id: 'action_1',
126
- type: 'db_query',
127
- label: '查询近5分钟错误数',
128
- position: { x: 350, y: 200 },
129
- config: {},
130
- },
131
- {
132
- id: 'condition_1',
133
- type: 'if_else',
134
- label: '错误率 > 5%?',
135
- position: { x: 600, y: 200 },
136
- config: {},
137
- },
138
- {
139
- id: 'action_3',
140
- type: 'code',
141
- label: '记录日志',
142
- position: { x: 850, y: 300 },
143
- config: {},
144
- },
145
- ],
146
- edges: [
147
- { id: 'e-trigger_1-action_1', source: 'trigger_1', target: 'action_1' },
148
- {
149
- id: 'e-action_1-condition_1',
150
- source: 'action_1',
151
- target: 'condition_1',
152
- },
153
- {
154
- id: 'e-condition_1-action_3',
155
- source: 'condition_1',
156
- target: 'action_3',
157
- label: 'false',
158
- },
159
- ],
160
- },
161
- },
162
- {
163
- code: 'batch_data_export',
164
- name: '批量数据导出',
165
- description: '手动触发导出指定表的数据为 CSV 文件',
166
- status: 'DRAFT' as const,
167
- isEnabled: false,
168
- creator: 'admin',
169
- dsl: {
170
- nodes: [
171
- {
172
- id: 'trigger_1',
173
- type: 'manual_trigger',
174
- label: '手动触发',
175
- position: { x: 100, y: 200 },
176
- },
177
- {
178
- id: 'action_1',
179
- type: 'db_query',
180
- label: '查询数据',
181
- position: { x: 350, y: 200 },
182
- config: {},
183
- },
184
- {
185
- id: 'loop_1',
186
- type: 'for_each',
187
- label: '遍历分页',
188
- position: { x: 600, y: 200 },
189
- config: {},
190
- },
191
- {
192
- id: 'action_2',
193
- type: 'code',
194
- label: '转换为CSV',
195
- position: { x: 850, y: 200 },
196
- config: {},
197
- },
198
- ],
199
- edges: [
200
- { id: 'e-trigger_1-action_1', source: 'trigger_1', target: 'action_1' },
201
- { id: 'e-action_1-loop_1', source: 'action_1', target: 'loop_1' },
202
- { id: 'e-loop_1-action_2', source: 'loop_1', target: 'action_2' },
203
- ],
204
- },
205
- },
206
- {
207
- code: 'multi_env_deploy',
208
- name: '多环境部署流水线',
209
- description: '并行部署到staging和production环境,需人工审批production',
210
- status: 'PUBLISHED' as const,
211
- isEnabled: true,
212
- creator: 'devops',
213
- dsl: {
214
- nodes: [
215
- {
216
- id: 'trigger_1',
217
- type: 'webhook_trigger',
218
- label: 'CI 回调',
219
- position: { x: 100, y: 200 },
220
- },
221
- {
222
- id: 'parallel_1',
223
- type: 'parallel',
224
- label: '并行部署',
225
- position: { x: 350, y: 200 },
226
- config: {},
227
- },
228
- {
229
- id: 'action_1',
230
- type: 'http_request',
231
- label: '部署 Staging',
232
- position: { x: 600, y: 100 },
233
- config: {},
234
- },
235
- {
236
- id: 'approval_1',
237
- type: 'approval',
238
- label: 'Production 审批',
239
- position: { x: 600, y: 300 },
240
- config: {},
241
- },
242
- {
243
- id: 'action_2',
244
- type: 'http_request',
245
- label: '部署 Production',
246
- position: { x: 850, y: 300 },
247
- config: {},
248
- },
249
- ],
250
- edges: [
251
- {
252
- id: 'e-trigger_1-parallel_1',
253
- source: 'trigger_1',
254
- target: 'parallel_1',
255
- },
256
- {
257
- id: 'e-parallel_1-action_1',
258
- source: 'parallel_1',
259
- target: 'action_1',
260
- },
261
- {
262
- id: 'e-parallel_1-approval_1',
263
- source: 'parallel_1',
264
- target: 'approval_1',
265
- },
266
- {
267
- id: 'e-approval_1-action_2',
268
- source: 'approval_1',
269
- target: 'action_2',
270
- },
271
- ],
272
- },
273
- },
274
- {
275
- code: 'user_role_change',
276
- name: '用户角色变更审计',
277
- description: '当 t_admin_user_role 表中用户角色发生变更时,记录审计日志',
278
- status: 'PUBLISHED' as const,
279
- isEnabled: true,
280
- creator: 'admin',
281
- dsl: {
282
- nodes: [
283
- {
284
- id: 'trigger_1',
285
- type: 'event_trigger',
286
- label: '监听角色变更事件',
287
- position: { x: 100, y: 200 },
288
- config: { eventName: 'user_role.updated' },
289
- },
290
- {
291
- id: 'action_1',
292
- type: 'db_query',
293
- label: '查询用户详情',
294
- position: { x: 350, y: 200 },
295
- config: {
296
- query:
297
- 'SELECT userid, username, roles FROM t_admin_user_role WHERE userid = $1',
298
- },
299
- },
300
- {
301
- id: 'action_2',
302
- type: 'code',
303
- label: '对比角色差异',
304
- position: { x: 600, y: 200 },
305
- config: {
306
- script:
307
- 'const prev = JSON.parse(input.previousRoles); const curr = JSON.parse(input.currentRoles); return { added: curr.filter(r => !prev.includes(r)), removed: prev.filter(r => !curr.includes(r)) };',
308
- },
309
- },
310
- {
311
- id: 'condition_1',
312
- type: 'if_else',
313
- label: '是否涉及ADMIN角色',
314
- position: { x: 850, y: 200 },
315
- config: {
316
- conditions: [
317
- { field: 'added', operator: 'contains', value: 'SYSTEM_ADMIN' },
318
- ],
319
- },
320
- },
321
- {
322
- id: 'action_4',
323
- type: 'db_execute',
324
- label: '写入审计日志',
325
- position: { x: 1100, y: 300 },
326
- config: { operation: 'insert', table: 't_admin_audit_log' },
327
- },
328
- ],
329
- edges: [
330
- { id: 'e-trigger_1-action_1', source: 'trigger_1', target: 'action_1' },
331
- { id: 'e-action_1-action_2', source: 'action_1', target: 'action_2' },
332
- {
333
- id: 'e-action_2-condition_1',
334
- source: 'action_2',
335
- target: 'condition_1',
336
- },
337
- {
338
- id: 'e-condition_1-action_4-true',
339
- source: 'condition_1',
340
- target: 'action_4',
341
- label: 'true',
342
- },
343
- {
344
- id: 'e-condition_1-action_4',
345
- source: 'condition_1',
346
- target: 'action_4',
347
- label: 'false',
348
- },
349
- ],
350
- },
351
- },
352
- {
353
- code: 'event_remind_sync',
354
- name: 'Event活动提醒与同步',
355
- description: '当 t_event 表新增活动或活动即将开始时,自动同步到 ServiceNow',
356
- status: 'PUBLISHED' as const,
357
- isEnabled: true,
358
- creator: 'admin',
359
- dsl: {
360
- nodes: [
361
- {
362
- id: 'trigger_1',
363
- type: 'cron_trigger',
364
- label: '每日9点检查',
365
- position: { x: 100, y: 200 },
366
- config: { cron: '0 9 * * *', timezone: 'Asia/Shanghai' },
367
- },
368
- {
369
- id: 'action_1',
370
- type: 'db_query',
371
- label: '查询3天内活动',
372
- position: { x: 350, y: 200 },
373
- config: {
374
- query:
375
- "SELECT * FROM t_event WHERE start_date BETWEEN NOW() AND NOW() + INTERVAL '3 days'",
376
- },
377
- },
378
- {
379
- id: 'condition_1',
380
- type: 'if_else',
381
- label: '有即将开始的活动?',
382
- position: { x: 600, y: 200 },
383
- config: {
384
- conditions: [{ field: 'rowCount', operator: 'gt', value: '0' }],
385
- },
386
- },
387
- {
388
- id: 'loop_1',
389
- type: 'for_each',
390
- label: '遍历活动列表',
391
- position: { x: 850, y: 150 },
392
- config: { iteratorField: 'rows', concurrency: 3 },
393
- },
394
- {
395
- id: 'condition_2',
396
- type: 'if_else',
397
- label: '已同步ServiceNow?',
398
- position: { x: 1100, y: 150 },
399
- config: {
400
- conditions: [
401
- {
402
- field: 'currentItem.sn_sys_id',
403
- operator: 'isNotEmpty',
404
- value: '',
405
- },
406
- ],
407
- },
408
- },
409
- {
410
- id: 'action_2',
411
- type: 'http_request',
412
- label: '同步到ServiceNow',
413
- position: { x: 1350, y: 80 },
414
- config: {
415
- url: 'https://servicenow.example.com/api/events',
416
- method: 'POST',
417
- },
418
- },
419
- {
420
- id: 'action_3',
421
- type: 'db_execute',
422
- label: '更新sn_sys_id',
423
- position: { x: 1600, y: 80 },
424
- config: { operation: 'update', table: 't_event', where: 'id = $1' },
425
- },
426
- {
427
- id: 'action_5',
428
- type: 'code',
429
- label: '记录检查完成',
430
- position: { x: 600, y: 350 },
431
- config: {
432
- script: 'return { checked: true, noUpcomingEvents: true };',
433
- },
434
- },
435
- ],
436
- edges: [
437
- { id: 'e-trigger_1-action_1', source: 'trigger_1', target: 'action_1' },
438
- {
439
- id: 'e-action_1-condition_1',
440
- source: 'action_1',
441
- target: 'condition_1',
442
- },
443
- {
444
- id: 'e-condition_1-loop_1',
445
- source: 'condition_1',
446
- target: 'loop_1',
447
- label: 'true',
448
- },
449
- {
450
- id: 'e-condition_1-action_5',
451
- source: 'condition_1',
452
- target: 'action_5',
453
- label: 'false',
454
- },
455
- { id: 'e-loop_1-condition_2', source: 'loop_1', target: 'condition_2' },
456
- {
457
- id: 'e-condition_2-action_2',
458
- source: 'condition_2',
459
- target: 'action_2',
460
- label: 'false',
461
- },
462
- { id: 'e-action_2-action_3', source: 'action_2', target: 'action_3' },
463
- ],
464
- },
465
- },
466
- {
467
- code: 'new_user_onboard',
468
- name: '新增用户自动化流程',
469
- description:
470
- '当 t_admin_user_role 新增用户时,自动分配默认角色、同步到外部系统并记录审计日志',
471
- status: 'PUBLISHED' as const,
472
- isEnabled: true,
473
- creator: 'admin',
474
- dsl: {
475
- nodes: [
476
- {
477
- id: 'trigger_1',
478
- type: 'event_trigger',
479
- label: '监听用户创建事件',
480
- position: { x: 100, y: 200 },
481
- config: { eventName: 'user.created' },
482
- },
483
- {
484
- id: 'action_1',
485
- type: 'db_query',
486
- label: '查询新用户信息',
487
- position: { x: 350, y: 200 },
488
- config: {
489
- query:
490
- 'SELECT userid, username, roles, is_active FROM t_admin_user_role WHERE userid = $1',
491
- },
492
- },
493
- {
494
- id: 'action_2',
495
- type: 'code',
496
- label: '初始化默认角色',
497
- position: { x: 600, y: 200 },
498
- config: {
499
- script:
500
- 'const user = input.rows[0]; if (!user.roles || user.roles === "[]") { return { ...user, roles: JSON.stringify(["GUEST"]), needsUpdate: true }; } return { ...user, needsUpdate: false };',
501
- },
502
- },
503
- {
504
- id: 'condition_1',
505
- type: 'if_else',
506
- label: '需要分配默认角色?',
507
- position: { x: 850, y: 200 },
508
- config: {
509
- conditions: [
510
- { field: 'needsUpdate', operator: 'eq', value: 'true' },
511
- ],
512
- },
513
- },
514
- {
515
- id: 'action_3',
516
- type: 'db_execute',
517
- label: '写入默认角色',
518
- position: { x: 1100, y: 100 },
519
- config: {
520
- operation: 'update',
521
- table: 't_admin_user_role',
522
- data: { roles: '["GUEST"]' },
523
- where: 'userid = $1',
524
- },
525
- },
526
- {
527
- id: 'action_4',
528
- type: 'http_request',
529
- label: '同步到企业通讯录',
530
- position: { x: 1100, y: 300 },
531
- config: {
532
- url: 'https://api.wecom.example.com/user/sync',
533
- method: 'POST',
534
- },
535
- },
536
- {
537
- id: 'action_6',
538
- type: 'db_execute',
539
- label: '记录审计日志',
540
- position: { x: 1600, y: 200 },
541
- config: {
542
- operation: 'insert',
543
- table: 't_admin_audit_log',
544
- data: { action: 'user.onboarded', resource: 'user' },
545
- },
546
- },
547
- ],
548
- edges: [
549
- { id: 'e-trigger_1-action_1', source: 'trigger_1', target: 'action_1' },
550
- { id: 'e-action_1-action_2', source: 'action_1', target: 'action_2' },
551
- {
552
- id: 'e-action_2-condition_1',
553
- source: 'action_2',
554
- target: 'condition_1',
555
- },
556
- {
557
- id: 'e-condition_1-action_3',
558
- source: 'condition_1',
559
- target: 'action_3',
560
- label: 'true',
561
- },
562
- {
563
- id: 'e-condition_1-action_4',
564
- source: 'condition_1',
565
- target: 'action_4',
566
- label: 'false',
567
- },
568
- { id: 'e-action_3-action_4', source: 'action_3', target: 'action_4' },
569
- { id: 'e-action_4-action_6', source: 'action_4', target: 'action_6' },
570
- ],
571
- },
572
- },
573
- ];
574
-
575
- export async function seedWorkflows(prisma: PrismaClient) {
576
- console.log('Seeding workflows...');
577
-
578
- for (const wf of WORKFLOWS) {
579
- // Upsert workflow by code
580
- const workflow = await prisma.workflow.upsert({
581
- where: { code: wf.code },
582
- update: {
583
- name: wf.name,
584
- description: wf.description,
585
- status: wf.status,
586
- isEnabled: wf.isEnabled,
587
- dsl: wf.dsl,
588
- },
589
- create: {
590
- code: wf.code,
591
- name: wf.name,
592
- description: wf.description,
593
- status: wf.status,
594
- isEnabled: wf.isEnabled,
595
- dsl: wf.dsl,
596
- creator: wf.creator,
597
- },
598
- });
599
-
600
- // Create version 1
601
- await prisma.workflowVersion.upsert({
602
- where: { workflowId_version: { workflowId: workflow.id, version: 1 } },
603
- update: {},
604
- create: {
605
- workflowId: workflow.id,
606
- version: 1,
607
- dsl: wf.dsl,
608
- prompt: `创建工作流: ${wf.name}`,
609
- changeSummary: '初始版本',
610
- creator: wf.creator,
611
- },
612
- });
613
-
614
- // For published workflows, create some mock instances
615
- if (wf.status === 'PUBLISHED') {
616
- const version = await prisma.workflowVersion.findFirst({
617
- where: { workflowId: workflow.id, version: 1 },
618
- });
619
-
620
- if (!version) continue;
621
-
622
- // Create 3 instances per published workflow with different statuses
623
- const instanceConfigs = [
624
- { status: 'COMPLETED' as const, daysAgo: 3 },
625
- { status: 'COMPLETED' as const, daysAgo: 1 },
626
- { status: 'RUNNING' as const, daysAgo: 0 },
627
- ];
628
-
629
- for (const cfg of instanceConfigs) {
630
- const startedAt = new Date(
631
- Date.now() - cfg.daysAgo * 24 * 60 * 60 * 1000,
632
- );
633
- const finishedAt =
634
- cfg.status === 'COMPLETED'
635
- ? new Date(startedAt.getTime() + 30000) // 30s later
636
- : null;
637
-
638
- const instance = await prisma.workflowInstance.create({
639
- data: {
640
- workflowId: workflow.id,
641
- versionId: version.id,
642
- status: cfg.status,
643
- context: { trigger: 'auto', env: 'production' },
644
- result:
645
- cfg.status === 'COMPLETED'
646
- ? { success: true, processedCount: 128 }
647
- : Prisma.JsonNull,
648
- startedAt,
649
- finishedAt,
650
- creator: wf.creator,
651
- },
652
- });
653
-
654
- // Create node executions for each instance
655
- const nodes = (wf.dsl as any).nodes || [];
656
- for (let i = 0; i < nodes.length; i++) {
657
- const node = nodes[i];
658
- const nodeStarted = new Date(startedAt.getTime() + i * 5000);
659
- const isLastNode = i === nodes.length - 1;
660
-
661
- let nodeStatus: 'COMPLETED' | 'RUNNING' | 'PENDING' = 'COMPLETED';
662
- if (cfg.status === 'RUNNING') {
663
- if (i === nodes.length - 1) nodeStatus = 'RUNNING';
664
- if (i > nodes.length - 1) nodeStatus = 'PENDING';
665
- }
666
-
667
- await prisma.workflowNodeExecution.upsert({
668
- where: {
669
- instanceId_nodeId: { instanceId: instance.id, nodeId: node.id },
670
- },
671
- update: {},
672
- create: {
673
- instanceId: instance.id,
674
- nodeId: node.id,
675
- nodeType: node.type,
676
- nodeLabel: node.label,
677
- status: nodeStatus,
678
- input: { data: `mock_input_${i}` },
679
- output:
680
- nodeStatus === 'COMPLETED'
681
- ? { data: `mock_output_${i}` }
682
- : Prisma.JsonNull,
683
- startedAt: nodeStarted,
684
- finishedAt:
685
- nodeStatus === 'COMPLETED'
686
- ? new Date(nodeStarted.getTime() + 3000)
687
- : null,
688
- },
689
- });
690
- }
691
- }
692
- }
693
- }
694
-
695
- console.log(
696
- `Seeded ${WORKFLOWS.length} workflows with versions, instances, and node executions.`,
697
- );
698
- }