@gadmin2n/schematics 0.0.139 → 0.0.140

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 (314) hide show
  1. package/dist/lib/application/files/gadmin2-game-angle-demo/Jenkinsfile +6 -34
  2. package/dist/lib/application/files/gadmin2-game-angle-demo/config/prisma/approval.prisma +199 -0
  3. package/dist/lib/application/files/gadmin2-game-angle-demo/config/prisma/system.prisma +9 -0
  4. package/dist/lib/application/files/gadmin2-game-angle-demo/config/prisma/workflow.prisma +191 -14
  5. package/dist/lib/application/files/gadmin2-game-angle-demo/gitignore +6 -5
  6. package/dist/lib/application/files/gadmin2-game-angle-demo/readme.md +10 -3
  7. package/dist/lib/application/files/gadmin2-game-angle-demo/server/migrate-between-pg-schemas.js +6 -4
  8. package/dist/lib/application/files/gadmin2-game-angle-demo/server/package.json +4 -1
  9. package/dist/lib/application/files/gadmin2-game-angle-demo/server/prisma.config.ts +12 -3
  10. package/dist/lib/application/files/gadmin2-game-angle-demo/server/scripts/migrate-human-approval-configs.ts +86 -0
  11. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/workflow-node-types.ts +682 -121
  12. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/workflow.seed.ts +110 -1
  13. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/config/index.ts +28 -0
  14. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/lib/json-body-parser.spec.ts +61 -0
  15. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/lib/json-body-parser.ts +7 -0
  16. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/lib/structured-all-exceptions.filter.spec.ts +54 -0
  17. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/lib/structured-all-exceptions.filter.ts +86 -0
  18. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/main.ts +9 -3
  19. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/approvalChannel/approval-channel.controller.ts +89 -0
  20. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/approvalChannel/approval-channel.dto.ts +68 -0
  21. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/approvalChannel/approval-channel.service.spec.ts +177 -0
  22. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/approvalChannel/approval-channel.service.ts +283 -0
  23. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/approvalChannel/approvalChannel.module.ts +10 -0
  24. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/codeRuntime/code-executor.spec.ts +42 -0
  25. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/codeRuntime/code-executor.ts +108 -0
  26. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/codeRuntime/code-runtime.controller.ts +101 -0
  27. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/codeRuntime/code-runtime.dto.ts +29 -0
  28. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/codeRuntime/codeRuntime.module.ts +21 -0
  29. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction-handler.registry.ts +30 -0
  30. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction-handler.ts +15 -0
  31. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction-runtime.controller.spec.ts +105 -0
  32. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction-runtime.controller.ts +96 -0
  33. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction-runtime.dto.ts +78 -0
  34. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction-signal-outbox.service.spec.ts +56 -0
  35. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction-signal-outbox.service.ts +111 -0
  36. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction-token.spec.ts +23 -0
  37. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction-token.ts +18 -0
  38. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction.service.spec.ts +240 -0
  39. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction.service.ts +339 -0
  40. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction.types.ts +74 -0
  41. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-wait.handler.ts +47 -0
  42. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/externalInteraction.module.ts +41 -0
  43. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/human-approval.handler.spec.ts +70 -0
  44. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/human-approval.handler.ts +76 -0
  45. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/workflow-callback-url.controller.ts +12 -0
  46. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/workflow-callback-url.service.spec.ts +227 -0
  47. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/workflow-callback-url.service.ts +121 -0
  48. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/httpRequest/http-request-runtime.controller.ts +160 -0
  49. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/httpRequest/http-request-runtime.dto.ts +41 -0
  50. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/httpRequest/http-request-runtime.util.spec.ts +171 -0
  51. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/httpRequest/http-request-runtime.util.ts +245 -0
  52. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/httpRequest/httpRequest.module.ts +22 -0
  53. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/approval-rule-evaluator.spec.ts +68 -0
  54. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/approval-rule-evaluator.ts +126 -0
  55. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/approval-rule.types.ts +34 -0
  56. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/approval-signal-outbox.service.ts +115 -0
  57. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/approval-subject-source.util.spec.ts +45 -0
  58. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/approval-subject-source.util.ts +59 -0
  59. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/human-approval.controller.ts +72 -0
  60. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/human-approval.dto.ts +144 -0
  61. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/human-approval.errors.ts +19 -0
  62. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/human-approval.external-decision.spec.ts +350 -0
  63. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/human-approval.service.ts +774 -0
  64. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/humanApproval.module.ts +46 -0
  65. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/legacy-approval-config-migration.ts +227 -0
  66. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/outbox-retry.util.ts +14 -0
  67. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/runtime/human-approval-runtime.controller.ts +151 -0
  68. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/runtime/human-approval-runtime.dto.ts +88 -0
  69. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/runtime/runtime-token.guard.ts +43 -0
  70. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/index.ts +21 -1
  71. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/integrationConnection/integration-connection.controller.ts +77 -0
  72. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/integrationConnection/integration-connection.dto.ts +98 -0
  73. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/integrationConnection/integration-connection.service.ts +277 -0
  74. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/integrationConnection/integration-secret-cipher.spec.ts +14 -0
  75. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/integrationConnection/integration-secret-cipher.ts +59 -0
  76. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/integrationConnection/integrationConnection.module.ts +10 -0
  77. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/subjectProvider/actor-context.util.ts +27 -0
  78. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/subjectProvider/providers/user-group.provider.ts +208 -0
  79. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/subjectProvider/providers/user.provider.ts +168 -0
  80. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/subjectProvider/subject-provider.controller.spec.ts +157 -0
  81. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/subjectProvider/subject-provider.controller.ts +176 -0
  82. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/subjectProvider/subject-provider.dto.ts +21 -0
  83. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/subjectProvider/subject-provider.errors.ts +78 -0
  84. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/subjectProvider/subject-provider.registry.spec.ts +100 -0
  85. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/subjectProvider/subject-provider.registry.ts +115 -0
  86. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/subjectProvider/subject-provider.types.ts +97 -0
  87. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/subjectProvider/subjectProvider.module.ts +34 -0
  88. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/temporalTenantConfig/temporalTenantConfig.controller.spec.ts +89 -1
  89. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/temporalTenantConfig/temporalTenantConfig.controller.ts +4 -0
  90. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/userGroup/user-group.controller.ts +119 -0
  91. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/userGroup/user-group.dto.ts +91 -0
  92. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/userGroup/user-group.errors.ts +34 -0
  93. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/userGroup/user-group.service.spec.ts +161 -0
  94. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/userGroup/user-group.service.ts +390 -0
  95. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/userGroup/userGroup.module.ts +10 -0
  96. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/dsl-validate.util.spec.ts +17 -0
  97. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/dsl-validate.util.ts +8 -2
  98. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/parameter-binding.ts +93 -0
  99. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-callable.spec.ts +158 -0
  100. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-callable.ts +155 -0
  101. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-compiler.service.spec.ts +363 -0
  102. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-compiler.service.ts +354 -0
  103. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-compiler.types.ts +43 -0
  104. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-data-edge.util.spec.ts +174 -0
  105. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-data-edge.util.ts +149 -0
  106. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-dsl-comparison.ts +43 -0
  107. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-execution.dto.ts +1 -1
  108. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-export.dto.ts +4 -0
  109. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-export.service.ts +70 -28
  110. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-handle-validator.ts +128 -0
  111. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow.controller.ts +12 -1
  112. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow.module.ts +18 -3
  113. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow.service.spec.ts +369 -22
  114. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow.service.ts +319 -90
  115. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowConfig/node-config-validator.service.spec.ts +79 -0
  116. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowConfig/node-config-validator.service.ts +62 -0
  117. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowConfig/schema.types.ts +10 -0
  118. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowConfig/subject-config-validator.service.spec.ts +124 -0
  119. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowConfig/subject-config-validator.service.ts +236 -0
  120. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowConfig/widget-catalog.service.spec.ts +49 -0
  121. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowConfig/widget-catalog.service.ts +69 -0
  122. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowConfig/workflowConfig.module.ts +20 -0
  123. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeInstance/node-instance-config.util.spec.ts +15 -0
  124. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeInstance/node-instance-config.util.ts +25 -0
  125. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeInstance/workflowNodeInstance.controller.ts +103 -11
  126. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeInstance/workflowNodeInstance.dto.ts +98 -0
  127. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeInstance/workflowNodeInstance.module.ts +3 -0
  128. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeInstance/workflowNodeInstance.service.spec.ts +72 -62
  129. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeInstance/workflowNodeInstance.service.ts +148 -11
  130. package/dist/lib/application/files/gadmin2-game-angle-demo/web/package.json +13 -9
  131. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/App.tsx +5 -2
  132. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/authProvider.ts +2 -2
  133. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/BulkActions.tsx +0 -5
  134. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/SearchBar.tsx +26 -18
  135. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/eventList/index.tsx +2 -2
  136. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/logButton/index.tsx +24 -17
  137. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/logList/index.tsx +7 -18
  138. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/modalDiffViewer/index.tsx +2 -2
  139. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/contexts/color-mode/index.tsx +288 -33
  140. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/contexts/color-mode/themeStyles.ts +97 -0
  141. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/SettingDrawer.tsx +251 -0
  142. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/header.tsx +47 -19
  143. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/layout.tsx +18 -9
  144. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/menuRenderer.tsx +155 -0
  145. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/sider.tsx +123 -129
  146. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/config/routeRegistry.tsx +16 -0
  147. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/constants/layout.ts +2 -1
  148. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/AddDataModal.tsx +98 -3
  149. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/AddPageModal.tsx +101 -0
  150. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/DevShell.tsx +8 -0
  151. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/style.css +51 -0
  152. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/form.tsx +1 -1
  153. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/list.tsx +1 -1
  154. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/login.ts +40 -1
  155. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/show.tsx +5 -5
  156. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useDynamicResources.tsx +16 -1
  157. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useListPageState.ts +10 -7
  158. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/i18n.ts +4 -2
  159. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/locales/en/common.json +26 -2
  160. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/locales/en/workflow.json +556 -0
  161. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/locales/zh_CN/common.json +26 -2
  162. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/locales/zh_CN/workflow.json +556 -0
  163. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/plugins/devShellPlugin.ts +152 -2
  164. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/agenda/index.tsx +6 -1
  165. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/agenda/show.tsx +41 -9
  166. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/agendaJob/edit.tsx +1 -1
  167. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/agendaJob/list.tsx +10 -8
  168. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/agendaJob/show.tsx +3 -3
  169. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/components/action-cell.css +1 -1
  170. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/edit.tsx +1 -1
  171. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/show.tsx +3 -6
  172. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasCell.css +3 -0
  173. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasCell.tsx +45 -13
  174. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasComponentLibrary.tsx +45 -22
  175. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasListPage.tsx +168 -101
  176. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasPage.tsx +248 -74
  177. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasToolbar.tsx +33 -18
  178. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CodeFloatWindow.tsx +16 -10
  179. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/PublishModal.tsx +1 -1
  180. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasContextMenuRegistry.tsx +31 -0
  181. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasDefaults.ts +15 -0
  182. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/BarChartDataSourceModal.tsx +16 -11
  183. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/CanvasAiModal.tsx +25 -21
  184. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/ExportModal.tsx +6 -1
  185. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/LineChartDataSourceModal.tsx +9 -10
  186. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/MultiChartConfigModal.tsx +4 -7
  187. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/MultiChartDataSourceModal.tsx +23 -9
  188. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/NumCardDataSourceModal.tsx +16 -11
  189. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/PromptModal.tsx +2 -5
  190. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/RadarChartDataSourceModal.tsx +16 -11
  191. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/TableConfigModal.tsx +2 -9
  192. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/TableDataSourceModal.tsx +23 -12
  193. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/canvasModalProps.ts +2 -17
  194. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/sectionCompactor.test.ts +149 -0
  195. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/sectionCompactor.ts +111 -17
  196. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/types.ts +1 -0
  197. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/whiteboardLayout.test.ts +83 -0
  198. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/whiteboardLayout.ts +118 -0
  199. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/whiteboardName.test.ts +26 -0
  200. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas-page/index.tsx +9 -1
  201. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/edit.tsx +1 -1
  202. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/list.tsx +10 -8
  203. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/show.tsx +3 -6
  204. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/human-approval/DecisionModal.tsx +71 -0
  205. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/human-approval/inbox.tsx +216 -0
  206. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/AssignRolesModal.tsx +6 -1
  207. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/permissionReadme/index.tsx +8 -8
  208. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/Components/modal.tsx +1 -1
  209. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/list.tsx +5 -5
  210. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/Components/modal.tsx +1 -1
  211. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/show-drawer.tsx +1 -1
  212. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/approval-channels/ApprovalChannelModal.test.tsx +84 -0
  213. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/approval-channels/ApprovalChannelModal.tsx +141 -0
  214. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/approval-channels/approval-channel.types.ts +16 -0
  215. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/approval-channels/index.tsx +208 -0
  216. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/CreateNodeInstanceDrawer.tsx +154 -0
  217. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/CustomNode.tsx +194 -5
  218. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/DeletableEdge.tsx +76 -0
  219. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/DslView.tsx +1 -1
  220. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/EnhancedFlowRenderer.tsx +176 -22
  221. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/ExecutionStatusNode.test.tsx +62 -0
  222. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/ExecutionStatusNode.tsx +94 -5
  223. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/ExportModal.tsx +15 -10
  224. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/FlowRenderer.tsx +251 -70
  225. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/ImportModal.tsx +18 -24
  226. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/InstanceRequiredDialog.tsx +106 -0
  227. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/LookupConnectionDialog.test.tsx +45 -0
  228. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/LookupConnectionDialog.tsx +43 -0
  229. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/NewNodeDefaults.test.tsx +279 -0
  230. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/NodeEditModal.tsx +6 -7
  231. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/NodePropertyPanel.test.tsx +335 -0
  232. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/NodePropertyPanel.tsx +433 -237
  233. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/ParameterBindingEditor.tsx +179 -0
  234. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/RunWorkflowModal.tsx +18 -16
  235. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/StatusCards.tsx +20 -16
  236. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/VersionPanel.tsx +6 -4
  237. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/connections/ConnectionModal.test.tsx +68 -0
  238. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/connections/ConnectionModal.tsx +367 -0
  239. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/connections/connection.types.ts +21 -0
  240. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/connections/index.tsx +171 -0
  241. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/editor.tsx +38 -22
  242. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/hooks/useNodeInstanceLibrary.ts +41 -0
  243. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/hooks/useWorkflowAgent.ts +6 -0
  244. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/index.tsx +27 -20
  245. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/instance-detail.tsx +8 -11
  246. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/instances.tsx +6 -1
  247. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/components/NodeInstanceForm.tsx +56 -23
  248. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/create.tsx +21 -6
  249. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/edit.tsx +17 -20
  250. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/index.tsx +6 -1
  251. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/schema-form/SchemaField.tsx +311 -0
  252. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/schema-form/SchemaForm.test.tsx +218 -0
  253. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/schema-form/SchemaForm.tsx +83 -0
  254. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/schema-form/default-widgets.tsx +135 -0
  255. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/schema-form/schema-defaults.ts +36 -0
  256. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/schema-form/schema.types.ts +32 -0
  257. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/schema-form/widget-registry.test.tsx +23 -0
  258. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/schema-form/widget-registry.tsx +52 -0
  259. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/show.tsx +9 -13
  260. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ApprovalRequestTriggerConfigEditor.tsx +39 -0
  261. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ApprovalRuleEditor.test.tsx +20 -0
  262. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ApprovalRuleEditor.tsx +72 -0
  263. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ApproverSourceEditor.test.tsx +47 -0
  264. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ApproverSourceEditor.tsx +185 -0
  265. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/CallableInputParametersEditor.test.tsx +102 -0
  266. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/CallableInputParametersEditor.tsx +150 -0
  267. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/CodeConfigEditor.tsx +103 -0
  268. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ExternalRequestConfigEditor.test.tsx +93 -0
  269. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ExternalRequestConfigEditor.tsx +196 -0
  270. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ExternalWaitConfigEditor.tsx +303 -0
  271. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/HttpRequestConfigEditor.test.tsx +189 -0
  272. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/HttpRequestConfigEditor.tsx +706 -0
  273. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/HumanApprovalConfigEditor.test.tsx +86 -0
  274. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/HumanApprovalConfigEditor.tsx +458 -0
  275. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ReturnResultConfigEditor.test.tsx +53 -0
  276. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ReturnResultConfigEditor.tsx +91 -0
  277. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/SubjectPicker.test.tsx +61 -0
  278. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/SubjectPicker.tsx +266 -0
  279. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/SubmitApprovalResultConfigEditor.tsx +104 -0
  280. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/SubmitExternalResultConfigEditor.tsx +98 -0
  281. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/UserGroupCreateModal.tsx +70 -0
  282. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/UserGroupEditModal.tsx +138 -0
  283. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/approver-source.test.ts +25 -0
  284. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/approver-source.ts +42 -0
  285. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/subject-provider.api.ts +95 -0
  286. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/show.tsx +15 -11
  287. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/temporal-tenant/index.tsx +49 -8
  288. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/types/parameter-binding.ts +49 -0
  289. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/types.ts +31 -2
  290. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/lookupConnection.test.ts +208 -0
  291. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/lookupConnection.ts +246 -0
  292. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/newNodeConfig.ts +73 -0
  293. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/removeWorkflowEdges.test.ts +34 -0
  294. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/removeWorkflowEdges.ts +18 -0
  295. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/resolveLookupPorts.ts +66 -0
  296. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/resolveOutputs.test.ts +39 -0
  297. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/resolveOutputs.ts +48 -0
  298. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/resolveWorkflowDisplay.test.ts +51 -0
  299. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/resolveWorkflowDisplay.ts +32 -0
  300. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflowEventOutbox/edit.tsx +1 -1
  301. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflowEventOutbox/list.tsx +10 -8
  302. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflowEventOutbox/show.tsx +3 -3
  303. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/styles/antd-theme-vars.css +93 -0
  304. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/styles/antd.css +8 -8
  305. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/styles/fc.css +4 -4
  306. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/styles/index.css +20 -5
  307. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/styles/show-drawer.module.css +3 -3
  308. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/styles/show-page.module.css +3 -3
  309. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/styles/theme-styles.css +81 -0
  310. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/test/setup.ts +5 -0
  311. package/dist/lib/application/files/gadmin2-game-angle-demo/web/vite.config.ts +1 -7
  312. package/dist/lib/application/files/gadmin2-game-angle-demo/web/vitest.config.ts +12 -0
  313. package/package.json +1 -1
  314. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/components/DynamicConfigForm.tsx +0 -154
