n8n 2.37.5 → 2.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (725) hide show
  1. package/dist/active-executions.js +2 -1
  2. package/dist/active-executions.js.map +1 -1
  3. package/dist/active-workflow-manager.d.ts +5 -1
  4. package/dist/active-workflow-manager.js +64 -33
  5. package/dist/active-workflow-manager.js.map +1 -1
  6. package/dist/binary-data/binary-data-access.service.d.ts +11 -0
  7. package/dist/binary-data/binary-data-access.service.js +50 -0
  8. package/dist/binary-data/binary-data-access.service.js.map +1 -0
  9. package/dist/build.tsbuildinfo +1 -1
  10. package/dist/commands/base-command.d.ts +2 -0
  11. package/dist/commands/base-command.js +8 -0
  12. package/dist/commands/base-command.js.map +1 -1
  13. package/dist/commands/import/workflow.d.ts +1 -0
  14. package/dist/commands/import/workflow.js +12 -3
  15. package/dist/commands/import/workflow.js.map +1 -1
  16. package/dist/commands/start.d.ts +1 -0
  17. package/dist/commands/start.js +2 -1
  18. package/dist/commands/start.js.map +1 -1
  19. package/dist/constants.d.ts +2 -0
  20. package/dist/constants.js +3 -1
  21. package/dist/constants.js.map +1 -1
  22. package/dist/controllers/binary-data.controller.d.ts +5 -2
  23. package/dist/controllers/binary-data.controller.js +11 -3
  24. package/dist/controllers/binary-data.controller.js.map +1 -1
  25. package/dist/controllers/e2e.controller.d.ts +1 -6
  26. package/dist/controllers/e2e.controller.js +7 -20
  27. package/dist/controllers/e2e.controller.js.map +1 -1
  28. package/dist/controllers/project.controller.d.ts +4 -10
  29. package/dist/controllers/project.controller.js +14 -114
  30. package/dist/controllers/project.controller.js.map +1 -1
  31. package/dist/controllers/telemetry.controller.js +1 -1
  32. package/dist/controllers/telemetry.controller.js.map +1 -1
  33. package/dist/credentials/credentials-finder.service.d.ts +2 -0
  34. package/dist/credentials/credentials-finder.service.js +46 -12
  35. package/dist/credentials/credentials-finder.service.js.map +1 -1
  36. package/dist/credentials/credentials.service.d.ts +5 -2
  37. package/dist/credentials/credentials.service.js +4 -1
  38. package/dist/credentials/credentials.service.js.map +1 -1
  39. package/dist/credentials-helper.d.ts +3 -1
  40. package/dist/credentials-helper.js +10 -2
  41. package/dist/credentials-helper.js.map +1 -1
  42. package/dist/deprecation/deprecation.service.js +5 -0
  43. package/dist/deprecation/deprecation.service.js.map +1 -1
  44. package/dist/errors/http-error-serializers.js +3 -0
  45. package/dist/errors/http-error-serializers.js.map +1 -1
  46. package/dist/errors/variable-validation.error.d.ts +2 -2
  47. package/dist/errors/variable-validation.error.js +1 -1
  48. package/dist/errors/variable-validation.error.js.map +1 -1
  49. package/dist/evaluation.ee/evaluation-config-validator.js +3 -2
  50. package/dist/evaluation.ee/evaluation-config-validator.js.map +1 -1
  51. package/dist/evaluation.ee/evaluation-dataset.service.js +8 -1
  52. package/dist/evaluation.ee/evaluation-dataset.service.js.map +1 -1
  53. package/dist/evaluation.ee/test-runner/workflow-compiler.service.js +96 -45
  54. package/dist/evaluation.ee/test-runner/workflow-compiler.service.js.map +1 -1
  55. package/dist/execution-lifecycle/execute-error-workflow.js +3 -0
  56. package/dist/execution-lifecycle/execute-error-workflow.js.map +1 -1
  57. package/dist/executions/engine-v2-execution-reader.service.d.ts +11 -0
  58. package/dist/executions/engine-v2-execution-reader.service.js +68 -0
  59. package/dist/executions/engine-v2-execution-reader.service.js.map +1 -0
  60. package/dist/executions/execution-id.d.ts +5 -0
  61. package/dist/executions/execution-id.js +10 -0
  62. package/dist/executions/execution-id.js.map +1 -0
  63. package/dist/executions/execution.service.d.ts +3 -1
  64. package/dist/executions/execution.service.js +16 -8
  65. package/dist/executions/execution.service.js.map +1 -1
  66. package/dist/executions/executions.controller.d.ts +1 -0
  67. package/dist/executions/executions.controller.js +12 -6
  68. package/dist/executions/executions.controller.js.map +1 -1
  69. package/dist/expression-observability/expression-observability.provider.js +3 -2
  70. package/dist/expression-observability/expression-observability.provider.js.map +1 -1
  71. package/dist/license/license.service.js +1 -1
  72. package/dist/license/license.service.js.map +1 -1
  73. package/dist/metrics/prometheus/instance-ai-metrics.service.js.map +1 -1
  74. package/dist/middlewares/content-security-policy.d.ts +10 -0
  75. package/dist/middlewares/content-security-policy.js +53 -0
  76. package/dist/middlewares/content-security-policy.js.map +1 -0
  77. package/dist/middlewares/index.d.ts +1 -0
  78. package/dist/middlewares/index.js +1 -0
  79. package/dist/middlewares/index.js.map +1 -1
  80. package/dist/modules/agents/adapters/agents-credential-provider.js +1 -1
  81. package/dist/modules/agents/adapters/agents-credential-provider.js.map +1 -1
  82. package/dist/modules/agents/agent-config.service.js +0 -3
  83. package/dist/modules/agents/agent-config.service.js.map +1 -1
  84. package/dist/modules/agents/agent-default-model-resolver.service.js +3 -5
  85. package/dist/modules/agents/agent-default-model-resolver.service.js.map +1 -1
  86. package/dist/modules/agents/agent-execution-orchestrator.service.js +13 -6
  87. package/dist/modules/agents/agent-execution-orchestrator.service.js.map +1 -1
  88. package/dist/modules/agents/agent-execution.service.d.ts +1 -0
  89. package/dist/modules/agents/agent-execution.service.js +3 -0
  90. package/dist/modules/agents/agent-execution.service.js.map +1 -1
  91. package/dist/modules/agents/agent-integrations.controller.d.ts +7 -5
  92. package/dist/modules/agents/agent-integrations.controller.js +10 -17
  93. package/dist/modules/agents/agent-integrations.controller.js.map +1 -1
  94. package/dist/modules/agents/agent-model-catalog.service.js +6 -12
  95. package/dist/modules/agents/agent-model-catalog.service.js.map +1 -1
  96. package/dist/modules/agents/agent-publish.service.d.ts +2 -3
  97. package/dist/modules/agents/agent-publish.service.js +12 -5
  98. package/dist/modules/agents/agent-publish.service.js.map +1 -1
  99. package/dist/modules/agents/agent-runtime-cache.service.d.ts +5 -0
  100. package/dist/modules/agents/agent-runtime-cache.service.js +57 -3
  101. package/dist/modules/agents/agent-runtime-cache.service.js.map +1 -1
  102. package/dist/modules/agents/agent-runtime-reconstruction.service.d.ts +14 -7
  103. package/dist/modules/agents/agent-runtime-reconstruction.service.js +89 -36
  104. package/dist/modules/agents/agent-runtime-reconstruction.service.js.map +1 -1
  105. package/dist/modules/agents/agent-sandbox-runtime.service.d.ts +4 -2
  106. package/dist/modules/agents/agent-sandbox-runtime.service.js +21 -11
  107. package/dist/modules/agents/agent-sandbox-runtime.service.js.map +1 -1
  108. package/dist/modules/agents/agent-validation.service.js +0 -4
  109. package/dist/modules/agents/agent-validation.service.js.map +1 -1
  110. package/dist/modules/agents/agent-workflow-execution.service.js +1 -1
  111. package/dist/modules/agents/agent-workflow-execution.service.js.map +1 -1
  112. package/dist/modules/agents/agent-workflow-tool-resume.service.d.ts +32 -0
  113. package/dist/modules/agents/agent-workflow-tool-resume.service.js +168 -0
  114. package/dist/modules/agents/agent-workflow-tool-resume.service.js.map +1 -0
  115. package/dist/modules/agents/agent-workspace.service.d.ts +8 -2
  116. package/dist/modules/agents/agent-workspace.service.js +15 -4
  117. package/dist/modules/agents/agent-workspace.service.js.map +1 -1
  118. package/dist/modules/agents/agents.module.d.ts +1 -1
  119. package/dist/modules/agents/agents.module.js +8 -7
  120. package/dist/modules/agents/agents.module.js.map +1 -1
  121. package/dist/modules/agents/builder/agents-builder-tools.service.d.ts +4 -6
  122. package/dist/modules/agents/builder/agents-builder-tools.service.js +16 -21
  123. package/dist/modules/agents/builder/agents-builder-tools.service.js.map +1 -1
  124. package/dist/modules/agents/builder/agents-builder.service.d.ts +5 -7
  125. package/dist/modules/agents/builder/agents-builder.service.js +27 -36
  126. package/dist/modules/agents/builder/agents-builder.service.js.map +1 -1
  127. package/dist/modules/agents/builder/builder-model-live-lookup.service.js +1 -1
  128. package/dist/modules/agents/builder/builder-model-live-lookup.service.js.map +1 -1
  129. package/dist/modules/agents/builder/call-agent-failure.d.ts +5 -0
  130. package/dist/modules/agents/builder/call-agent-failure.js +28 -0
  131. package/dist/modules/agents/builder/call-agent-failure.js.map +1 -0
  132. package/dist/modules/agents/builder/interactive/ask-credential.tool.d.ts +3 -2
  133. package/dist/modules/agents/builder/interactive/ask-credential.tool.js +8 -9
  134. package/dist/modules/agents/builder/interactive/ask-credential.tool.js.map +1 -1
  135. package/dist/modules/agents/builder/interactive/finish-setup.tool.d.ts +3 -2
  136. package/dist/modules/agents/builder/interactive/finish-setup.tool.js +16 -6
  137. package/dist/modules/agents/builder/interactive/finish-setup.tool.js.map +1 -1
  138. package/dist/modules/agents/builder/interactive/resolve-llm.tool.js +74 -61
  139. package/dist/modules/agents/builder/interactive/resolve-llm.tool.js.map +1 -1
  140. package/dist/modules/agents/builder/prompts/llm-selection.prompt.js +5 -4
  141. package/dist/modules/agents/builder/prompts/llm-selection.prompt.js.map +1 -1
  142. package/dist/modules/agents/builder/prompts/tools.prompt.d.ts +1 -1
  143. package/dist/modules/agents/builder/prompts/tools.prompt.js +6 -0
  144. package/dist/modules/agents/builder/prompts/tools.prompt.js.map +1 -1
  145. package/dist/modules/agents/builder/skills/external-services.skill.js +51 -8
  146. package/dist/modules/agents/builder/skills/external-services.skill.js.map +1 -1
  147. package/dist/modules/agents/builder/skills/node-tools.skill.js +4 -4
  148. package/dist/modules/agents/builder/skills/node-tools.skill.js.map +1 -1
  149. package/dist/modules/agents/builder/skills/sub-agents.skill.js +15 -12
  150. package/dist/modules/agents/builder/skills/sub-agents.skill.js.map +1 -1
  151. package/dist/modules/agents/builder/skills/target-tasks.skill.js +16 -5
  152. package/dist/modules/agents/builder/skills/target-tasks.skill.js.map +1 -1
  153. package/dist/modules/agents/entities/agent-channel-status.entity.d.ts +16 -0
  154. package/dist/modules/agents/entities/agent-channel-status.entity.js +99 -0
  155. package/dist/modules/agents/entities/agent-channel-status.entity.js.map +1 -0
  156. package/dist/modules/agents/instance-ai-builder-delegate.adapter.d.ts +3 -3
  157. package/dist/modules/agents/instance-ai-builder-delegate.adapter.js +17 -7
  158. package/dist/modules/agents/instance-ai-builder-delegate.adapter.js.map +1 -1
  159. package/dist/modules/agents/integrations/agent-channel-reconciler.service.d.ts +38 -0
  160. package/dist/modules/agents/integrations/agent-channel-reconciler.service.js +260 -0
  161. package/dist/modules/agents/integrations/agent-channel-reconciler.service.js.map +1 -0
  162. package/dist/modules/agents/integrations/agent-channel-status-reporter.d.ts +23 -0
  163. package/dist/modules/agents/integrations/agent-channel-status-reporter.js +114 -0
  164. package/dist/modules/agents/integrations/agent-channel-status-reporter.js.map +1 -0
  165. package/dist/modules/agents/integrations/agent-chat-bridge.d.ts +9 -0
  166. package/dist/modules/agents/integrations/agent-chat-bridge.js +53 -1
  167. package/dist/modules/agents/integrations/agent-chat-bridge.js.map +1 -1
  168. package/dist/modules/agents/integrations/agent-chat-hitl-resume-handler.d.ts +1 -1
  169. package/dist/modules/agents/integrations/agent-chat-hitl-resume-handler.js +3 -2
  170. package/dist/modules/agents/integrations/agent-chat-hitl-resume-handler.js.map +1 -1
  171. package/dist/modules/agents/integrations/agent-chat-integration.d.ts +5 -2
  172. package/dist/modules/agents/integrations/agent-chat-integration.js.map +1 -1
  173. package/dist/modules/agents/integrations/channel-status-report.d.ts +4 -0
  174. package/dist/modules/agents/integrations/channel-status-report.js +58 -0
  175. package/dist/modules/agents/integrations/channel-status-report.js.map +1 -0
  176. package/dist/modules/agents/integrations/chat-integration.service.d.ts +17 -2
  177. package/dist/modules/agents/integrations/chat-integration.service.js +63 -35
  178. package/dist/modules/agents/integrations/chat-integration.service.js.map +1 -1
  179. package/dist/modules/agents/integrations/credential-claim.d.ts +3 -0
  180. package/dist/modules/agents/integrations/credential-claim.js +12 -0
  181. package/dist/modules/agents/integrations/credential-claim.js.map +1 -0
  182. package/dist/modules/agents/integrations/n8n-checkpoint-storage.d.ts +2 -0
  183. package/dist/modules/agents/integrations/n8n-checkpoint-storage.js +25 -0
  184. package/dist/modules/agents/integrations/n8n-checkpoint-storage.js.map +1 -1
  185. package/dist/modules/agents/integrations/platforms/discord-integration.d.ts +2 -1
  186. package/dist/modules/agents/integrations/platforms/discord-integration.js +9 -6
  187. package/dist/modules/agents/integrations/platforms/discord-integration.js.map +1 -1
  188. package/dist/modules/agents/integrations/platforms/linear-integration.js +1 -1
  189. package/dist/modules/agents/integrations/platforms/linear-integration.js.map +1 -1
  190. package/dist/modules/agents/integrations/platforms/slack/slack-integration.d.ts +2 -1
  191. package/dist/modules/agents/integrations/platforms/slack/slack-integration.js +7 -6
  192. package/dist/modules/agents/integrations/platforms/slack/slack-integration.js.map +1 -1
  193. package/dist/modules/agents/integrations/platforms/slack/slack-methods.service.js +1 -1
  194. package/dist/modules/agents/integrations/platforms/slack/slack-methods.service.js.map +1 -1
  195. package/dist/modules/agents/integrations/platforms/telegram-integration.d.ts +4 -6
  196. package/dist/modules/agents/integrations/platforms/telegram-integration.js +11 -14
  197. package/dist/modules/agents/integrations/platforms/telegram-integration.js.map +1 -1
  198. package/dist/modules/agents/json-config/credential-field-mapping.js +3 -0
  199. package/dist/modules/agents/json-config/credential-field-mapping.js.map +1 -1
  200. package/dist/modules/agents/json-config/model-config.js +1 -1
  201. package/dist/modules/agents/json-config/model-config.js.map +1 -1
  202. package/dist/modules/agents/json-config/reconcile-node-tool-gateway-credentials.js +1 -1
  203. package/dist/modules/agents/json-config/reconcile-node-tool-gateway-credentials.js.map +1 -1
  204. package/dist/modules/agents/llm-provider-defaults.js +16 -1
  205. package/dist/modules/agents/llm-provider-defaults.js.map +1 -1
  206. package/dist/modules/agents/repositories/agent-channel-status.repository.d.ts +29 -0
  207. package/dist/modules/agents/repositories/agent-channel-status.repository.js +63 -0
  208. package/dist/modules/agents/repositories/agent-channel-status.repository.js.map +1 -0
  209. package/dist/modules/agents/repositories/agent-execution.repository.d.ts +1 -0
  210. package/dist/modules/agents/repositories/agent-execution.repository.js +4 -0
  211. package/dist/modules/agents/repositories/agent-execution.repository.js.map +1 -1
  212. package/dist/modules/agents/sub-agents/delegate-sub-agent-tool.js +29 -19
  213. package/dist/modules/agents/sub-agents/delegate-sub-agent-tool.js.map +1 -1
  214. package/dist/modules/agents/sub-agents/sub-agent-cleanup.service.js.map +1 -1
  215. package/dist/modules/agents/sub-agents/sub-agent-foreground-runner.d.ts +6 -3
  216. package/dist/modules/agents/sub-agents/sub-agent-foreground-runner.js +43 -16
  217. package/dist/modules/agents/sub-agents/sub-agent-foreground-runner.js.map +1 -1
  218. package/dist/modules/agents/sub-agents/sub-agent-source-resolver.d.ts +1 -0
  219. package/dist/modules/agents/sub-agents/sub-agent-source-resolver.js +18 -6
  220. package/dist/modules/agents/sub-agents/sub-agent-source-resolver.js.map +1 -1
  221. package/dist/modules/agents/tools/workflow-tool-factory.d.ts +24 -13
  222. package/dist/modules/agents/tools/workflow-tool-factory.js +147 -9
  223. package/dist/modules/agents/tools/workflow-tool-factory.js.map +1 -1
  224. package/dist/modules/agents/tools/workflow-tool-workflow-loader.service.d.ts +10 -2
  225. package/dist/modules/agents/tools/workflow-tool-workflow-loader.service.js +23 -4
  226. package/dist/modules/agents/tools/workflow-tool-workflow-loader.service.js.map +1 -1
  227. package/dist/modules/agents/utils/provider-model-id.d.ts +2 -0
  228. package/dist/modules/agents/utils/provider-model-id.js +21 -0
  229. package/dist/modules/agents/utils/provider-model-id.js.map +1 -0
  230. package/dist/modules/community-packages/community-packages.service.d.ts +4 -0
  231. package/dist/modules/community-packages/community-packages.service.js +96 -92
  232. package/dist/modules/community-packages/community-packages.service.js.map +1 -1
  233. package/dist/modules/community-packages/npm-utils.js +1 -5
  234. package/dist/modules/community-packages/npm-utils.js.map +1 -1
  235. package/dist/modules/data-table/data-table-aggregate.service.d.ts +1 -1
  236. package/dist/modules/data-table/data-table-aggregate.service.js +1 -1
  237. package/dist/modules/data-table/data-table-aggregate.service.js.map +1 -1
  238. package/dist/modules/data-table/data-table.service.d.ts +9 -4
  239. package/dist/modules/data-table/data-table.service.js +34 -4
  240. package/dist/modules/data-table/data-table.service.js.map +1 -1
  241. package/dist/modules/data-table/errors/data-table-access-denied.error.d.ts +4 -0
  242. package/dist/modules/data-table/errors/data-table-access-denied.error.js +13 -0
  243. package/dist/modules/data-table/errors/data-table-access-denied.error.js.map +1 -0
  244. package/dist/modules/dynamic-credentials.ee/config-redaction.d.ts +5 -0
  245. package/dist/modules/dynamic-credentials.ee/config-redaction.js +81 -0
  246. package/dist/modules/dynamic-credentials.ee/config-redaction.js.map +1 -0
  247. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-metadata-http-client.d.ts +2 -3
  248. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-metadata-http-client.js +2 -4
  249. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-metadata-http-client.js.map +1 -1
  250. package/dist/modules/dynamic-credentials.ee/credential-resolvers.controller.d.ts +1 -0
  251. package/dist/modules/dynamic-credentials.ee/credential-resolvers.controller.js +18 -4
  252. package/dist/modules/dynamic-credentials.ee/credential-resolvers.controller.js.map +1 -1
  253. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.controller.js +3 -2
  254. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.controller.js.map +1 -1
  255. package/dist/modules/dynamic-credentials.ee/services/credential-connection-status.service.js +22 -4
  256. package/dist/modules/dynamic-credentials.ee/services/credential-connection-status.service.js.map +1 -1
  257. package/dist/modules/dynamic-credentials.ee/services/credential-resolver.service.d.ts +1 -0
  258. package/dist/modules/dynamic-credentials.ee/services/credential-resolver.service.js +12 -2
  259. package/dist/modules/dynamic-credentials.ee/services/credential-resolver.service.js.map +1 -1
  260. package/dist/modules/encryption-key-manager/key-manager.service.d.ts +7 -2
  261. package/dist/modules/encryption-key-manager/key-manager.service.js +27 -8
  262. package/dist/modules/encryption-key-manager/key-manager.service.js.map +1 -1
  263. package/dist/modules/engine-v2/engine-control-plane-auth.middleware.d.ts +6 -0
  264. package/dist/modules/engine-v2/engine-control-plane-auth.middleware.js +31 -0
  265. package/dist/modules/engine-v2/engine-control-plane-auth.middleware.js.map +1 -0
  266. package/dist/modules/engine-v2/engine-control-plane-client.d.ts +9 -0
  267. package/dist/modules/engine-v2/engine-control-plane-client.js +51 -0
  268. package/dist/modules/engine-v2/engine-control-plane-client.js.map +1 -0
  269. package/dist/modules/engine-v2/engine-control-plane-server.d.ts +14 -0
  270. package/dist/modules/engine-v2/engine-control-plane-server.js +84 -0
  271. package/dist/modules/engine-v2/engine-control-plane-server.js.map +1 -0
  272. package/dist/modules/engine-v2/engine-data-plane-client.d.ts +3 -1
  273. package/dist/modules/engine-v2/engine-data-plane-client.js +16 -1
  274. package/dist/modules/engine-v2/engine-data-plane-client.js.map +1 -1
  275. package/dist/modules/engine-v2/engine-lifecycle-event-push-relay.d.ts +18 -0
  276. package/dist/modules/engine-v2/engine-lifecycle-event-push-relay.js +150 -0
  277. package/dist/modules/engine-v2/engine-lifecycle-event-push-relay.js.map +1 -0
  278. package/dist/modules/engine-v2/engine-lifecycle-event.controller.d.ts +7 -0
  279. package/dist/modules/engine-v2/engine-lifecycle-event.controller.js +34 -0
  280. package/dist/modules/engine-v2/engine-lifecycle-event.controller.js.map +1 -0
  281. package/dist/modules/engine-v2/engine-v2.constants.d.ts +2 -0
  282. package/dist/modules/engine-v2/engine-v2.constants.js +6 -0
  283. package/dist/modules/engine-v2/engine-v2.constants.js.map +1 -0
  284. package/dist/modules/engine-v2/engine-v2.module.js +4 -0
  285. package/dist/modules/engine-v2/engine-v2.module.js.map +1 -1
  286. package/dist/modules/engine-v2/engine-v2.runtime.d.ts +3 -1
  287. package/dist/modules/engine-v2/engine-v2.runtime.js +6 -2
  288. package/dist/modules/engine-v2/engine-v2.runtime.js.map +1 -1
  289. package/dist/modules/external-secrets.ee/providers/aws-secrets-manager.js +1 -1
  290. package/dist/modules/external-secrets.ee/providers/aws-secrets-manager.js.map +1 -1
  291. package/dist/modules/external-secrets.ee/providers/infisical.js +1 -1
  292. package/dist/modules/external-secrets.ee/providers/infisical.js.map +1 -1
  293. package/dist/modules/external-secrets.ee/providers/vault.js +1 -1
  294. package/dist/modules/external-secrets.ee/providers/vault.js.map +1 -1
  295. package/dist/modules/git-connections.ee/database/repositories/git-connection-project.repository.d.ts +5 -3
  296. package/dist/modules/git-connections.ee/database/repositories/git-connection-project.repository.js +16 -4
  297. package/dist/modules/git-connections.ee/database/repositories/git-connection-project.repository.js.map +1 -1
  298. package/dist/modules/git-connections.ee/git-connections.service.d.ts +4 -2
  299. package/dist/modules/git-connections.ee/git-connections.service.js +87 -4
  300. package/dist/modules/git-connections.ee/git-connections.service.js.map +1 -1
  301. package/dist/modules/instance-ai/browser/browser-local-mcp-server.d.ts +3 -2
  302. package/dist/modules/instance-ai/browser/browser-local-mcp-server.js +48 -30
  303. package/dist/modules/instance-ai/browser/browser-local-mcp-server.js.map +1 -1
  304. package/dist/modules/instance-ai/event-bus/durable-event-log.js.map +1 -1
  305. package/dist/modules/instance-ai/event-bus/in-process-event-bus.d.ts +2 -28
  306. package/dist/modules/instance-ai/event-bus/in-process-event-bus.js +5 -228
  307. package/dist/modules/instance-ai/event-bus/in-process-event-bus.js.map +1 -1
  308. package/dist/modules/instance-ai/event-bus/interrupted-run-sweeper.d.ts +1 -3
  309. package/dist/modules/instance-ai/event-bus/interrupted-run-sweeper.js +2 -8
  310. package/dist/modules/instance-ai/event-bus/interrupted-run-sweeper.js.map +1 -1
  311. package/dist/modules/instance-ai/instance-ai-memory.service.js +1 -3
  312. package/dist/modules/instance-ai/instance-ai-memory.service.js.map +1 -1
  313. package/dist/modules/instance-ai/instance-ai-settings.service.d.ts +2 -0
  314. package/dist/modules/instance-ai/instance-ai-settings.service.js +10 -2
  315. package/dist/modules/instance-ai/instance-ai-settings.service.js.map +1 -1
  316. package/dist/modules/instance-ai/instance-ai-terminal-outcome.service.d.ts +0 -2
  317. package/dist/modules/instance-ai/instance-ai-terminal-outcome.service.js +1 -2
  318. package/dist/modules/instance-ai/instance-ai-terminal-outcome.service.js.map +1 -1
  319. package/dist/modules/instance-ai/instance-ai.adapter.service.d.ts +2 -3
  320. package/dist/modules/instance-ai/instance-ai.adapter.service.js +101 -44
  321. package/dist/modules/instance-ai/instance-ai.adapter.service.js.map +1 -1
  322. package/dist/modules/instance-ai/instance-ai.controller.d.ts +1 -1
  323. package/dist/modules/instance-ai/instance-ai.controller.js +75 -83
  324. package/dist/modules/instance-ai/instance-ai.controller.js.map +1 -1
  325. package/dist/modules/instance-ai/instance-ai.module.js +8 -16
  326. package/dist/modules/instance-ai/instance-ai.module.js.map +1 -1
  327. package/dist/modules/instance-ai/instance-ai.service.d.ts +2 -0
  328. package/dist/modules/instance-ai/instance-ai.service.js +55 -11
  329. package/dist/modules/instance-ai/instance-ai.service.js.map +1 -1
  330. package/dist/modules/instance-ai/internal-messages.d.ts +7 -0
  331. package/dist/modules/instance-ai/internal-messages.js +32 -2
  332. package/dist/modules/instance-ai/internal-messages.js.map +1 -1
  333. package/dist/modules/instance-ai/mcp/instance-ai-mcp-registry.service.d.ts +2 -5
  334. package/dist/modules/instance-ai/mcp/instance-ai-mcp-registry.service.js +4 -7
  335. package/dist/modules/instance-ai/mcp/instance-ai-mcp-registry.service.js.map +1 -1
  336. package/dist/modules/instance-ai/repositories/instance-ai-event-log.repository.js.map +1 -1
  337. package/dist/modules/instance-ai/tracing/instance-ai-tracing.service.js.map +1 -1
  338. package/dist/modules/instance-ai/workflow-templates.service.js +1 -1
  339. package/dist/modules/instance-ai/workflow-templates.service.js.map +1 -1
  340. package/dist/modules/ldap.ee/ldap.controller.ee.d.ts +4 -2
  341. package/dist/modules/ldap.ee/ldap.controller.ee.js +9 -2
  342. package/dist/modules/ldap.ee/ldap.controller.ee.js.map +1 -1
  343. package/dist/modules/ldap.ee/ldap.service.ee.js +4 -0
  344. package/dist/modules/ldap.ee/ldap.service.ee.js.map +1 -1
  345. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-webhook.ee.js +1 -1
  346. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-webhook.ee.js.map +1 -1
  347. package/dist/modules/mcp/mcp-scopes.js +1 -1
  348. package/dist/modules/mcp/mcp-server-middleware.service.js +1 -0
  349. package/dist/modules/mcp/mcp-server-middleware.service.js.map +1 -1
  350. package/dist/modules/mcp/mcp.constants.d.ts +3 -1
  351. package/dist/modules/mcp/mcp.constants.js +4 -2
  352. package/dist/modules/mcp/mcp.constants.js.map +1 -1
  353. package/dist/modules/mcp/mcp.controller.js +20 -6
  354. package/dist/modules/mcp/mcp.controller.js.map +1 -1
  355. package/dist/modules/mcp/mcp.service.js +3 -3
  356. package/dist/modules/mcp/mcp.types.d.ts +1 -0
  357. package/dist/modules/mcp/tools/agents/agent-reference.d.ts +1 -1
  358. package/dist/modules/mcp/tools/agents/agent-reference.js +2 -2
  359. package/dist/modules/mcp/tools/agents/agent-tools.service.d.ts +2 -5
  360. package/dist/modules/mcp/tools/agents/agent-tools.service.js +5 -9
  361. package/dist/modules/mcp/tools/agents/agent-tools.service.js.map +1 -1
  362. package/dist/modules/mcp/tools/list-credentials.tool.d.ts +1 -1
  363. package/dist/modules/mcp/tools/list-credentials.tool.js +5 -5
  364. package/dist/modules/mcp/tools/list-credentials.tool.js.map +1 -1
  365. package/dist/modules/mcp/tools/{list-n8n-connect-services.tool.d.ts → list-n8n-gateway-services.tool.d.ts} +1 -1
  366. package/dist/modules/mcp/tools/{list-n8n-connect-services.tool.js → list-n8n-gateway-services.tool.js} +13 -13
  367. package/dist/modules/mcp/tools/list-n8n-gateway-services.tool.js.map +1 -0
  368. package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.js +1 -1
  369. package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.js.map +1 -1
  370. package/dist/modules/mcp/tools/workflow-builder/credentials-auto-assign.js +1 -1
  371. package/dist/modules/mcp/tools/workflow-builder/credentials-auto-assign.js.map +1 -1
  372. package/dist/modules/mcp/tools/workflow-builder/get-workflow-node-types.tool.js +8 -6
  373. package/dist/modules/mcp/tools/workflow-builder/get-workflow-node-types.tool.js.map +1 -1
  374. package/dist/modules/mcp/tools/workflow-builder/mcp-instructions.js +1 -1
  375. package/dist/modules/mcp/tools/workflow-builder/mcp-instructions.js.map +1 -1
  376. package/dist/modules/mcp/tools/workflow-builder/search-workflow-nodes.tool.js +8 -6
  377. package/dist/modules/mcp/tools/workflow-builder/search-workflow-nodes.tool.js.map +1 -1
  378. package/dist/modules/n8n-packages/engine/import-result.d.ts +2 -1
  379. package/dist/modules/n8n-packages/engine/import-result.js +1 -0
  380. package/dist/modules/n8n-packages/engine/import-result.js.map +1 -1
  381. package/dist/modules/n8n-packages/engine/import-telemetry.d.ts +5 -1
  382. package/dist/modules/n8n-packages/engine/import-telemetry.js.map +1 -1
  383. package/dist/modules/n8n-packages/engine/project-package-importer.d.ts +4 -5
  384. package/dist/modules/n8n-packages/engine/project-package-importer.js +9 -7
  385. package/dist/modules/n8n-packages/engine/project-package-importer.js.map +1 -1
  386. package/dist/modules/n8n-packages/engine/workflow-package-importer.d.ts +4 -5
  387. package/dist/modules/n8n-packages/engine/workflow-package-importer.js +18 -20
  388. package/dist/modules/n8n-packages/engine/workflow-package-importer.js.map +1 -1
  389. package/dist/modules/n8n-packages/entities/credential/credential-importer.js +1 -0
  390. package/dist/modules/n8n-packages/entities/credential/credential-importer.js.map +1 -1
  391. package/dist/modules/n8n-packages/entities/credential/credential-requirements.extractor.js +12 -12
  392. package/dist/modules/n8n-packages/entities/credential/credential-requirements.extractor.js.map +1 -1
  393. package/dist/modules/n8n-packages/entities/credential/workflow-credential-references.d.ts +4 -0
  394. package/dist/modules/n8n-packages/entities/credential/workflow-credential-references.js +34 -0
  395. package/dist/modules/n8n-packages/entities/credential/workflow-credential-references.js.map +1 -0
  396. package/dist/modules/n8n-packages/entities/project/project-importer.js +1 -1
  397. package/dist/modules/n8n-packages/entities/project/project-importer.js.map +1 -1
  398. package/dist/modules/n8n-packages/entities/workflow/workflow-importer.js +22 -14
  399. package/dist/modules/n8n-packages/entities/workflow/workflow-importer.js.map +1 -1
  400. package/dist/modules/n8n-packages/io/directory/directory-package-reader.d.ts +21 -0
  401. package/dist/modules/n8n-packages/io/directory/directory-package-reader.js +146 -0
  402. package/dist/modules/n8n-packages/io/directory/directory-package-reader.js.map +1 -0
  403. package/dist/modules/n8n-packages/n8n-packages.service.d.ts +5 -1
  404. package/dist/modules/n8n-packages/n8n-packages.service.js +36 -0
  405. package/dist/modules/n8n-packages/n8n-packages.service.js.map +1 -1
  406. package/dist/modules/n8n-packages/n8n-packages.types.d.ts +10 -2
  407. package/dist/modules/n8n-packages/n8n-packages.types.js.map +1 -1
  408. package/dist/modules/oauth-server/database/entities/oauth-refresh-token.entity.d.ts +1 -0
  409. package/dist/modules/oauth-server/database/entities/oauth-refresh-token.entity.js +4 -0
  410. package/dist/modules/oauth-server/database/entities/oauth-refresh-token.entity.js.map +1 -1
  411. package/dist/modules/oauth-server/database/repositories/oauth-refresh-token.repository.d.ts +1 -0
  412. package/dist/modules/oauth-server/database/repositories/oauth-refresh-token.repository.js.map +1 -1
  413. package/dist/modules/oauth-server/oauth-server.service.d.ts +1 -1
  414. package/dist/modules/oauth-server/oauth-server.service.js +12 -16
  415. package/dist/modules/oauth-server/oauth-server.service.js.map +1 -1
  416. package/dist/modules/oauth-server/oauth-token.service.d.ts +2 -1
  417. package/dist/modules/oauth-server/oauth-token.service.js +15 -3
  418. package/dist/modules/oauth-server/oauth-token.service.js.map +1 -1
  419. package/dist/modules/oauth-server/protected-resource-resolvers/chat-trigger-resource.base.d.ts +22 -0
  420. package/dist/modules/oauth-server/protected-resource-resolvers/chat-trigger-resource.base.js +60 -0
  421. package/dist/modules/oauth-server/protected-resource-resolvers/chat-trigger-resource.base.js.map +1 -0
  422. package/dist/modules/oauth-server/protected-resource-resolvers/chat-trigger-resource.resolver.d.ts +24 -0
  423. package/dist/modules/oauth-server/protected-resource-resolvers/chat-trigger-resource.resolver.js +62 -0
  424. package/dist/modules/oauth-server/protected-resource-resolvers/chat-trigger-resource.resolver.js.map +1 -0
  425. package/dist/modules/oauth-server/protected-resource-resolvers/chat-trigger-test-resource.resolver.d.ts +22 -0
  426. package/dist/modules/oauth-server/protected-resource-resolvers/chat-trigger-test-resource.resolver.js +56 -0
  427. package/dist/modules/oauth-server/protected-resource-resolvers/chat-trigger-test-resource.resolver.js.map +1 -0
  428. package/dist/modules/oauth-server/protected-resource-resolvers/index.js +4 -0
  429. package/dist/modules/oauth-server/protected-resource-resolvers/index.js.map +1 -1
  430. package/dist/modules/oauth-server/protected-resource-resolvers/utils.d.ts +4 -0
  431. package/dist/modules/oauth-server/protected-resource-resolvers/utils.js +17 -1
  432. package/dist/modules/oauth-server/protected-resource-resolvers/utils.js.map +1 -1
  433. package/dist/modules/oauth-server/resource-identity.d.ts +2 -0
  434. package/dist/modules/oauth-server/resource-identity.js +15 -0
  435. package/dist/modules/oauth-server/resource-identity.js.map +1 -0
  436. package/dist/modules/otel/otel.service.js +14 -7
  437. package/dist/modules/otel/otel.service.js.map +1 -1
  438. package/dist/modules/policy-infrastructure/policy-decision.service.d.ts +1 -0
  439. package/dist/modules/policy-infrastructure/policy-decision.service.js +3 -0
  440. package/dist/modules/policy-infrastructure/policy-decision.service.js.map +1 -1
  441. package/dist/modules/policy-infrastructure/policy-infrastructure.module.js +1 -0
  442. package/dist/modules/policy-infrastructure/policy-infrastructure.module.js.map +1 -1
  443. package/dist/modules/policy-infrastructure/policy-lifecycle-handler.d.ts +9 -0
  444. package/dist/modules/policy-infrastructure/policy-lifecycle-handler.js +45 -0
  445. package/dist/modules/policy-infrastructure/policy-lifecycle-handler.js.map +1 -0
  446. package/dist/modules/quick-connect/handlers/firecrawl.handler.js +1 -1
  447. package/dist/modules/quick-connect/handlers/firecrawl.handler.js.map +1 -1
  448. package/dist/modules/source-control.ee/source-control-import.service.ee.d.ts +18 -1
  449. package/dist/modules/source-control.ee/source-control-import.service.ee.js +11 -3
  450. package/dist/modules/source-control.ee/source-control-import.service.ee.js.map +1 -1
  451. package/dist/modules/source-control.ee/source-control-status.service.ee.js +2 -0
  452. package/dist/modules/source-control.ee/source-control-status.service.ee.js.map +1 -1
  453. package/dist/modules/source-control.ee/source-control.controller.ee.d.ts +32 -0
  454. package/dist/modules/source-control.ee/source-control.service.ee.d.ts +16 -0
  455. package/dist/modules/source-control.ee/source-control.service.ee.js +11 -2
  456. package/dist/modules/source-control.ee/source-control.service.ee.js.map +1 -1
  457. package/dist/modules/source-control.ee/types/import-result.d.ts +2 -1
  458. package/dist/modules/sso-oidc/oidc.controller.ee.js +2 -2
  459. package/dist/modules/sso-oidc/oidc.controller.ee.js.map +1 -1
  460. package/dist/modules/sso-oidc/oidc.service.ee.js +1 -1
  461. package/dist/modules/sso-oidc/oidc.service.ee.js.map +1 -1
  462. package/dist/modules/sso-oidc/views/oidc-test-result.d.ts +2 -2
  463. package/dist/modules/sso-oidc/views/oidc-test-result.js +10 -4
  464. package/dist/modules/sso-oidc/views/oidc-test-result.js.map +1 -1
  465. package/dist/modules/sso-saml/saml.controller.ee.js +2 -2
  466. package/dist/modules/sso-saml/saml.controller.ee.js.map +1 -1
  467. package/dist/modules/sso-saml/saml.service.ee.js +1 -1
  468. package/dist/modules/sso-saml/saml.service.ee.js.map +1 -1
  469. package/dist/modules/sso-saml/views/init-sso-post.d.ts +1 -1
  470. package/dist/modules/sso-saml/views/init-sso-post.js +2 -2
  471. package/dist/modules/sso-saml/views/init-sso-post.js.map +1 -1
  472. package/dist/modules/token-exchange/services/jwks-resolver.js +1 -1
  473. package/dist/modules/token-exchange/services/jwks-resolver.js.map +1 -1
  474. package/dist/modules/type-availability-policies/database/entities/type-availability-policy-attachment.entity.d.ts +7 -0
  475. package/dist/modules/type-availability-policies/database/entities/type-availability-policy-attachment.entity.js +38 -0
  476. package/dist/modules/type-availability-policies/database/entities/type-availability-policy-attachment.entity.js.map +1 -0
  477. package/dist/modules/type-availability-policies/database/entities/type-availability-policy-scope.entity.d.ts +9 -0
  478. package/dist/modules/type-availability-policies/database/entities/type-availability-policy-scope.entity.js +41 -0
  479. package/dist/modules/type-availability-policies/database/entities/type-availability-policy-scope.entity.js.map +1 -0
  480. package/dist/modules/type-availability-policies/database/entities/type-availability-policy.entity.d.ts +8 -0
  481. package/dist/modules/type-availability-policies/database/entities/type-availability-policy.entity.js +37 -0
  482. package/dist/modules/type-availability-policies/database/entities/type-availability-policy.entity.js.map +1 -0
  483. package/dist/modules/type-availability-policies/database/repositories/type-availability-policy-attachment.repository.d.ts +17 -0
  484. package/dist/modules/type-availability-policies/database/repositories/type-availability-policy-attachment.repository.js +96 -0
  485. package/dist/modules/type-availability-policies/database/repositories/type-availability-policy-attachment.repository.js.map +1 -0
  486. package/dist/modules/type-availability-policies/database/repositories/type-availability-policy-scope.repository.d.ts +20 -0
  487. package/dist/modules/type-availability-policies/database/repositories/type-availability-policy-scope.repository.js +69 -0
  488. package/dist/modules/type-availability-policies/database/repositories/type-availability-policy-scope.repository.js.map +1 -0
  489. package/dist/modules/type-availability-policies/database/repositories/type-availability-policy.repository.d.ts +18 -0
  490. package/dist/modules/type-availability-policies/database/repositories/type-availability-policy.repository.js +63 -0
  491. package/dist/modules/type-availability-policies/database/repositories/type-availability-policy.repository.js.map +1 -0
  492. package/dist/modules/type-availability-policies/type-availability-policies.module.d.ts +1 -0
  493. package/dist/modules/type-availability-policies/type-availability-policies.module.js +6 -0
  494. package/dist/modules/type-availability-policies/type-availability-policies.module.js.map +1 -1
  495. package/dist/modules/workflow-reviews.ee/workflow-review-activity.service.d.ts +3 -5
  496. package/dist/modules/workflow-reviews.ee/workflow-review-activity.service.js +7 -9
  497. package/dist/modules/workflow-reviews.ee/workflow-review-activity.service.js.map +1 -1
  498. package/dist/modules/workflow-reviews.ee/{workflow-review-access.service.d.ts → workflow-review-authorization.service.d.ts} +12 -3
  499. package/dist/modules/workflow-reviews.ee/{workflow-review-access.service.js → workflow-review-authorization.service.js} +52 -17
  500. package/dist/modules/workflow-reviews.ee/workflow-review-authorization.service.js.map +1 -0
  501. package/dist/modules/workflow-reviews.ee/workflow-review-decision-policy.d.ts +14 -0
  502. package/dist/modules/workflow-reviews.ee/workflow-review-decision-policy.js +17 -0
  503. package/dist/modules/workflow-reviews.ee/workflow-review-decision-policy.js.map +1 -0
  504. package/dist/modules/workflow-reviews.ee/workflow-review-inbox.service.d.ts +8 -12
  505. package/dist/modules/workflow-reviews.ee/workflow-review-inbox.service.js +28 -82
  506. package/dist/modules/workflow-reviews.ee/workflow-review-inbox.service.js.map +1 -1
  507. package/dist/modules/workflow-reviews.ee/workflow-review-lifecycle.service.d.ts +7 -6
  508. package/dist/modules/workflow-reviews.ee/workflow-review-lifecycle.service.js +80 -110
  509. package/dist/modules/workflow-reviews.ee/workflow-review-lifecycle.service.js.map +1 -1
  510. package/dist/modules/workflow-reviews.ee/workflow-review-participant.resolver.d.ts +17 -0
  511. package/dist/modules/workflow-reviews.ee/workflow-review-participant.resolver.js +69 -0
  512. package/dist/modules/workflow-reviews.ee/workflow-review-participant.resolver.js.map +1 -0
  513. package/dist/modules/workflow-reviews.ee/workflow-review-request-decision.service.d.ts +34 -0
  514. package/dist/modules/workflow-reviews.ee/workflow-review-request-decision.service.js +237 -0
  515. package/dist/modules/workflow-reviews.ee/workflow-review-request-decision.service.js.map +1 -0
  516. package/dist/modules/workflow-reviews.ee/workflow-review-request-mutation-guard.service.d.ts +10 -0
  517. package/dist/modules/workflow-reviews.ee/workflow-review-request-mutation-guard.service.js +57 -0
  518. package/dist/modules/workflow-reviews.ee/workflow-review-request-mutation-guard.service.js.map +1 -0
  519. package/dist/modules/workflow-reviews.ee/workflow-review-request-status.service.d.ts +17 -0
  520. package/dist/modules/workflow-reviews.ee/workflow-review-request-status.service.js +93 -0
  521. package/dist/modules/workflow-reviews.ee/workflow-review-request-status.service.js.map +1 -0
  522. package/dist/modules/workflow-reviews.ee/workflow-review-request-submission.service.d.ts +34 -0
  523. package/dist/modules/workflow-reviews.ee/workflow-review-request-submission.service.js +268 -0
  524. package/dist/modules/workflow-reviews.ee/workflow-review-request-submission.service.js.map +1 -0
  525. package/dist/modules/workflow-reviews.ee/workflow-review-requests.controller.d.ts +7 -3
  526. package/dist/modules/workflow-reviews.ee/workflow-review-requests.controller.js +13 -9
  527. package/dist/modules/workflow-reviews.ee/workflow-review-requests.controller.js.map +1 -1
  528. package/dist/modules/workflow-reviews.ee/workflow-review-state-notifier.service.d.ts +9 -0
  529. package/dist/modules/workflow-reviews.ee/workflow-review-state-notifier.service.js +37 -0
  530. package/dist/modules/workflow-reviews.ee/workflow-review-state-notifier.service.js.map +1 -0
  531. package/dist/oauth/oauth.service.js +0 -1
  532. package/dist/oauth/oauth.service.js.map +1 -1
  533. package/dist/permissions.ee/check-access.js +11 -7
  534. package/dist/permissions.ee/check-access.js.map +1 -1
  535. package/dist/permissions.ee/project-scope.service.d.ts +1 -0
  536. package/dist/permissions.ee/project-scope.service.js +7 -2
  537. package/dist/permissions.ee/project-scope.service.js.map +1 -1
  538. package/dist/policy/evaluate-content-import-safely.d.ts +5 -0
  539. package/dist/policy/evaluate-content-import-safely.js +18 -0
  540. package/dist/policy/evaluate-content-import-safely.js.map +1 -0
  541. package/dist/policy/policy-enforcement-backend.d.ts +1 -0
  542. package/dist/policy/policy-enforcement.service.d.ts +2 -2
  543. package/dist/policy/policy-enforcement.service.js +10 -14
  544. package/dist/policy/policy-enforcement.service.js.map +1 -1
  545. package/dist/policy/policy-violation.error.d.ts +2 -0
  546. package/dist/policy/policy-violation.error.js +10 -0
  547. package/dist/policy/policy-violation.error.js.map +1 -1
  548. package/dist/public-api/types.d.ts +1 -14
  549. package/dist/public-api/v1/controllers/git-connections.public.controller.d.ts +2 -1
  550. package/dist/public-api/v1/controllers/git-connections.public.controller.js +24 -3
  551. package/dist/public-api/v1/controllers/git-connections.public.controller.js.map +1 -1
  552. package/dist/public-api/v1/controllers/workflows.public.controller.d.ts +8 -1
  553. package/dist/public-api/v1/controllers/workflows.public.controller.js +151 -14
  554. package/dist/public-api/v1/controllers/workflows.public.controller.js.map +1 -1
  555. package/dist/public-api/v1/handlers/credentials/credentials.handler.js +1 -0
  556. package/dist/public-api/v1/handlers/credentials/credentials.handler.js.map +1 -1
  557. package/dist/public-api/v1/handlers/data-tables/data-tables.handler.js +33 -44
  558. package/dist/public-api/v1/handlers/data-tables/data-tables.handler.js.map +1 -1
  559. package/dist/public-api/v1/handlers/discover/discover.handler.d.ts +1 -1
  560. package/dist/public-api/v1/handlers/discover/discover.handler.js +3 -13
  561. package/dist/public-api/v1/handlers/discover/discover.handler.js.map +1 -1
  562. package/dist/public-api/v1/handlers/discover/discover.service.d.ts +2 -3
  563. package/dist/public-api/v1/handlers/discover/discover.service.js.map +1 -1
  564. package/dist/public-api/v1/handlers/projects/projects.handler.d.ts +1 -1
  565. package/dist/public-api/v1/handlers/projects/projects.handler.js +23 -21
  566. package/dist/public-api/v1/handlers/projects/projects.handler.js.map +1 -1
  567. package/dist/public-api/v1/handlers/variables/variables.handler.d.ts +1 -1
  568. package/dist/public-api/v1/handlers/variables/variables.handler.js +5 -6
  569. package/dist/public-api/v1/handlers/variables/variables.handler.js.map +1 -1
  570. package/dist/public-api/v1/handlers/workflows/workflows.handler.d.ts +0 -4
  571. package/dist/public-api/v1/handlers/workflows/workflows.handler.js +0 -102
  572. package/dist/public-api/v1/handlers/workflows/workflows.handler.js.map +1 -1
  573. package/dist/public-api/v1/openapi.yml +4779 -2848
  574. package/dist/response-helper.js +3 -0
  575. package/dist/response-helper.js.map +1 -1
  576. package/dist/scaling/constants.d.ts +2 -2
  577. package/dist/scaling/constants.js +1 -0
  578. package/dist/scaling/constants.js.map +1 -1
  579. package/dist/scaling/pubsub/pubsub.event-map.d.ts +5 -1
  580. package/dist/scaling/pubsub/pubsub.types.d.ts +2 -1
  581. package/dist/scheduling/poll-trigger-node/poll-trigger-task-handler.js +2 -7
  582. package/dist/scheduling/poll-trigger-node/poll-trigger-task-handler.js.map +1 -1
  583. package/dist/security/content-security-policy.d.ts +8 -0
  584. package/dist/security/content-security-policy.js +18 -0
  585. package/dist/security/content-security-policy.js.map +1 -0
  586. package/dist/security-audit/risk-reporters/instance-risk-reporter.js +1 -1
  587. package/dist/security-audit/risk-reporters/instance-risk-reporter.js.map +1 -1
  588. package/dist/server.js +22 -21
  589. package/dist/server.js.map +1 -1
  590. package/dist/services/active-workflows.service.d.ts +3 -1
  591. package/dist/services/active-workflows.service.js +11 -9
  592. package/dist/services/active-workflows.service.js.map +1 -1
  593. package/dist/services/ai-gateway-eligibility.js +1 -1
  594. package/dist/services/ai-gateway-eligibility.js.map +1 -1
  595. package/dist/services/ai-gateway.service.js +14 -14
  596. package/dist/services/ai-gateway.service.js.map +1 -1
  597. package/dist/services/credentials-tester.service.js +7 -1
  598. package/dist/services/credentials-tester.service.js.map +1 -1
  599. package/dist/services/engine-data-plane-proxy.service.d.ts +4 -1
  600. package/dist/services/engine-data-plane-proxy.service.js +5 -0
  601. package/dist/services/engine-data-plane-proxy.service.js.map +1 -1
  602. package/dist/services/engine-v2-dispatcher.service.d.ts +5 -2
  603. package/dist/services/engine-v2-dispatcher.service.js +46 -24
  604. package/dist/services/engine-v2-dispatcher.service.js.map +1 -1
  605. package/dist/services/engine-v2-push-registry.service.d.ts +8 -0
  606. package/dist/services/engine-v2-push-registry.service.js +51 -0
  607. package/dist/services/engine-v2-push-registry.service.js.map +1 -0
  608. package/dist/services/engine-v2-push-session.d.ts +23 -0
  609. package/dist/services/engine-v2-push-session.js +24 -0
  610. package/dist/services/engine-v2-push-session.js.map +1 -0
  611. package/dist/services/folder-finder.service.js +10 -8
  612. package/dist/services/folder-finder.service.js.map +1 -1
  613. package/dist/services/folder.service.d.ts +1 -1
  614. package/dist/services/folder.service.js +1 -7
  615. package/dist/services/folder.service.js.map +1 -1
  616. package/dist/services/import.service.d.ts +14 -3
  617. package/dist/services/import.service.js +27 -2
  618. package/dist/services/import.service.js.map +1 -1
  619. package/dist/services/node-resource-explorer.service.js +1 -1
  620. package/dist/services/node-resource-explorer.service.js.map +1 -1
  621. package/dist/services/ownership-transfer/ownership-transfer.manifest.json +5 -0
  622. package/dist/services/project.service.ee.d.ts +47 -9
  623. package/dist/services/project.service.ee.js +128 -17
  624. package/dist/services/project.service.ee.js.map +1 -1
  625. package/dist/services/role.service.js +10 -5
  626. package/dist/services/role.service.js.map +1 -1
  627. package/dist/task-runners/task-runner-process-py.d.ts +1 -1
  628. package/dist/task-runners/task-runner-process-py.js.map +1 -1
  629. package/dist/telemetry/index.js +1 -1
  630. package/dist/telemetry/index.js.map +1 -1
  631. package/dist/utils/ai-proxy-fetch.d.ts +3 -4
  632. package/dist/utils/ai-proxy-fetch.js +3 -5
  633. package/dist/utils/ai-proxy-fetch.js.map +1 -1
  634. package/dist/utils/strapi-utils.js +1 -1
  635. package/dist/utils/strapi-utils.js.map +1 -1
  636. package/dist/utils/ttl-map.d.ts +1 -0
  637. package/dist/utils/ttl-map.js +9 -0
  638. package/dist/utils/ttl-map.js.map +1 -1
  639. package/dist/webhooks/constants.d.ts +2 -0
  640. package/dist/webhooks/constants.js +2 -1
  641. package/dist/webhooks/constants.js.map +1 -1
  642. package/dist/webhooks/live-webhooks.js +1 -1
  643. package/dist/webhooks/live-webhooks.js.map +1 -1
  644. package/dist/webhooks/test-webhook-registrations.service.d.ts +1 -0
  645. package/dist/webhooks/test-webhook-registrations.service.js.map +1 -1
  646. package/dist/webhooks/test-webhooks.d.ts +6 -2
  647. package/dist/webhooks/test-webhooks.js +29 -6
  648. package/dist/webhooks/test-webhooks.js.map +1 -1
  649. package/dist/webhooks/waiting-forms.js +3 -4
  650. package/dist/webhooks/waiting-forms.js.map +1 -1
  651. package/dist/webhooks/waiting-webhooks.js +4 -0
  652. package/dist/webhooks/waiting-webhooks.js.map +1 -1
  653. package/dist/webhooks/webhook-helpers.d.ts +3 -1
  654. package/dist/webhooks/webhook-helpers.js +24 -1
  655. package/dist/webhooks/webhook-helpers.js.map +1 -1
  656. package/dist/webhooks/webhook-response-headers.d.ts +1 -0
  657. package/dist/webhooks/webhook-response-headers.js +6 -0
  658. package/dist/webhooks/webhook-response-headers.js.map +1 -1
  659. package/dist/workflow-execute-additional-data.js +5 -0
  660. package/dist/workflow-execute-additional-data.js.map +1 -1
  661. package/dist/workflow-helpers.d.ts +3 -2
  662. package/dist/workflow-helpers.js +35 -24
  663. package/dist/workflow-helpers.js.map +1 -1
  664. package/dist/workflows/publication/publication-result.d.ts +5 -0
  665. package/dist/workflows/publication/publication-status-reporter.d.ts +1 -0
  666. package/dist/workflows/publication/publication-status-reporter.js +23 -5
  667. package/dist/workflows/publication/publication-status-reporter.js.map +1 -1
  668. package/dist/workflows/publication/workflow-publication-applier.d.ts +6 -1
  669. package/dist/workflows/publication/workflow-publication-applier.js +63 -10
  670. package/dist/workflows/publication/workflow-publication-applier.js.map +1 -1
  671. package/dist/workflows/triggers/poll-backoff.service.d.ts +2 -2
  672. package/dist/workflows/triggers/poll-backoff.service.js +3 -3
  673. package/dist/workflows/triggers/poll-backoff.service.js.map +1 -1
  674. package/dist/workflows/triggers/poll-cursor.service.d.ts +2 -2
  675. package/dist/workflows/triggers/poll-cursor.service.js +4 -1
  676. package/dist/workflows/triggers/poll-cursor.service.js.map +1 -1
  677. package/dist/workflows/triggers/trigger-execution-context.factory.d.ts +6 -4
  678. package/dist/workflows/triggers/trigger-execution-context.factory.js +13 -7
  679. package/dist/workflows/triggers/trigger-execution-context.factory.js.map +1 -1
  680. package/dist/workflows/triggers/webhook-trigger-registrar.d.ts +1 -0
  681. package/dist/workflows/triggers/webhook-trigger-registrar.js +3 -0
  682. package/dist/workflows/triggers/webhook-trigger-registrar.js.map +1 -1
  683. package/dist/workflows/triggers/workflow-trigger-activator.d.ts +10 -1
  684. package/dist/workflows/triggers/workflow-trigger-activator.js +78 -38
  685. package/dist/workflows/triggers/workflow-trigger-activator.js.map +1 -1
  686. package/dist/workflows/workflow-creation.service.d.ts +17 -4
  687. package/dist/workflows/workflow-creation.service.js +96 -16
  688. package/dist/workflows/workflow-creation.service.js.map +1 -1
  689. package/dist/workflows/workflow-execution.service.js +2 -0
  690. package/dist/workflows/workflow-execution.service.js.map +1 -1
  691. package/dist/workflows/workflow-finder.service.js +67 -56
  692. package/dist/workflows/workflow-finder.service.js.map +1 -1
  693. package/dist/workflows/workflow-validation.service.js +3 -2
  694. package/dist/workflows/workflow-validation.service.js.map +1 -1
  695. package/dist/workflows/workflow.service.d.ts +4 -1
  696. package/dist/workflows/workflow.service.ee.d.ts +9 -3
  697. package/dist/workflows/workflow.service.ee.js +16 -2
  698. package/dist/workflows/workflow.service.ee.js.map +1 -1
  699. package/dist/workflows/workflow.service.js +25 -4
  700. package/dist/workflows/workflow.service.js.map +1 -1
  701. package/dist/workflows/workflows.controller.d.ts +3 -5
  702. package/dist/workflows/workflows.controller.js +3 -7
  703. package/dist/workflows/workflows.controller.js.map +1 -1
  704. package/package.json +39 -39
  705. package/templates/oauth-callback.handlebars +1 -1
  706. package/templates/oauth-error-callback.handlebars +1 -1
  707. package/templates/saml-connection-test-failed.handlebars +4 -1
  708. package/templates/saml-connection-test-success.handlebars +4 -1
  709. package/dist/modules/instance-ai/output-redaction-config.d.ts +0 -3
  710. package/dist/modules/instance-ai/output-redaction-config.js +0 -21
  711. package/dist/modules/instance-ai/output-redaction-config.js.map +0 -1
  712. package/dist/modules/mcp/tools/list-n8n-connect-services.tool.js.map +0 -1
  713. package/dist/modules/workflow-reviews.ee/workflow-review-access.service.js.map +0 -1
  714. package/dist/modules/workflow-reviews.ee/workflow-review-eligibility.service.d.ts +0 -18
  715. package/dist/modules/workflow-reviews.ee/workflow-review-eligibility.service.js +0 -77
  716. package/dist/modules/workflow-reviews.ee/workflow-review-eligibility.service.js.map +0 -1
  717. package/dist/modules/workflow-reviews.ee/workflow-review-request.service.d.ts +0 -51
  718. package/dist/modules/workflow-reviews.ee/workflow-review-request.service.js +0 -538
  719. package/dist/modules/workflow-reviews.ee/workflow-review-request.service.js.map +0 -1
  720. package/dist/policy/policy-cleared.d.ts +0 -20
  721. package/dist/policy/policy-cleared.js +0 -22
  722. package/dist/policy/policy-cleared.js.map +0 -1
  723. package/dist/public-api/v1/handlers/data-tables/data-tables.service.d.ts +0 -4
  724. package/dist/public-api/v1/handlers/data-tables/data-tables.service.js +0 -44
  725. package/dist/public-api/v1/handlers/data-tables/data-tables.service.js.map +0 -1