@@ -1,6 +1,6 @@
1
1
  // see https://www.jenkins.io/doc/book/pipeline/syntax/
2
2
  //
3
- // Monorepo pipeline for gadmin-test: 3 deployable modules (web / server / worker).
3
+ // Monorepo pipeline for gadmin-test: 3 deployable modules (web / server ).
4
4
  // 路径触发:哪个模块代码有改动就构建哪个,纯文档改动跳过所有构建。
5
5
  // 风格沿用 erp-frontend / erp-backend 的 Jenkinsfile(声明式、Coding CI 环境变量、Spinnaker webhook)。
6
6
 
@@ -17,7 +17,6 @@ pipeline {
17
17
  // TODO: 确认这三个 image name 与 Spinnaker 应用 / K8s deployment 命名一致
18
18
  WEB_IMAGE_SHORT = "gadmin2-web"
19
19
  SERVER_IMAGE_SHORT = "gadmin2-server"
20
- WORKER_IMAGE_SHORT = "gadmin2-worker"
21
20
 
22
21
  // 代码生成中间镜像(不推送到 registry,仅本地 docker daemon 临时存活)
23
22
  CODEGEN_IMAGE = "gadmin2-codegen:${IMAGE_VERSION}"
@@ -75,10 +74,9 @@ pipeline {
75
74
 
76
75
  def buildWeb = false
77
76
  def buildServer = false
78
- def buildWorker = false
79
77
 
80
78
  if (!baseValid) {
81
- buildWeb = true; buildServer = true; buildWorker = true
79
+ buildWeb = true; buildServer = true;
82
80
  } else if (changedFiles.isEmpty()) {
83
81
  echo '没有文件变更,全部跳过'
84
82
  } else {
@@ -92,27 +90,24 @@ pipeline {
92
90
  // config/ui/** → web(前端 CRUD 代码由 config/ui 生成)
93
91
  // config/prisma/** → server + web(后端模型由 prisma 生成;前端 enums 通过 yarn sync:code 与后端同步)
94
92
  // server/** → server
95
- // temporal/worker/**→ worker
96
93
  buildWeb = matches(nonDoc, 'web/') || matches(nonDoc, 'config/ui/') || matches(nonDoc, 'config/prisma/')
97
94
  buildServer = matches(nonDoc, 'server/') || matches(nonDoc, 'config/prisma/')
98
- buildWorker = matches(nonDoc, 'temporal/worker/')
99
95
  // 注:本项目根目录没有共享的 package.json / tsconfig.json,
100
- // 各模块依赖独立在 web/ server/ temporal/worker/ 下,无需"全量兜底"逻辑。
96
+ // 各模块依赖独立在 web/ server/ 下,无需"全量兜底"逻辑。
101
97
  }
102
98
  }
103
99
 
104
100
  // 用 env 暴露给后续 stage(when 表达式只能读 env / params)
105
101
  env.BUILD_WEB = buildWeb.toString()
106
102
  env.BUILD_SERVER = buildServer.toString()
107
- env.BUILD_WORKER = buildWorker.toString()
108
103
 
109
- echo "buildWeb=${buildWeb}, buildServer=${buildServer}, buildWorker=${buildWorker}"
104
+ echo "buildWeb=${buildWeb}, buildServer=${buildServer}"
110
105
  }
111
106
  }