@@ -1,538 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.WorkflowReviewRequestService = void 0;
13
- const backend_common_1 = require("@n8n/backend-common");
14
- const db_1 = require("@n8n/db");
15
- const di_1 = require("@n8n/di");
16
- const ensure_error_1 = require("@n8n/utils/errors/ensure-error");
17
- const collaboration_service_1 = require("../../collaboration/collaboration.service");
18
- const bad_request_error_1 = require("../../errors/response-errors/bad-request.error");
19
- const conflict_error_1 = require("../../errors/response-errors/conflict.error");
20
- const forbidden_error_1 = require("../../errors/response-errors/forbidden.error");
21
- const not_found_error_1 = require("../../errors/response-errors/not-found.error");
22
- const event_service_1 = require("../../events/event.service");
23
- const role_service_1 = require("../../services/role.service");
24
- const workflow_finder_service_1 = require("../../workflows/workflow-finder.service");
25
- const workflow_history_service_1 = require("../../workflows/workflow-history/workflow-history.service");
26
- const workflow_service_1 = require("../../workflows/workflow.service");
27
- const workflow_review_access_service_1 = require("./workflow-review-access.service");
28
- const workflow_review_eligibility_service_1 = require("./workflow-review-eligibility.service");
29
- const workflow_review_feature_gate_service_1 = require("./workflow-review-feature-gate.service");
30
- const workflow_review_mapper_1 = require("./workflow-review.mapper");
31
- function normalizeVersionDescription(description) {
32
- if (description === undefined)
33
- return undefined;
34
- return description.trim() || null;
35
- }
36
- function normalizeReviewDescription(description) {
37
- if (description === undefined)
38
- return undefined;
39
- return description.trim() || null;
40
- }
41
- const BLOCKED_ACTION_TEXT = {
42
- submit: 'submitted for review',
43
- review: 'reviewed',
44
- update: 'submitted as a new review version',
45
- };
46
- let WorkflowReviewRequestService = class WorkflowReviewRequestService {
47
- constructor(logger, featureGate, workflowFinderService, workflowHistoryService, workflowHistoryRepository, workflowRepository, sharedWorkflowRepository, workflowReviewRequestRepository, workflowReviewRequestWorkflowRepository, workflowReviewRequestAuthorRepository, workflowReviewRequestReviewerRepository, activityRepository, userRepository, eligibilityService, roleService, dbLockService, collaborationService, workflowService, accessService, eventService) {
48
- this.logger = logger;
49
- this.featureGate = featureGate;
50
- this.workflowFinderService = workflowFinderService;
51
- this.workflowHistoryService = workflowHistoryService;
52
- this.workflowHistoryRepository = workflowHistoryRepository;
53
- this.workflowRepository = workflowRepository;
54
- this.sharedWorkflowRepository = sharedWorkflowRepository;
55
- this.workflowReviewRequestRepository = workflowReviewRequestRepository;
56
- this.workflowReviewRequestWorkflowRepository = workflowReviewRequestWorkflowRepository;
57
- this.workflowReviewRequestAuthorRepository = workflowReviewRequestAuthorRepository;
58
- this.workflowReviewRequestReviewerRepository = workflowReviewRequestReviewerRepository;
59
- this.activityRepository = activityRepository;
60
- this.userRepository = userRepository;
61
- this.eligibilityService = eligibilityService;
62
- this.roleService = roleService;
63
- this.dbLockService = dbLockService;
64
- this.collaborationService = collaborationService;
65
- this.workflowService = workflowService;
66
- this.accessService = accessService;
67
- this.eventService = eventService;
68
- }
69
- async findEligibleReviewers(projectId, excludeUserId) {
70
- const [projectRoleSlugs, globalRoleSlugs] = await Promise.all([
71
- this.roleService.rolesWithScope('project', ['workflow:read']),
72
- this.roleService.rolesWithScope('global', ['workflow:read']),
73
- ]);
74
- const users = await this.userRepository.findEligibleByProjectOrGlobalRoles({
75
- projectId,
76
- projectRoleSlugs,
77
- globalRoleSlugs,
78
- });
79
- return users
80
- .filter((user) => !user.isPending && user.id !== excludeUserId)
81
- .sort((a, b) => a.email.localeCompare(b.email));
82
- }
83
- async list(user, query) {
84
- await this.featureGate.assertAvailable();
85
- const workflow = await this.workflowFinderService.findWorkflowForUser(query.workflowId, user, [
86
- 'workflow:read',
87
- ]);
88
- if (!workflow) {
89
- throw new not_found_error_1.NotFoundError('Could not find workflow');
90
- }
91
- const [[requests, count], canPublish] = await Promise.all([
92
- this.workflowReviewRequestRepository.findRequestsForWorkflow(query.workflowId, {
93
- state: query.state,
94
- skip: query.skip,
95
- take: query.take,
96
- }),
97
- this.workflowFinderService
98
- .findWorkflowForUser(query.workflowId, user, ['workflow:publish'])
99
- .then((found) => found !== null),
100
- ]);
101
- return {
102
- count,
103
- data: await this.toWorkflowScopedItems(requests, canPublish, user),
104
- };
105
- }
106
- async toWorkflowScopedItems(requests, canPublish, user) {
107
- const [decisionActors, openableIds] = await Promise.all([
108
- this.resolveDecisionActors(requests),
109
- this.accessService.resolveOpenableRequestIds(user, requests),
110
- ]);
111
- return requests.map((request) => ({
112
- id: request.id,
113
- state: request.state,
114
- decision: request.decision,
115
- description: canPublish ? request.description : null,
116
- workflowVersionId: request.workflowVersionId,
117
- workflowVersionName: request.workflowVersionName,
118
- createdAt: request.createdAt.toISOString(),
119
- updatedAt: request.updatedAt.toISOString(),
120
- decisionBy: this.pickDecisionActor(request, decisionActors),
121
- viewerCanOpen: openableIds.has(request.id),
122
- }));
123
- }
124
- async resolveDecisionActors(requests) {
125
- const actorIds = [
126
- ...new Set(requests.flatMap((request) => request.decision === 'changes_requested' && request.updatedById
127
- ? [request.updatedById]
128
- : [])),
129
- ];
130
- if (actorIds.length === 0) {
131
- return new Map();
132
- }
133
- const actors = await this.userRepository.findManyByIds(actorIds);
134
- return new Map(actors.map((actor) => [actor.id, (0, workflow_review_mapper_1.toEligibleReviewer)(actor)]));
135
- }
136
- pickDecisionActor(request, actors) {
137
- if (request.decision !== 'changes_requested' || !request.updatedById) {
138
- return null;
139
- }
140
- return actors.get(request.updatedById) ?? null;
141
- }
142
- async getEligibleReviewers(user, query) {
143
- await this.featureGate.assertAvailable();
144
- const workflow = await this.workflowFinderService.findWorkflowForUser(query.workflowId, user, [
145
- 'workflow:publish',
146
- ]);
147
- if (!workflow) {
148
- throw new not_found_error_1.NotFoundError('Could not find workflow');
149
- }
150
- const project = await this.sharedWorkflowRepository.getWorkflowOwningProject(query.workflowId);
151
- if (!project) {
152
- throw new not_found_error_1.NotFoundError('Could not find workflow');
153
- }
154
- const reviewers = await this.findEligibleReviewers(project.id, user.id);
155
- return {
156
- count: reviewers.length,
157
- data: reviewers.map(workflow_review_mapper_1.toEligibleReviewer),
158
- };
159
- }
160
- async nameVersion(workflowId, versionId, name, description, ctx) {
161
- const affected = await this.workflowHistoryRepository.updateVersionMetadata({ workflowId, versionId, name, description }, ctx);
162
- if (affected === 0) {
163
- throw new bad_request_error_1.BadRequestError(`Version '${versionId}' does not exist for workflow '${workflowId}'`);
164
- }
165
- }
166
- async assertWorkflowStillReviewable(workflowId, expectedProjectId, ctx, action) {
167
- const blockedAction = BLOCKED_ACTION_TEXT[action];
168
- const workflow = await this.workflowRepository.findArchivedState(workflowId, ctx);
169
- if (!workflow) {
170
- throw new not_found_error_1.NotFoundError('Could not find workflow');
171
- }
172
- if (workflow.isArchived) {
173
- throw new bad_request_error_1.BadRequestError(`The workflow '${workflowId}' is archived and cannot be ${blockedAction}`);
174
- }
175
- const project = await this.sharedWorkflowRepository.getWorkflowOwningProject(workflowId, ctx);
176
- if (project?.id !== expectedProjectId) {
177
- throw new conflict_error_1.ConflictError(`The workflow '${workflowId}' moved to another project and cannot be ${blockedAction} here`, 'Retry from the project that now owns the workflow');
178
- }
179
- }
180
- async create(user, dto) {
181
- const { workflowId, workflowVersionId, workflowVersionName, workflowVersionDescription } = dto.workflows[0];
182
- const versionName = workflowVersionName.trim();
183
- const versionDescription = normalizeVersionDescription(workflowVersionDescription);
184
- await this.featureGate.assertAvailable();
185
- const workflow = await this.workflowFinderService.findWorkflowForUser(workflowId, user, [
186
- 'workflow:publish',
187
- ]);
188
- if (!workflow) {
189
- throw new not_found_error_1.NotFoundError('Could not find workflow');
190
- }
191
- if (workflow.isArchived) {
192
- throw new bad_request_error_1.BadRequestError(`The workflow '${workflowId}' is archived and cannot be submitted for review`);
193
- }
194
- const version = await this.workflowHistoryService.findVersion(workflowId, workflowVersionId);
195
- if (!version) {
196
- throw new bad_request_error_1.BadRequestError(`Version '${workflowVersionId}' does not exist for workflow '${workflowId}'`);
197
- }
198
- const project = await this.sharedWorkflowRepository.getWorkflowOwningProject(workflowId);
199
- if (!project) {
200
- throw new not_found_error_1.NotFoundError('Could not find workflow');
201
- }
202
- const reviewerUserIds = [...new Set(dto.reviewerUserIds)];
203
- if (reviewerUserIds.length === 0) {
204
- throw new bad_request_error_1.BadRequestError('You must assign at least one reviewer');
205
- }
206
- if (reviewerUserIds.includes(user.id)) {
207
- throw new bad_request_error_1.BadRequestError('You cannot assign yourself as a reviewer');
208
- }
209
- const eligibleIds = new Set((await this.findEligibleReviewers(project.id, user.id)).map((reviewer) => reviewer.id));
210
- const ineligibleIds = reviewerUserIds.filter((id) => !eligibleIds.has(id));
211
- if (ineligibleIds.length > 0) {
212
- throw new bad_request_error_1.BadRequestError(`These users are not eligible to review this workflow: ${ineligibleIds.join(', ')}`);
213
- }
214
- const request = await this.dbLockService.withLockContext(1004, async (ctx) => {
215
- await this.assertWorkflowStillReviewable(workflowId, project.id, ctx, 'submit');
216
- const existing = await this.workflowReviewRequestRepository.findOpenRequestForWorkflow(workflowId, ctx);
217
- if (existing) {
218
- throw new conflict_error_1.ConflictError('An open review request already exists for this workflow', 'Update the existing review request instead of creating a new one', { workflowReviewRequestId: existing.id });
219
- }
220
- const created = await this.workflowReviewRequestRepository.createRequest({
221
- projectId: project.id,
222
- title: dto.title,
223
- description: dto.description ?? null,
224
- createdById: user.id,
225
- }, ctx);
226
- await this.workflowReviewRequestWorkflowRepository.createWorkflowRow({
227
- workflowReviewRequestId: created.id,
228
- workflowId,
229
- workflowVersionId,
230
- }, ctx);
231
- await this.nameVersion(workflowId, workflowVersionId, versionName, versionDescription, ctx);
232
- await this.workflowReviewRequestAuthorRepository.addAuthor({ workflowReviewRequestId: created.id, userId: user.id }, ctx);
233
- await this.workflowReviewRequestReviewerRepository.addReviewers({ workflowReviewRequestId: created.id, userIds: reviewerUserIds }, ctx);
234
- await this.activityRepository.createActivity({
235
- workflowReviewRequestId: created.id,
236
- type: 'review.opened',
237
- data: { workflowVersions: [{ workflowId, workflowVersionId }] },
238
- createdById: user.id,
239
- }, ctx);
240
- return created;
241
- });
242
- this.broadcastReviewStateChanged(workflowId);
243
- this.eventService.emit('workflow-review-requested', {
244
- user,
245
- workflowReviewRequestId: request.id,
246
- projectId: project.id,
247
- workflowId,
248
- workflowVersionId,
249
- reviewerCount: reviewerUserIds.length,
250
- });
251
- return (0, workflow_review_mapper_1.toRequestSummary)(request, workflowVersionId);
252
- }
253
- async updateVersion(user, workflowReviewRequestId, dto) {
254
- await this.featureGate.assertAvailable();
255
- const request = await this.workflowReviewRequestRepository.findById(workflowReviewRequestId, {});
256
- if (!request) {
257
- throw new not_found_error_1.NotFoundError('Could not find review request');
258
- }
259
- const workflowRows = await this.workflowReviewRequestWorkflowRepository.findByRequestId(workflowReviewRequestId, {});
260
- const workflowRow = workflowRows.find((row) => row.workflowId === dto.workflowId);
261
- if (!workflowRow) {
262
- throw new not_found_error_1.NotFoundError('Could not find review request');
263
- }
264
- const workflow = await this.workflowFinderService.findWorkflowForUser(dto.workflowId, user, [
265
- 'workflow:publish',
266
- ]);
267
- if (!workflow) {
268
- throw new not_found_error_1.NotFoundError('Could not find workflow');
269
- }
270
- if (workflow.isArchived) {
271
- throw new bad_request_error_1.BadRequestError(`The workflow '${dto.workflowId}' is archived and its review cannot be updated`);
272
- }
273
- this.assertRequestUpdatable(request);
274
- const version = await this.workflowHistoryService.findVersion(dto.workflowId, dto.workflowVersionId);
275
- if (!version) {
276
- throw new bad_request_error_1.BadRequestError(`Version '${dto.workflowVersionId}' does not exist for workflow '${dto.workflowId}'`);
277
- }
278
- const versionName = dto.workflowVersionName.trim();
279
- const versionDescription = normalizeVersionDescription(dto.workflowVersionDescription);
280
- const reviewDescription = normalizeReviewDescription(dto.description);
281
- const metadataChanged = (current) => versionName !== current.name ||
282
- (versionDescription !== undefined && versionDescription !== current.description);
283
- const hasReviewDescriptionChanged = (current) => reviewDescription !== undefined && reviewDescription !== current.description;
284
- if (workflowRow.workflowVersionId === dto.workflowVersionId &&
285
- !hasReviewDescriptionChanged(request)) {
286
- if (metadataChanged(version)) {
287
- await this.nameVersion(dto.workflowId, dto.workflowVersionId, versionName, versionDescription, {});
288
- }
289
- return (0, workflow_review_mapper_1.toRequestSummary)(request, workflowRow.workflowVersionId);
290
- }
291
- const { request: updated, changed, versionUpdated, } = await this.dbLockService.withLockContext(1004, async (ctx) => {
292
- const current = await this.workflowReviewRequestRepository.findById(workflowReviewRequestId, ctx);
293
- if (!current) {
294
- throw new not_found_error_1.NotFoundError('Could not find review request');
295
- }
296
- this.assertRequestUpdatable(current);
297
- const currentRows = await this.workflowReviewRequestWorkflowRepository.findByRequestId(workflowReviewRequestId, ctx);
298
- const currentRow = currentRows.find((row) => row.workflowId === dto.workflowId);
299
- if (!currentRow) {
300
- throw new not_found_error_1.NotFoundError('Could not find review request');
301
- }
302
- await this.assertWorkflowStillReviewable(currentRow.workflowId, current.projectId, ctx, 'update');
303
- if (currentRow.workflowVersionId === dto.workflowVersionId) {
304
- if (metadataChanged(version)) {
305
- await this.nameVersion(dto.workflowId, dto.workflowVersionId, versionName, versionDescription, ctx);
306
- }
307
- if (reviewDescription === undefined || reviewDescription === current.description) {
308
- return { request: current, changed: false, versionUpdated: false };
309
- }
310
- current.description = reviewDescription;
311
- current.updatedById = user.id;
312
- const saved = await this.workflowReviewRequestRepository.saveRequest(current, ctx);
313
- return { request: saved, changed: true, versionUpdated: false };
314
- }
315
- const fromWorkflowVersionId = currentRow.workflowVersionId;
316
- await this.workflowReviewRequestWorkflowRepository.updateWorkflowVersion({
317
- workflowReviewRequestId,
318
- workflowId: dto.workflowId,
319
- workflowVersionId: dto.workflowVersionId,
320
- }, ctx);
321
- await this.nameVersion(dto.workflowId, dto.workflowVersionId, versionName, versionDescription, ctx);
322
- current.decision = 'pending';
323
- if (reviewDescription !== undefined) {
324
- current.description = reviewDescription;
325
- }
326
- current.updatedById = user.id;
327
- const saved = await this.workflowReviewRequestRepository.saveRequest(current, ctx);
328
- await this.workflowReviewRequestAuthorRepository.addAuthorIfMissing({ workflowReviewRequestId, userId: user.id }, ctx);
329
- await this.activityRepository.createActivity({
330
- workflowReviewRequestId,
331
- type: 'review.version_updated',
332
- data: {
333
- workflowId: dto.workflowId,
334
- fromWorkflowVersionId,
335
- toWorkflowVersionId: dto.workflowVersionId,
336
- },
337
- createdById: user.id,
338
- }, ctx);
339
- return { request: saved, changed: true, versionUpdated: true };
340
- });
341
- if (changed) {
342
- this.broadcastReviewStateChanged(dto.workflowId);
343
- }
344
- if (versionUpdated) {
345
- this.eventService.emit('workflow-review-version-updated', {
346
- user,
347
- workflowReviewRequestId,
348
- workflowId: dto.workflowId,
349
- workflowVersionId: dto.workflowVersionId,
350
- });
351
- }
352
- return (0, workflow_review_mapper_1.toRequestSummary)(updated, dto.workflowVersionId);
353
- }
354
- async decide(user, workflowReviewRequestId, dto) {
355
- await this.featureGate.assertAvailable();
356
- const request = await this.workflowReviewRequestRepository.findById(workflowReviewRequestId, {});
357
- if (!request) {
358
- throw new not_found_error_1.NotFoundError('Could not find review request');
359
- }
360
- const workflowRows = await this.workflowReviewRequestWorkflowRepository.findByRequestId(workflowReviewRequestId, {});
361
- const workflowRow = workflowRows[0];
362
- if (!workflowRow) {
363
- throw new not_found_error_1.NotFoundError('Could not find review request');
364
- }
365
- const workflow = await this.workflowFinderService.findWorkflowForUser(workflowRow.workflowId, user, ['workflow:read']);
366
- if (!workflow) {
367
- throw new not_found_error_1.NotFoundError('Could not find workflow');
368
- }
369
- this.assertRequestUpdatable(request);
370
- const hasAdminOverride = await this.eligibilityService.hasAdminOverride(user, request.projectId);
371
- const isAuthor = await this.workflowReviewRequestAuthorRepository.isAuthor({ workflowReviewRequestId, userId: user.id }, {});
372
- const isAssignedReviewer = await this.workflowReviewRequestReviewerRepository.isReviewer({ workflowReviewRequestId, userId: user.id }, {});
373
- this.assertDecisionAllowed(isAuthor, isAssignedReviewer, hasAdminOverride);
374
- const requesterPublishability = dto.decision === 'approved'
375
- ? await this.resolveRequesterPublishability(request.createdById, workflowRow.workflowId)
376
- : null;
377
- if (dto.decision === 'changes_requested' && !dto.note) {
378
- throw new bad_request_error_1.BadRequestError('A note is required when requesting changes');
379
- }
380
- const { request: saved, pinnedVersionId, decidedAsAssignedReviewer, } = await this.dbLockService.withLockContext(1004, async (ctx) => {
381
- const current = await this.workflowReviewRequestRepository.findById(workflowReviewRequestId, ctx);
382
- if (!current) {
383
- throw new not_found_error_1.NotFoundError('Could not find review request');
384
- }
385
- this.assertRequestUpdatable(current);
386
- const isAuthorNow = await this.workflowReviewRequestAuthorRepository.isAuthor({ workflowReviewRequestId, userId: user.id }, ctx);
387
- const isAssignedReviewerNow = await this.workflowReviewRequestReviewerRepository.isReviewer({ workflowReviewRequestId, userId: user.id }, ctx);
388
- this.assertDecisionAllowed(isAuthorNow, isAssignedReviewerNow, hasAdminOverride);
389
- const currentRows = await this.workflowReviewRequestWorkflowRepository.findByRequestId(workflowReviewRequestId, ctx);
390
- const currentRow = currentRows.find((row) => row.workflowId === workflowRow.workflowId);
391
- if (!currentRow) {
392
- throw new not_found_error_1.NotFoundError('Could not find review request');
393
- }
394
- await this.assertWorkflowStillReviewable(currentRow.workflowId, current.projectId, ctx, 'review');
395
- if (dto.decision === 'approved') {
396
- for (const row of currentRows) {
397
- await this.workflowReviewRequestWorkflowRepository.captureApprovalBaseline({
398
- workflowReviewRequestId,
399
- workflowId: row.workflowId,
400
- }, ctx);
401
- }
402
- }
403
- current.decision = dto.decision;
404
- current.updatedById = user.id;
405
- if (dto.decision === 'approved') {
406
- current.state = 'closed';
407
- current.closedById = requesterPublishability?.canPublish === true ? user.id : null;
408
- current.approvedAt = new Date();
409
- }
410
- const savedRequest = await this.workflowReviewRequestRepository.saveRequest(current, ctx);
411
- await this.activityRepository.createActivity({
412
- workflowReviewRequestId,
413
- type: dto.decision === 'approved' ? 'review.approved' : 'review.changes_requested',
414
- data: {
415
- workflowVersions: currentRows.flatMap((row) => row.workflowVersionId === null
416
- ? []
417
- : [{ workflowId: row.workflowId, workflowVersionId: row.workflowVersionId }]),
418
- note: dto.note ?? null,
419
- },
420
- createdById: user.id,
421
- }, ctx);
422
- return {
423
- request: savedRequest,
424
- pinnedVersionId: currentRow.workflowVersionId,
425
- decidedAsAssignedReviewer: isAssignedReviewerNow,
426
- };
427
- });
428
- this.broadcastReviewStateChanged(workflowRow.workflowId);
429
- this.eventService.emit('workflow-review-decided', {
430
- user,
431
- workflowReviewRequestId,
432
- workflowId: workflowRow.workflowId,
433
- workflowVersionId: pinnedVersionId,
434
- decision: dto.decision,
435
- decidedVia: decidedAsAssignedReviewer ? 'assigned-reviewer' : 'admin-override',
436
- reviewCreatedAt: saved.createdAt,
437
- });
438
- const summary = (0, workflow_review_mapper_1.toRequestSummary)(saved, pinnedVersionId);
439
- if (dto.decision !== 'approved' || requesterPublishability === null) {
440
- return summary;
441
- }
442
- if (!requesterPublishability.canPublish) {
443
- this.logger.warn('Cannot publish approved review: requester cannot publish', {
444
- workflowId: workflowRow.workflowId,
445
- message: requesterPublishability.failureMessage,
446
- });
447
- return {
448
- ...summary,
449
- autoPublish: {
450
- status: 'failed',
451
- message: requesterPublishability.failureMessage,
452
- },
453
- };
454
- }
455
- return {
456
- ...summary,
457
- autoPublish: await this.publishApprovedVersion(requesterPublishability.requester, workflowRow.workflowId, pinnedVersionId),
458
- };
459
- }
460
- async resolveRequesterPublishability(createdById, workflowId) {
461
- if (!createdById) {
462
- return {
463
- canPublish: false,
464
- failureMessage: 'The review requester is no longer available',
465
- };
466
- }
467
- const [requester] = await this.userRepository.findManyByIds([createdById], {
468
- includeRole: true,
469
- });
470
- if (!requester || requester.disabled) {
471
- return {
472
- canPublish: false,
473
- failureMessage: 'The review requester is no longer available',
474
- };
475
- }
476
- const workflow = await this.workflowFinderService.findWorkflowForUser(workflowId, requester, [
477
- 'workflow:publish',
478
- ]);
479
- if (!workflow) {
480
- return {
481
- canPublish: false,
482
- failureMessage: 'The review requester no longer has permission to publish this workflow',
483
- };
484
- }
485
- return { canPublish: true, requester };
486
- }
487
- async publishApprovedVersion(requester, workflowId, pinnedVersionId) {
488
- if (pinnedVersionId === null) {
489
- this.logger.warn('Cannot publish approved review: the pinned version was pruned', {
490
- workflowId,
491
- });
492
- return { status: 'failed', message: 'The reviewed workflow version no longer exists' };
493
- }
494
- try {
495
- await this.workflowService.activateWorkflow(requester, workflowId, {
496
- versionId: pinnedVersionId,
497
- source: 'review-approval',
498
- });
499
- }
500
- catch (error) {
501
- this.logger.error('Failed to publish workflow after review approval', {
502
- workflowId,
503
- pinnedVersionId,
504
- error,
505
- });
506
- return { status: 'failed', message: (0, ensure_error_1.ensureError)(error).message };
507
- }
508
- this.collaborationService
509
- .broadcastWorkflowUpdate(workflowId, requester.id)
510
- .catch((error) => this.logger.warn('Failed to broadcast workflow update', { workflowId, error }));
511
- return { status: 'published' };
512
- }
513
- assertDecisionAllowed(isAuthor, isAssignedReviewer, hasAdminOverride) {
514
- if (hasAdminOverride || isAssignedReviewer) {
515
- return;
516
- }
517
- if (isAuthor) {
518
- throw new forbidden_error_1.ForbiddenError('Authors cannot decide on their own review request');
519
- }
520
- throw new not_found_error_1.NotFoundError('Could not find workflow');
521
- }
522
- broadcastReviewStateChanged(workflowId) {
523
- this.collaborationService
524
- .broadcastWorkflowReviewStateChanged(workflowId)
525
- .catch((error) => this.logger.warn('Failed to broadcast review state change', { workflowId, error }));
526
- }
527
- assertRequestUpdatable(request) {
528
- if (request.state === 'closed' || request.decision === 'approved') {
529
- throw new conflict_error_1.ConflictError('The review request is no longer open');
530
- }
531
- }
532
- };
533
- exports.WorkflowReviewRequestService = WorkflowReviewRequestService;
534
- exports.WorkflowReviewRequestService = WorkflowReviewRequestService = __decorate([
535
- (0, di_1.Service)(),
536
- __metadata("design:paramtypes", [backend_common_1.Logger, workflow_review_feature_gate_service_1.WorkflowReviewFeatureGate, workflow_finder_service_1.WorkflowFinderService, workflow_history_service_1.WorkflowHistoryService, db_1.WorkflowHistoryRepository, db_1.WorkflowRepository, db_1.SharedWorkflowRepository, db_1.WorkflowReviewRequestRepository, db_1.WorkflowReviewRequestWorkflowRepository, db_1.WorkflowReviewRequestAuthorRepository, db_1.WorkflowReviewRequestReviewerRepository, db_1.WorkflowReviewActivityRepository, db_1.UserRepository, workflow_review_eligibility_service_1.WorkflowReviewEligibilityService, role_service_1.RoleService, db_1.DbLockService, collaboration_service_1.CollaborationService, workflow_service_1.WorkflowService, workflow_review_access_service_1.WorkflowReviewAccessService, event_service_1.EventService])
537
- ], WorkflowReviewRequestService);
538
- //# sourceMappingURL=workflow-review-request.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflow-review-request.service.js","sourceRoot":"","sources":["../../../src/modules/workflow-reviews.ee/workflow-review-request.service.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import type { EnforcementPoint, PolicyDecision, PolicyVersionRef } from '@n8n/decorators';
2
- declare const brand: unique symbol;
3
- export type PolicySubjectType = 'workflow' | 'credential';
4
- export type PolicySubject = {
5
- readonly type: PolicySubjectType;
6
- readonly id: string;
7
- };
8
- export type PolicyCleared<Point extends EnforcementPoint> = {
9
- readonly [brand]: 'Use the policy enforcement service — a cleared action cannot be forged';
10
- readonly point: Point;
11
- readonly subject: PolicySubject;
12
- readonly decision: PolicyDecision;
13
- readonly policyVersions: readonly PolicyVersionRef[];
14
- };
15
- export declare function mintPolicyCleared<Point extends EnforcementPoint>({ point, subject, decision, }: {
16
- point: Point;
17
- subject: PolicySubject;
18
- decision: PolicyDecision;
19
- }): PolicyCleared<Point>;
20
- export {};
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mintPolicyCleared = mintPolicyCleared;
4
- const n8n_workflow_1 = require("n8n-workflow");
5
- const brand = Symbol('policyCleared');
6
- function mintPolicyCleared({ point, subject, decision, }) {
7
- const refusal = `Refusing to clear ${point} for ${subject.type} ${subject.id}`;
8
- if (decision.violations.length > 0) {
9
- throw new n8n_workflow_1.UnexpectedError(`${refusal}: decision has ${decision.violations.length} violation(s)`);
10
- }
11
- if (decision.checkErrors && decision.checkErrors.length > 0) {
12
- throw new n8n_workflow_1.UnexpectedError(`${refusal}: ${decision.checkErrors.length} check(s) failed to run`);
13
- }
14
- return {
15
- [brand]: 'Use the policy enforcement service — a cleared action cannot be forged',
16
- point,
17
- subject,
18
- decision,
19
- policyVersions: decision.policyVersions ?? [],
20
- };
21
- }
22
- //# sourceMappingURL=policy-cleared.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"policy-cleared.js","sourceRoot":"","sources":["../../src/policy/policy-cleared.ts"],"names":[],"mappings":";;;AACA,+CAA+C;AAG/C,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AA+CtC,2BAAkE,EACjE,KAAK,EACL,OAAO,EACP,QAAQ,GAKR;IACA,MAAM,OAAO,GAAG,qBAAqB,KAAK,QAAQ,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;IAE/E,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,8BAAe,CACxB,GAAG,OAAO,kBAAkB,QAAQ,CAAC,UAAU,CAAC,MAAM,eAAe,CACrE,CAAC;IACH,CAAC;IAID,IAAI,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,8BAAe,CAAC,GAAG,OAAO,KAAK,QAAQ,CAAC,WAAW,CAAC,MAAM,yBAAyB,CAAC,CAAC;IAChG,CAAC;IAED,OAAO;QACN,CAAC,KAAK,CAAC,EAAE,wEAAwE;QACjF,KAAK;QACL,OAAO;QACP,QAAQ;QACR,cAAc,EAAE,QAAQ,CAAC,cAAc,IAAI,EAAE;KAC7C,CAAC;AACH,CAAC"}
@@ -1,4 +0,0 @@
1
- import { type DataTableListFilter } from '@n8n/api-types';
2
- import { type User } from '@n8n/db';
3
- export declare function getDataTableListFilter(userId: string, isGlobalOwnerOrAdmin: boolean, requestedProjectId: string | string[] | undefined, restFilter: Omit<DataTableListFilter, 'projectId'>): Promise<DataTableListFilter>;
4
- export declare function resolveProjectIdForCreate(user: User, requestedProjectId?: string): Promise<string>;