112
107
  }
113
108
 
114
109
  stage('代码生成') {
115
- // 仅当需要构建 web 或 server 时执行;worker 模块与 gadmin2 codegen 无关
110
+ // 仅当需要构建 web 或 server 时执行å
116
111
  when {
117
112
  anyOf {
118
113
  environment name: 'BUILD_WEB', value: 'true'
@@ -184,26 +179,6 @@ pipeline {
184
179
  }
185
180
  }
186
181
  }
187
-
188
- stage('构建 Worker') {
189
- when { environment name: 'BUILD_WORKER', value: 'true' }
190
- steps {
191
- script {
192
- def imageName = "${env.IMAGE_NAME_PREFIX}/${env.WORKER_IMAGE_SHORT}"
193
- def imageFull = "${env.CODING_DOCKER_REG_HOST}/${imageName}:${env.IMAGE_VERSION}"
194
-
195
- docker.withRegistry(
196
- "${CCI_CURRENT_WEB_PROTOCOL}://${env.CODING_DOCKER_REG_HOST}",
197
- "${env.CODING_ARTIFACTS_CREDENTIALS_ID}"
198
- ) {
199
- // worker 的构建上下文是 temporal/worker/
200
- docker.build("${imageName}:${env.IMAGE_VERSION}", "-f temporal/worker/Dockerfile temporal/worker").push()
201
- sh "docker image rm ${imageFull}"
202
- }
203
- env.WORKER_IMAGE_FULL = imageFull
204
- }
205
- }
206
- }
207
182
  }
208
183
  }
209
184
 
@@ -231,11 +206,8 @@ pipeline {
231
206
  if (env.BUILD_SERVER == 'true' && env.SERVER_IMAGE_FULL) {
232
207
  triggerOne('server', env.SERVER_IMAGE_FULL)
233
208
  }
234
- if (env.BUILD_WORKER == 'true' && env.WORKER_IMAGE_FULL) {
235
- triggerOne('worker', env.WORKER_IMAGE_FULL)
236
- }
237
209
 
238
- if (env.BUILD_WEB != 'true' && env.BUILD_SERVER != 'true' && env.BUILD_WORKER != 'true') {
210
+ if (env.BUILD_WEB != 'true' && env.BUILD_SERVER != 'true') {
239
211
  echo '本次构建无模块更新,跳过 Spinnaker 触发'
240
212
  } else {
241
213
  echo '部署已经触发,可以在 Spinnaker 查看状态: https://api-spinnaker.devops.intlgame.com'
@@ -0,0 +1,199 @@
1
+ enum ApprovalRequestStatus {
2
+ PENDING
3
+ BLOCKED
4
+ APPROVED
5
+ REJECTED
6
+ TIMED_OUT
7
+ CANCELLED
8
+ }
9
+
10
+ enum ApprovalDecisionType {
11
+ APPROVE
12
+ REJECT
13
+ }
14
+
15
+ enum ApprovalRuleMode {
16
+ ANY
17
+ ALL
18
+ COUNT
19
+ PERCENTAGE
20
+ }
21
+
22
+ enum SubjectOutboxStatus {
23
+ PENDING
24
+ PROCESSING
25
+ PROCESSED
26
+ FAILED
27
+ }
28
+
29
+ /// @IgnoreNestCode
30
+ /// @IgnoreReactCode
31
+ /// @IgnoreAutoField
32
+ model UserGroup {
33
+ id BigInt @id @default(autoincrement())
34
+ code String @unique @default(nanoid()) @db.VarChar(21)
35
+ name String @db.VarChar(128)
36
+ description String? @db.VarChar(512)
37
+ revision Int @default(1)
38
+ isActive Boolean @default(true) @map("is_active")
39
+ creator String @default("") @db.VarChar(128)
40
+ createdAt DateTime @default(now()) @map("created_at")
41
+ updatedAt DateTime @updatedAt @map("updated_at")
42
+
43
+ users UserGroupUser[]
44
+ children UserGroupChild[] @relation("ParentGroup")
45
+ parents UserGroupChild[] @relation("ChildGroup")
46
+
47
+ @@map("t_user_group")
48
+ }
49
+
50
+ /// @IgnoreNestCode
51
+ /// @IgnoreReactCode
52
+ /// @IgnoreAutoField
53
+ model UserGroupUser {
54
+ groupId BigInt @map("group_id")
55
+ userId String @map("user_id") @db.VarChar(128)
56
+ creator String @default("") @db.VarChar(128)
57
+ createdAt DateTime @default(now()) @map("created_at")
58
+
59
+ group UserGroup @relation(fields: [groupId], references: [id], onDelete: Restrict)
60
+ user User @relation(fields: [userId], references: [userid], onDelete: Restrict)
61
+
62
+ @@id([groupId, userId])
63
+ @@index([userId], map: "idx_ugu_user_id")
64
+ @@map("t_user_group_user")
65
+ }
66
+
67
+ /// @IgnoreNestCode
68
+ /// @IgnoreReactCode
69
+ /// @IgnoreAutoField
70
+ model UserGroupChild {
71
+ parentGroupId BigInt @map("parent_group_id")
72
+ childGroupId BigInt @map("child_group_id")
73
+ creator String @default("") @db.VarChar(128)
74
+ createdAt DateTime @default(now()) @map("created_at")
75
+
76
+ parentGroup UserGroup @relation("ParentGroup", fields: [parentGroupId], references: [id], onDelete: Restrict)
77
+ childGroup UserGroup @relation("ChildGroup", fields: [childGroupId], references: [id], onDelete: Restrict)
78
+
79
+ @@id([parentGroupId, childGroupId])
80
+ @@index([childGroupId], map: "idx_ugc_child_group_id")
81
+ @@map("t_user_group_child")
82
+ }
83
+
84
+ /// @IgnoreNestCode
85
+ /// @IgnoreReactCode
86
+ /// @IgnoreAutoField
87
+ model ApprovalRequest {
88
+ id BigInt @id @default(autoincrement())
89
+ workflowInstanceId BigInt @map("workflow_instance_id")
90
+ nodeId String @map("node_id") @db.VarChar(64)
91
+ workflowVersionId BigInt @map("workflow_version_id")
92
+ configHash String @map("config_hash") @db.VarChar(64)
93
+ configSnapshot Json @map("config_snapshot")
94
+ approvalRule Json @map("approval_rule")
95
+ rejectionRule Json @map("rejection_rule")
96
+ status ApprovalRequestStatus @default(PENDING)
97
+ blockedReason String? @map("blocked_reason") @db.Text
98
+ startedAt DateTime @default(now()) @map("started_at")
99
+ expiresAt DateTime? @map("expires_at")
100
+ completedAt DateTime? @map("completed_at")
101
+ creator String @default("") @db.VarChar(128)
102
+ createdAt DateTime @default(now()) @map("created_at")
103
+ updatedAt DateTime @updatedAt @map("updated_at")
104
+
105
+ subjects ApprovalRequestSubject[]
106
+ candidates ApprovalCandidate[]
107
+ decisions ApprovalDecision[]
108
+ signalOutboxes ApprovalSignalOutbox[]
109
+
110
+ @@unique([workflowInstanceId, nodeId], map: "uk_ar_workflow_instance_node")
111
+ @@index([workflowVersionId], map: "idx_ar_workflow_version_id")
112
+ @@index([status, expiresAt], map: "idx_ar_status_expires_at")
113
+ @@map("t_approval_request")
114
+ }
115
+
116
+ /// @IgnoreNestCode
117
+ /// @IgnoreReactCode
118
+ /// @IgnoreAutoField
119
+ model ApprovalRequestSubject {
120
+ requestId BigInt @map("request_id")
121
+ provider String @db.VarChar(64)
122
+ ref String @db.VarChar(128)
123
+ resourceRevision Int? @map("resource_revision")
124
+ metadata Json?
125
+
126
+ request ApprovalRequest @relation(fields: [requestId], references: [id], onDelete: Restrict)
127
+
128
+ @@id([requestId, provider, ref])
129
+ @@index([provider, ref], map: "idx_ars_provider_ref")
130
+ @@map("t_approval_request_subject")
131
+ }
132
+
133
+ /// @IgnoreNestCode
134
+ /// @IgnoreReactCode
135
+ /// @IgnoreAutoField
136
+ model ApprovalCandidate {
137
+ id BigInt @id @default(autoincrement())
138
+ requestId BigInt @map("request_id")
139
+ principalType String @map("principal_type") @db.VarChar(64)
140
+ principalRef String @map("principal_ref") @db.VarChar(128)
141
+ displayName String @map("display_name") @db.VarChar(256)
142
+ sourceRefs Json @map("source_refs")
143
+ eligibilityRevision Int @default(1) @map("eligibility_revision")
144
+ activeFrom DateTime @default(now()) @map("active_from")
145
+ invalidatedAt DateTime? @map("invalidated_at")
146
+ invalidationReason String? @map("invalidation_reason") @db.VarChar(256)
147
+
148
+ request ApprovalRequest @relation(fields: [requestId], references: [id], onDelete: Restrict)
149
+ decisions ApprovalDecision[]
150
+
151
+ @@unique([requestId, principalType, principalRef, eligibilityRevision], map: "uk_ac_request_principal_revision")
152
+ @@index([requestId, invalidatedAt], map: "idx_ac_request_invalidated_at")
153
+ @@map("t_approval_candidate")
154
+ }
155
+
156
+ /// @IgnoreNestCode
157
+ /// @IgnoreReactCode
158
+ /// @IgnoreAutoField
159
+ model ApprovalDecision {
160
+ id BigInt @id @default(autoincrement())
161
+ requestId BigInt @map("request_id")
162
+ candidateId BigInt @map("candidate_id")
163
+ decision ApprovalDecisionType
164
+ comment String? @db.Text
165
+ payload Json?
166
+ creator String @default("") @db.VarChar(128)
167
+ createdAt DateTime @default(now()) @map("created_at")
168
+
169
+ request ApprovalRequest @relation(fields: [requestId], references: [id], onDelete: Restrict)
170
+ candidate ApprovalCandidate @relation(fields: [candidateId], references: [id], onDelete: Restrict)
171
+
172
+ @@unique([requestId, candidateId], map: "uk_ad_request_candidate")
173
+ @@index([candidateId], map: "idx_ad_candidate_id")
174
+ @@map("t_approval_decision")
175
+ }
176
+
177
+ /// @IgnoreNestCode
178
+ /// @IgnoreReactCode
179
+ /// @IgnoreAutoField
180
+ model ApprovalSignalOutbox {
181
+ id BigInt @id @default(autoincrement())
182
+ requestId BigInt @map("request_id")
183
+ idempotencyKey String @unique @map("idempotency_key") @db.VarChar(128)
184
+ payload Json
185
+ status SubjectOutboxStatus @default(PENDING)
186
+ retryCount Int @default(0) @map("retry_count")
187
+ nextAttemptAt DateTime @default(now()) @map("next_attempt_at")
188
+ lockedAt DateTime? @map("locked_at")
189
+ lockedBy String? @map("locked_by") @db.VarChar(128)
190
+ processedAt DateTime? @map("processed_at")
191
+ lastError String? @map("last_error") @db.Text
192
+ createdAt DateTime @default(now()) @map("created_at")
193
+ updatedAt DateTime @updatedAt @map("updated_at")
194
+
195
+ request ApprovalRequest @relation(fields: [requestId], references: [id], onDelete: Restrict)
196
+
197
+ @@index([status, nextAttemptAt], map: "idx_aso_status_next_attempt_at")
198
+ @@map("t_approval_signal_outbox")
199
+ }
@@ -1,6 +1,11 @@
1
+ /// @IgnoreAutoField
1
2
  model Game {
3
+ id BigInt @id @default(autoincrement())
2
4
  unified_editionid String @map("unified_editionid") @db.VarChar(128)
3
5
  name String @map("name") @db.VarChar(64)
6
+ creator String? @map("creator") @db.VarChar(128)
7
+ createdAt DateTime @default(now()) @map("created_at")
8
+ updatedAt DateTime @updatedAt @default(now()) @map("updated_at")
4
9
 
5
10
  @@unique([unified_editionid])
6
11
  @@map("t_admin_game")
@@ -25,6 +30,10 @@ model User {
25
30
  createdAt DateTime @default(now()) @map("created_at")
26
31
  updatedAt DateTime @updatedAt @map("updated_at")
27
32
 
33
+ /// @DtoReadOnly
34
+ /// @DtoEntityHidden
35
+ groupMemberships UserGroupUser[]
36
+
28
37
  @@unique([userid])
29
38
  @@unique([apiKey])
30
39
  @@map("t_admin_user_role")
@@ -23,6 +23,42 @@ enum WorkflowNodeCategory {
23
23
  SUB_WORKFLOW
24
24
  }
25
25
 
26
+ enum WorkflowNodeInstancePolicy {
27
+ REQUIRED
28
+ OPTIONAL
29
+ INLINE_ONLY
30
+ }
31
+
32
+ enum IntegrationConnectionType {
33
+ HTTP
34
+ }
35
+
36
+ enum IntegrationAuthType {
37
+ NONE
38
+ BASIC
39
+ BEARER
40
+ API_KEY
41
+ }
42
+
43
+ enum ExternalInteractionStatus {
44
+ PENDING
45
+ RESOLVED
46
+ CANCELLED
47
+ EXPIRED
48
+ }
49
+
50
+ enum ExternalInteractionEventStatus {
51
+ ACCEPTED
52
+ REJECTED
53
+ }
54
+
55
+ enum ExternalInteractionOutboxStatus {
56
+ PENDING
57
+ PROCESSING
58
+ PROCESSED
59
+ FAILED
60
+ }
61
+
26
62
  /// @IgnoreNestCode
27
63
  /// @IgnoreReactCode
28
64
  /// @IgnoreAutoField
@@ -40,6 +76,7 @@ model Workflow {
40
76
 
41
77
  versions WorkflowVersion[]
42
78
  instances WorkflowInstance[]
79
+ approvalChannelsAsDispatch ApprovalChannel[] @relation("ApprovalChannelDispatch")
43
80
 
44
81
  @@map("t_workflow")
45
82
  }
@@ -57,7 +94,8 @@ model WorkflowVersion {
57
94
  creator String @default("") @db.VarChar(128) @map("creator")
58
95
  createdAt DateTime @default(now()) @map("created_at")
59
96
 
60
- workflow Workflow @relation(fields: [workflowId], references: [id], onDelete: Cascade)
97
+ workflow Workflow @relation(fields: [workflowId], references: [id], onDelete: Cascade)
98
+ externalInteractions ExternalInteraction[]
61
99
 
62
100
  @@unique([workflowId, version], map: "uk_workflow_version")
63
101
  @@index([workflowId], map: "idx_wv_workflow_id")
@@ -83,8 +121,9 @@ model WorkflowInstance {
83
121
  createdAt DateTime @default(now()) @map("created_at")
84
122
  updatedAt DateTime @updatedAt @map("updated_at")
85
123
 
86
- workflow Workflow @relation(fields: [workflowId], references: [id], onDelete: Cascade)
87
- nodeExecutions WorkflowNodeExecution[]
124
+ workflow Workflow @relation(fields: [workflowId], references: [id], onDelete: Cascade)
125
+ nodeExecutions WorkflowNodeExecution[]
126
+ externalInteractions ExternalInteraction[]
88
127
 
89
128
  @@unique([workflowId, sourceOutboxId], map: "uk_wi_workflow_outbox") // 一个 outbox 事件对一个 workflow 至多一条 instance(NULL 不参与唯一性,正常 execute / cron / webhook 不受影响)
90
129
  @@index([workflowId], map: "idx_wi_workflow_id")
@@ -92,6 +131,87 @@ model WorkflowInstance {
92
131
  @@map("t_workflow_instance")
93
132
  }
94
133
 
134
+ /// A durable session connecting an external callback to one waiting Workflow node.
135
+ /// @IgnoreNestCode
136
+ /// @IgnoreReactCode
137
+ /// @IgnoreAutoField
138
+ model ExternalInteraction {
139
+ id BigInt @id @default(autoincrement())
140
+ tokenHash String @unique @map("token_hash") @db.Char(64)
141
+ tenantNamespace String @map("tenant_namespace") @db.VarChar(64)
142
+ handlerType String @map("handler_type") @db.VarChar(64)
143
+ handlerConfig Json @map("handler_config")
144
+ workflowInstanceId BigInt @map("workflow_instance_id")
145
+ workflowVersionId BigInt @map("workflow_version_id")
146
+ temporalRunId String @map("temporal_run_id") @db.VarChar(128)
147
+ nodeId String @map("node_id") @db.VarChar(64)
148
+ status ExternalInteractionStatus @default(PENDING)
149
+ expiresAt DateTime? @map("expires_at")
150
+ resolution Json?
151
+ resolvedAt DateTime? @map("resolved_at")
152
+ createdAt DateTime @default(now()) @map("created_at")
153
+ updatedAt DateTime @updatedAt @map("updated_at")
154
+
155
+ workflowInstance WorkflowInstance @relation(fields: [workflowInstanceId], references: [id], onDelete: Restrict)
156
+ workflowVersion WorkflowVersion @relation(fields: [workflowVersionId], references: [id], onDelete: Restrict)
157
+ events ExternalInteractionEvent[]
158
+ signalOutboxes ExternalInteractionSignalOutbox[]
159
+
160
+ @@unique([workflowInstanceId, nodeId], map: "uk_ei_workflow_instance_node")
161
+ @@index([status, expiresAt], map: "idx_ei_status_expires_at")
162
+ @@map("t_external_interaction")
163
+ }
164
+
165
+ /// An idempotent callback event submitted to an external interaction.
166
+ /// @IgnoreNestCode
167
+ /// @IgnoreReactCode
168
+ /// @IgnoreAutoField
169
+ model ExternalInteractionEvent {
170
+ id BigInt @id @default(autoincrement())
171
+ interactionId BigInt @map("interaction_id")
172
+ eventId String @map("event_id") @db.VarChar(128)
173
+ outcome String @db.VarChar(128)
174
+ operatorId String? @map("operator_id") @db.VarChar(128)
175
+ data Json?
176
+ processingStatus ExternalInteractionEventStatus @map("processing_status")
177
+ response Json
178
+ errorCode String? @map("error_code") @db.VarChar(128)
179
+ errorMessage String? @map("error_message") @db.Text
180
+ receivedAt DateTime @default(now()) @map("received_at")
181
+
182
+ interaction ExternalInteraction @relation(fields: [interactionId], references: [id], onDelete: Restrict)
183
+
184
+ @@unique([interactionId, eventId], map: "uk_eie_interaction_event")
185
+ @@index([interactionId, receivedAt], map: "idx_eie_interaction_received")
186
+ @@map("t_external_interaction_event")
187
+ }
188
+
189
+ /// Durable Temporal signal delivery for a resolved external interaction.
190
+ /// @IgnoreNestCode
191
+ /// @IgnoreReactCode
192
+ /// @IgnoreAutoField
193
+ model ExternalInteractionSignalOutbox {
194
+ id BigInt @id @default(autoincrement())
195
+ interactionId BigInt @map("interaction_id")
196
+ idempotencyKey String @unique @map("idempotency_key") @db.VarChar(128)
197
+ signalName String @map("signal_name") @db.VarChar(128)
198
+ payload Json
199
+ status ExternalInteractionOutboxStatus @default(PENDING)
200
+ retryCount Int @default(0) @map("retry_count")
201
+ nextAttemptAt DateTime @default(now()) @map("next_attempt_at")
202
+ lockedAt DateTime? @map("locked_at")
203
+ lockedBy String? @map("locked_by") @db.VarChar(128)
204
+ processedAt DateTime? @map("processed_at")
205
+ lastError String? @map("last_error") @db.Text
206
+ createdAt DateTime @default(now()) @map("created_at")
207
+ updatedAt DateTime @updatedAt @map("updated_at")
208
+
209
+ interaction ExternalInteraction @relation(fields: [interactionId], references: [id], onDelete: Restrict)
210
+
211
+ @@index([status, nextAttemptAt], map: "idx_eiso_status_next_attempt_at")
212
+ @@map("t_external_interaction_signal_outbox")
213
+ }
214
+
95
215
  // 跟踪 workflow 执行过程中每个节点的执行状态
96
216
  /// @IgnoreNestCode
97
217
  /// @IgnoreReactCode
@@ -121,15 +241,19 @@ model WorkflowNodeExecution {
121
241
  /// @IgnoreReactCode
122
242
  /// @IgnoreAutoField
123
243
  model WorkflowNodeType {
124
- id BigInt @id @default(autoincrement())
125
- type String @unique @db.VarChar(64)
126
- category WorkflowNodeCategory
127
- label String @db.VarChar(128)
128
- icon String @db.VarChar(64)
129
- description String? @db.VarChar(512)
130
- configSchema Json @map("config_schema")
131
- inputSchema Json @map("input_schema")
132
- outputSchema Json @map("output_schema")
244
+ id BigInt @id @default(autoincrement())
245
+ type String @unique @db.VarChar(64)
246
+ category WorkflowNodeCategory
247
+ label String @db.VarChar(128)
248
+ icon String @db.VarChar(64)
249
+ description String? @db.VarChar(512)
250
+ configSchema Json @map("config_schema")
251
+ inputSchema Json @map("input_schema")
252
+ outputSchema Json @map("output_schema")
253
+ runtimeKey String @default("") @db.VarChar(64) @map("runtime_key")
254
+ uiSchema Json @default("{}") @map("ui_schema")
255
+ schemaVersion Int @default(1) @map("schema_version")
256
+ instancePolicy WorkflowNodeInstancePolicy @default(INLINE_ONLY) @map("instance_policy")
133
257
  // 节点出口句柄列表(前端 ReactFlow Handle id):
134
258
  // null = 动态(如 switch,从 config.cases 推出)
135
259
  // [] = 单出口无具名 handle(如 ACTION 类)
@@ -146,20 +270,66 @@ model WorkflowNodeType {
146
270
  }
147
271
 
148
272
  /// @IgnoreReactCode
273
+ /// @IgnoreAutoField
149
274
  model WorkflowNodeInstance {
275
+ id BigInt @id @default(autoincrement())
150
276
  code String @unique @default(nanoid()) @db.VarChar(21) @map("code")
151
277
  nodeTypeId BigInt @map("node_type_id") // 关联的 NodeType ID
152
278
  name String @db.VarChar(128) // 实例名称
153
279
  description String? @db.VarChar(512) // 描述
154
- config Json // 已配置的具体参数值
280
+ config Json // 当前可编辑模板配置;不可变快照由 WorkflowVersion.dsl 保存
155
281
  isEnabled Boolean @default(true) @map("is_enabled") // 是否启用
282
+ creator String? @map("creator") @db.VarChar(128)
283
+ createdAt DateTime @default(now()) @map("created_at")
284
+ updatedAt DateTime @updatedAt @default(now()) @map("updated_at")
156
285
 
157
- nodeType WorkflowNodeType @relation(fields: [nodeTypeId], references: [id])
286
+ nodeType WorkflowNodeType @relation(fields: [nodeTypeId], references: [id])
158
287
 
159
288
  @@index([nodeTypeId], map: "idx_wni_node_type_id")
160
289
  @@map("t_workflow_node_instance")
161
290
  }
162
291
 
292
+ /// Reusable runtime connection. Sensitive values are AES-GCM encrypted and are
293
+ /// never copied into Node Templates or WorkflowVersion DSL snapshots.
294
+ /// @IgnoreNestCode
295
+ /// @IgnoreReactCode
296
+ model IntegrationConnection {
297
+ code String @unique @default(nanoid()) @db.VarChar(64)
298
+ name String @db.VarChar(128)
299
+ description String? @db.VarChar(512)
300
+ type IntegrationConnectionType @default(HTTP)
301
+ baseUrl String @db.VarChar(1024) @map("base_url")
302
+ authType IntegrationAuthType @default(NONE) @map("auth_type")
303
+ publicConfig Json @map("public_config")
304
+ encryptedSecrets String? @db.Text @map("encrypted_secrets")
305
+ isEnabled Boolean @default(true) @map("is_enabled")
306
+ revision Int @default(1)
307
+
308
+ @@map("t_integration_connection")
309
+ }
310
+
311
+ /// Reusable dispatch bridge between Human Approval and provider-specific workflows.
312
+ /// @IgnoreNestCode
313
+ /// @IgnoreReactCode
314
+ /// @IgnoreAutoField
315
+ model ApprovalChannel {
316
+ id BigInt @id @default(autoincrement())
317
+ code String @unique @db.VarChar(64)
318
+ name String @db.VarChar(128)
319
+ description String? @db.VarChar(512)
320
+ dispatchWorkflowId BigInt @map("dispatch_workflow_id")
321
+ isEnabled Boolean @default(true) @map("is_enabled")
322
+ revision Int @default(1)
323
+ creator String @default("") @db.VarChar(128)
324
+ createdAt DateTime @default(now()) @map("created_at")
325
+ updatedAt DateTime @updatedAt @map("updated_at")
326
+
327
+ dispatchWorkflow Workflow @relation("ApprovalChannelDispatch", fields: [dispatchWorkflowId], references: [id], onDelete: Restrict)
328
+
329
+ @@index([dispatchWorkflowId], map: "idx_ac_dispatch_workflow_id")
330
+ @@map("t_approval_channel")
331
+ }
332
+
163
333
  // Outbox Pattern:业务表触发器将事件写入此表,outbox-poller 定时扫描并触发 workflow
164
334
  /// @IgnoreAutoField
165
335
  model WorkflowEventOutbox {
@@ -179,12 +349,19 @@ model WorkflowEventOutbox {
179
349
  }
180
350
 
181
351
  /// @IgnoreReactCode
352
+ /// @IgnoreAutoField
182
353
  model TemporalTenantConfig {
354
+ id BigInt @id @default(autoincrement())
183
355
  adminUrl String @db.VarChar(256) @map("admin_url") // shared temporal admin API URL,e.g. http://localhost:8081
184
356
  adminToken String @db.VarChar(128) @map("admin_token") // X-Admin-Token
185
357
  namespace String @db.VarChar(64) @map("namespace") // 租户 namespace,需与 TEMPORAL_NAMESPACE 一致
186
358
  dbUrl String @db.Text @map("db_url") // shared worker 视角的本项目 DB URL
187
359
  displayName String @db.VarChar(128) @map("display_name") // 租户展示名
360
+ runtimeBaseUrl String? @db.VarChar(512) @map("runtime_base_url") // shared worker 回调本项目 Runtime API 的地址
361
+ runtimeToken String? @db.VarChar(256) @map("runtime_token") // X-Workflow-Runtime-Token
362
+ creator String? @map("creator") @db.VarChar(128)
363
+ createdAt DateTime @default(now()) @map("created_at")
364
+ updatedAt DateTime @updatedAt @default(now()) @map("updated_at")
188
365
 
189
366
  @@map("t_temporal_tenant_config")
190
367
  }
@@ -49,12 +49,13 @@ coverage
49
49
  nginx-external-page/
50
50
  settings.local.json
51
51
 
52
- .agent/
53
- .claude-internal/
54
- .claude/
55
- .codebuddy/
52
+ .agent
53
+ .claude-internal
54
+ .claude
55
+ .codebuddy
56
56
  docs/
57
57
  .frontend-slides/
58
58
  .agent
59
59
  agent-eval/runs/
60
- agent-eval/baseline/
60
+ agent-eval/baseline/
61
+ tmp/
@@ -135,8 +135,16 @@ resolve 命令(在 `server/` 下执行,注意用本地 `dotenv-cli` 以避
135
135
 
136
136
  ```bash
137
137
  $ cd server
138
- $ ./node_modules/.bin/dotenv -e .env.local -e .env -- npx prisma migrate resolve --applied 0_init
139
- $ ./node_modules/.bin/dotenv -e .env.local -e .env -- npx prisma migrate status # 验证:应显示 up to date、无 pending
138
+ # 首次生成
139
+ mkdir -p prisma/migrations/0_init
140
+ npx prisma migrate diff \
141
+ --from-empty \
142
+ --to-schema-datamodel prisma/schema.prisma \
143
+ --script > prisma/migrations/0_init/migration.sql
144
+
145
+ npx dotenv -e .env.local -e .env -- bash -c 'psql "${DATABASE_URL%%\?*}" -c "DELETE FROM _prisma_migrations WHERE migration_name='\''0_init'\'';"'
146
+ ./node_modules/.bin/dotenv -e .env.local -e .env -- npx prisma migrate resolve --applied 0_init
147
+ ./node_modules/.bin/dotenv -e .env.local -e .env -- npx prisma migrate status # 验证:应显示 up to date、无 pending
140
148
  ```
141
149
 
142
150
  ### 迁移冲突约定
@@ -197,7 +205,6 @@ docker compose up -d --build
197
205
  | `config/ui/**` | ✅ | | |
198
206
  | `config/prisma/**` | ✅ | ✅ | |
199
207
  | `server/**` | | ✅ | |
200
- | `temporal/worker/**` | | | ✅ |
201
208
 
202
209
  纯文档变更(`docs/`、`*.md`、`.gitignore`、`Jenkinsfile` 自身、`.claude/`、`sync-to-template.*`)跳过所有构建。
203
210
 
@@ -47,8 +47,9 @@ if (process.env.DATABASE_URL) {
47
47
  sourcePgConfig = {
48
48
  host: url.hostname,
49
49
  port: Number(url.port),
50
- user: url.username,
51
- password: url.password,
50
+ // WHATWG URL 的 username/password getter 返回 percent-encoded 形式,需 decode 还原字面量,否则含 ^ 等特殊字符的密码会认证失败
51
+ user: decodeURIComponent(url.username),
52
+ password: decodeURIComponent(url.password),
52
53
  database: url.pathname.slice(1),
53
54
  };
54
55
  if (!process.env.PG_SCHEMA) {
@@ -84,8 +85,9 @@ if (hasTargetDatabaseConfig) {
84
85
  targetPgConfig = {
85
86
  host: url.hostname,
86
87
  port: Number(url.port),
87
- user: url.username,
88
- password: url.password,
88
+ // WHATWG URL 的 username/password getter 返回 percent-encoded 形式,需 decode 还原字面量,否则含 ^ 等特殊字符的密码会认证失败
89
+ user: decodeURIComponent(url.username),
90
+ password: decodeURIComponent(url.password),
89
91
  database: url.pathname.slice(1),
90
92
  };
91
93
  if (!process.env.PG_SCHEMA_TARGET) {