n8n 2.27.3 → 2.28.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 (659) hide show
  1. package/dist/abstract-server.js +0 -4
  2. package/dist/abstract-server.js.map +1 -1
  3. package/dist/active-workflow-manager.js +4 -1
  4. package/dist/active-workflow-manager.js.map +1 -1
  5. package/dist/agent-library-bundle.js +7 -3
  6. package/dist/build.tsbuildinfo +1 -1
  7. package/dist/commands/audit.js +6 -0
  8. package/dist/commands/audit.js.map +1 -1
  9. package/dist/commands/base-command.d.ts +1 -0
  10. package/dist/commands/base-command.js +36 -2
  11. package/dist/commands/base-command.js.map +1 -1
  12. package/dist/commands/start.js +18 -9
  13. package/dist/commands/start.js.map +1 -1
  14. package/dist/commands/worker.js +2 -0
  15. package/dist/commands/worker.js.map +1 -1
  16. package/dist/constants.d.ts +1 -0
  17. package/dist/constants.js +5 -1
  18. package/dist/constants.js.map +1 -1
  19. package/dist/controllers/api-keys.controller.d.ts +17 -0
  20. package/dist/controllers/api-keys.controller.js +19 -0
  21. package/dist/controllers/api-keys.controller.js.map +1 -1
  22. package/dist/controllers/e2e.controller.js +1 -0
  23. package/dist/controllers/e2e.controller.js.map +1 -1
  24. package/dist/controllers/telemetry.controller.d.ts +3 -1
  25. package/dist/controllers/telemetry.controller.js +17 -7
  26. package/dist/controllers/telemetry.controller.js.map +1 -1
  27. package/dist/controllers/users.controller.d.ts +1 -1
  28. package/dist/credentials/credentials.service.d.ts +5 -0
  29. package/dist/credentials/credentials.service.js +17 -3
  30. package/dist/credentials/credentials.service.js.map +1 -1
  31. package/dist/evaluation.ee/evaluation-config.controller.d.ts +7 -1
  32. package/dist/evaluation.ee/evaluation-config.controller.js +30 -1
  33. package/dist/evaluation.ee/evaluation-config.controller.js.map +1 -1
  34. package/dist/evaluation.ee/evaluation-dataset.service.d.ts +24 -0
  35. package/dist/evaluation.ee/evaluation-dataset.service.js +185 -0
  36. package/dist/evaluation.ee/evaluation-dataset.service.js.map +1 -0
  37. package/dist/evaluation.ee/llm-judge-provider-registry.js +2 -2
  38. package/dist/evaluation.ee/llm-judge-provider-registry.js.map +1 -1
  39. package/dist/evaluation.ee/test-runner/test-runner.service.ee.js +6 -6
  40. package/dist/evaluation.ee/test-runner/test-runner.service.ee.js.map +1 -1
  41. package/dist/evaluation.ee/test-runner/workflow-compiler.service.d.ts +2 -0
  42. package/dist/evaluation.ee/test-runner/workflow-compiler.service.js +27 -0
  43. package/dist/evaluation.ee/test-runner/workflow-compiler.service.js.map +1 -1
  44. package/dist/eventbus/event-message-classes/index.d.ts +2 -2
  45. package/dist/eventbus/event-message-classes/index.js +2 -0
  46. package/dist/eventbus/event-message-classes/index.js.map +1 -1
  47. package/dist/events/event.service.d.ts +2 -1
  48. package/dist/events/event.service.js.map +1 -1
  49. package/dist/events/maps/instance-ai.event-map.d.ts +15 -0
  50. package/dist/events/maps/instance-ai.event-map.js +3 -0
  51. package/dist/events/maps/instance-ai.event-map.js.map +1 -0
  52. package/dist/events/maps/relay.event-map.d.ts +8 -1
  53. package/dist/events/relays/log-streaming.event-relay.d.ts +2 -0
  54. package/dist/events/relays/log-streaming.event-relay.js +26 -0
  55. package/dist/events/relays/log-streaming.event-relay.js.map +1 -1
  56. package/dist/events/relays/telemetry.event-relay.d.ts +1 -0
  57. package/dist/events/relays/telemetry.event-relay.js +11 -0
  58. package/dist/events/relays/telemetry.event-relay.js.map +1 -1
  59. package/dist/execution-lifecycle/execution-lifecycle-hooks.js +1 -0
  60. package/dist/execution-lifecycle/execution-lifecycle-hooks.js.map +1 -1
  61. package/dist/execution-lifecycle/shared/shared-hook-functions.d.ts +2 -1
  62. package/dist/execution-lifecycle/shared/shared-hook-functions.js +8 -3
  63. package/dist/execution-lifecycle/shared/shared-hook-functions.js.map +1 -1
  64. package/dist/executions/execution-data/azure-store.ee.d.ts +15 -0
  65. package/dist/executions/execution-data/azure-store.ee.js +116 -0
  66. package/dist/executions/execution-data/azure-store.ee.js.map +1 -0
  67. package/dist/executions/execution-data/db-store.d.ts +7 -0
  68. package/dist/executions/execution-data/db-store.js +21 -0
  69. package/dist/executions/execution-data/db-store.js.map +1 -1
  70. package/dist/executions/execution-data/types.d.ts +3 -0
  71. package/dist/executions/execution-persistence.d.ts +17 -3
  72. package/dist/executions/execution-persistence.js +121 -18
  73. package/dist/executions/execution-persistence.js.map +1 -1
  74. package/dist/executions/execution.service.d.ts +3 -1
  75. package/dist/executions/execution.service.js +10 -4
  76. package/dist/executions/execution.service.js.map +1 -1
  77. package/dist/executions/sum-binary-data-bytes.d.ts +2 -0
  78. package/dist/executions/sum-binary-data-bytes.js +46 -0
  79. package/dist/executions/sum-binary-data-bytes.js.map +1 -0
  80. package/dist/interfaces.d.ts +22 -0
  81. package/dist/license/license.service.d.ts +3 -1
  82. package/dist/license/license.service.js +36 -51
  83. package/dist/license/license.service.js.map +1 -1
  84. package/dist/metrics/prometheus/execution-data-metrics.service.js +2 -1
  85. package/dist/metrics/prometheus/execution-data-metrics.service.js.map +1 -1
  86. package/dist/metrics/prometheus/instance-ai-metrics.service.d.ts +12 -0
  87. package/dist/metrics/prometheus/instance-ai-metrics.service.js +101 -0
  88. package/dist/metrics/prometheus/instance-ai-metrics.service.js.map +1 -0
  89. package/dist/metrics/prometheus/instance-role-metrics.service.js +2 -2
  90. package/dist/metrics/prometheus/instance-role-metrics.service.js.map +1 -1
  91. package/dist/metrics/prometheus/prometheus.service.d.ts +4 -1
  92. package/dist/metrics/prometheus/prometheus.service.js +11 -2
  93. package/dist/metrics/prometheus/prometheus.service.js.map +1 -1
  94. package/dist/metrics/prometheus/webhook-and-form-metrics.service.d.ts +23 -0
  95. package/dist/metrics/prometheus/webhook-and-form-metrics.service.js +72 -0
  96. package/dist/metrics/prometheus/webhook-and-form-metrics.service.js.map +1 -0
  97. package/dist/metrics/prometheus/workflow-info-metrics.service.d.ts +12 -0
  98. package/dist/metrics/prometheus/workflow-info-metrics.service.js +66 -0
  99. package/dist/metrics/prometheus/workflow-info-metrics.service.js.map +1 -0
  100. package/dist/middlewares/body-parser.js +2 -2
  101. package/dist/middlewares/body-parser.js.map +1 -1
  102. package/dist/middlewares/list-query/dtos/workflow.filter.dto.d.ts +2 -0
  103. package/dist/middlewares/list-query/dtos/workflow.filter.dto.js +12 -0
  104. package/dist/middlewares/list-query/dtos/workflow.filter.dto.js.map +1 -1
  105. package/dist/modules/agents/agent-execution.service.d.ts +8 -1
  106. package/dist/modules/agents/agent-execution.service.js +26 -2
  107. package/dist/modules/agents/agent-execution.service.js.map +1 -1
  108. package/dist/modules/agents/agent-knowledge-commands.d.ts +27 -0
  109. package/dist/modules/agents/agent-knowledge-commands.js +415 -0
  110. package/dist/modules/agents/agent-knowledge-commands.js.map +1 -0
  111. package/dist/modules/agents/agent-knowledge-gate.d.ts +2 -0
  112. package/dist/modules/agents/agent-knowledge-gate.js +9 -0
  113. package/dist/modules/agents/agent-knowledge-gate.js.map +1 -0
  114. package/dist/modules/agents/agent-knowledge-retrieval.d.ts +184 -0
  115. package/dist/modules/agents/agent-knowledge-retrieval.js +172 -0
  116. package/dist/modules/agents/agent-knowledge-retrieval.js.map +1 -0
  117. package/dist/modules/agents/agent-knowledge-sandbox.service.d.ts +40 -0
  118. package/dist/modules/agents/agent-knowledge-sandbox.service.js +591 -0
  119. package/dist/modules/agents/agent-knowledge-sandbox.service.js.map +1 -0
  120. package/dist/modules/agents/agent-knowledge-storage.d.ts +21 -0
  121. package/dist/modules/agents/agent-knowledge-storage.js +89 -0
  122. package/dist/modules/agents/agent-knowledge-storage.js.map +1 -0
  123. package/dist/modules/agents/agent-knowledge.service.d.ts +25 -5
  124. package/dist/modules/agents/agent-knowledge.service.js +230 -7
  125. package/dist/modules/agents/agent-knowledge.service.js.map +1 -1
  126. package/dist/modules/agents/agent-runtime-reconstruction.service.d.ts +8 -2
  127. package/dist/modules/agents/agent-runtime-reconstruction.service.js +49 -11
  128. package/dist/modules/agents/agent-runtime-reconstruction.service.js.map +1 -1
  129. package/dist/modules/agents/agent-sandbox.controller.d.ts +18 -0
  130. package/dist/modules/agents/agent-sandbox.controller.js +71 -0
  131. package/dist/modules/agents/agent-sandbox.controller.js.map +1 -0
  132. package/dist/modules/agents/agent-telemetry.d.ts +5 -0
  133. package/dist/modules/agents/agent-telemetry.js +60 -0
  134. package/dist/modules/agents/agent-telemetry.js.map +1 -0
  135. package/dist/modules/agents/agents.controller.d.ts +4 -4
  136. package/dist/modules/agents/agents.controller.js +24 -23
  137. package/dist/modules/agents/agents.controller.js.map +1 -1
  138. package/dist/modules/agents/agents.module.d.ts +1 -1
  139. package/dist/modules/agents/agents.module.js +7 -1
  140. package/dist/modules/agents/agents.module.js.map +1 -1
  141. package/dist/modules/agents/agents.service.d.ts +5 -2
  142. package/dist/modules/agents/agents.service.js +68 -15
  143. package/dist/modules/agents/agents.service.js.map +1 -1
  144. package/dist/modules/agents/builder/agents-builder-prompts.d.ts +1 -1
  145. package/dist/modules/agents/builder/agents-builder-prompts.js +7 -0
  146. package/dist/modules/agents/builder/agents-builder-prompts.js.map +1 -1
  147. package/dist/modules/agents/builder/agents-builder-settings.service.d.ts +12 -6
  148. package/dist/modules/agents/builder/agents-builder-settings.service.js +29 -12
  149. package/dist/modules/agents/builder/agents-builder-settings.service.js.map +1 -1
  150. package/dist/modules/agents/builder/agents-builder-tools.service.d.ts +12 -4
  151. package/dist/modules/agents/builder/agents-builder-tools.service.js +118 -14
  152. package/dist/modules/agents/builder/agents-builder-tools.service.js.map +1 -1
  153. package/dist/modules/agents/builder/agents-builder.service.d.ts +7 -0
  154. package/dist/modules/agents/builder/agents-builder.service.js +24 -6
  155. package/dist/modules/agents/builder/agents-builder.service.js.map +1 -1
  156. package/dist/modules/agents/builder/builder-tool-names.d.ts +1 -0
  157. package/dist/modules/agents/builder/builder-tool-names.js +1 -0
  158. package/dist/modules/agents/builder/builder-tool-names.js.map +1 -1
  159. package/dist/modules/agents/builder/from-ai-node-parameters.d.ts +7 -0
  160. package/dist/modules/agents/builder/from-ai-node-parameters.js +43 -0
  161. package/dist/modules/agents/builder/from-ai-node-parameters.js.map +1 -0
  162. package/dist/modules/agents/builder/get-resource-locator-options.tool.d.ts +10 -0
  163. package/dist/modules/agents/builder/get-resource-locator-options.tool.js +148 -0
  164. package/dist/modules/agents/builder/get-resource-locator-options.tool.js.map +1 -0
  165. package/dist/modules/agents/builder/prompts/tools.prompt.d.ts +1 -1
  166. package/dist/modules/agents/builder/prompts/tools.prompt.js +11 -0
  167. package/dist/modules/agents/builder/prompts/tools.prompt.js.map +1 -1
  168. package/dist/modules/agents/builder/skills/index.js +2 -0
  169. package/dist/modules/agents/builder/skills/index.js.map +1 -1
  170. package/dist/modules/agents/builder/skills/resource-locators.skill.d.ts +2 -0
  171. package/dist/modules/agents/builder/skills/resource-locators.skill.js +107 -0
  172. package/dist/modules/agents/builder/skills/resource-locators.skill.js.map +1 -0
  173. package/dist/modules/agents/builder/verify-mcp-server.tool.d.ts +2 -0
  174. package/dist/modules/agents/builder/verify-mcp-server.tool.js +1 -1
  175. package/dist/modules/agents/builder/verify-mcp-server.tool.js.map +1 -1
  176. package/dist/modules/agents/entities/agent-file.entity.d.ts +11 -0
  177. package/dist/modules/agents/entities/agent-file.entity.js +50 -0
  178. package/dist/modules/agents/entities/agent-file.entity.js.map +1 -0
  179. package/dist/modules/agents/execution-recorder.js +4 -7
  180. package/dist/modules/agents/execution-recorder.js.map +1 -1
  181. package/dist/modules/agents/integrations/agent-chat-bridge.d.ts +1 -1
  182. package/dist/modules/agents/integrations/agent-chat-bridge.js +7 -9
  183. package/dist/modules/agents/integrations/agent-chat-bridge.js.map +1 -1
  184. package/dist/modules/agents/integrations/agent-chat-integration.d.ts +7 -3
  185. package/dist/modules/agents/integrations/agent-chat-integration.js +5 -0
  186. package/dist/modules/agents/integrations/agent-chat-integration.js.map +1 -1
  187. package/dist/modules/agents/integrations/integration-action-executor.d.ts +704 -0
  188. package/dist/modules/agents/integrations/integration-action-executor.js +36 -22
  189. package/dist/modules/agents/integrations/integration-action-executor.js.map +1 -1
  190. package/dist/modules/agents/integrations/integration-context-query-executor.js +23 -4
  191. package/dist/modules/agents/integrations/integration-context-query-executor.js.map +1 -1
  192. package/dist/modules/agents/integrations/integration-helpers.d.ts +12 -1
  193. package/dist/modules/agents/integrations/integration-helpers.js +17 -8
  194. package/dist/modules/agents/integrations/integration-helpers.js.map +1 -1
  195. package/dist/modules/agents/integrations/integration-message-context.service.js +2 -4
  196. package/dist/modules/agents/integrations/integration-message-context.service.js.map +1 -1
  197. package/dist/modules/agents/integrations/integration-tools.d.ts +11 -3
  198. package/dist/modules/agents/integrations/integration-tools.js +19 -118
  199. package/dist/modules/agents/integrations/integration-tools.js.map +1 -1
  200. package/dist/modules/agents/integrations/platforms/linear-integration.d.ts +3 -1
  201. package/dist/modules/agents/integrations/platforms/linear-integration.js +22 -6
  202. package/dist/modules/agents/integrations/platforms/linear-integration.js.map +1 -1
  203. package/dist/modules/agents/integrations/platforms/linear-operations.js +19 -29
  204. package/dist/modules/agents/integrations/platforms/linear-operations.js.map +1 -1
  205. package/dist/modules/agents/integrations/platforms/n8n-chat-integration.d.ts +20 -0
  206. package/dist/modules/agents/integrations/platforms/n8n-chat-integration.js +99 -0
  207. package/dist/modules/agents/integrations/platforms/n8n-chat-integration.js.map +1 -0
  208. package/dist/modules/agents/integrations/platforms/slack-integration.d.ts +2 -1
  209. package/dist/modules/agents/integrations/platforms/slack-integration.js +5 -0
  210. package/dist/modules/agents/integrations/platforms/slack-integration.js.map +1 -1
  211. package/dist/modules/agents/integrations/platforms/slack-operations.js +3 -2
  212. package/dist/modules/agents/integrations/platforms/slack-operations.js.map +1 -1
  213. package/dist/modules/agents/integrations/platforms/telegram-integration.d.ts +11 -2
  214. package/dist/modules/agents/integrations/platforms/telegram-integration.js +43 -14
  215. package/dist/modules/agents/integrations/platforms/telegram-integration.js.map +1 -1
  216. package/dist/modules/agents/integrations/slack-app-setup.service.d.ts +3 -1
  217. package/dist/modules/agents/integrations/slack-app-setup.service.js +19 -11
  218. package/dist/modules/agents/integrations/slack-app-setup.service.js.map +1 -1
  219. package/dist/modules/agents/json-config/from-json-config.d.ts +2 -1
  220. package/dist/modules/agents/json-config/from-json-config.js +11 -1
  221. package/dist/modules/agents/json-config/from-json-config.js.map +1 -1
  222. package/dist/modules/agents/json-config/mcp-client-factory.d.ts +2 -0
  223. package/dist/modules/agents/json-config/mcp-client-factory.js +2 -2
  224. package/dist/modules/agents/json-config/mcp-client-factory.js.map +1 -1
  225. package/dist/modules/agents/repositories/agent-file.repository.d.ts +8 -0
  226. package/dist/modules/agents/repositories/agent-file.repository.js +38 -0
  227. package/dist/modules/agents/repositories/agent-file.repository.js.map +1 -0
  228. package/dist/modules/agents/sub-agents/sub-agent-foreground-runner.js +5 -0
  229. package/dist/modules/agents/sub-agents/sub-agent-foreground-runner.js.map +1 -1
  230. package/dist/modules/agents/tools/knowledge/search-knowledge.tool.d.ts +90 -0
  231. package/dist/modules/agents/tools/knowledge/search-knowledge.tool.js +209 -0
  232. package/dist/modules/agents/tools/knowledge/search-knowledge.tool.js.map +1 -0
  233. package/dist/modules/agents/tools/workflow-tool-factory.js +6 -8
  234. package/dist/modules/agents/tools/workflow-tool-factory.js.map +1 -1
  235. package/dist/modules/agents/tracing/builder-telemetry.d.ts +6 -1
  236. package/dist/modules/agents/tracing/builder-telemetry.js +26 -5
  237. package/dist/modules/agents/tracing/builder-telemetry.js.map +1 -1
  238. package/dist/modules/agents/utils/agent-memory-scope.d.ts +1 -0
  239. package/dist/modules/agents/utils/agent-memory-scope.js +6 -1
  240. package/dist/modules/agents/utils/agent-memory-scope.js.map +1 -1
  241. package/dist/modules/agents/utils/execution-to-message-mapper.js +54 -5
  242. package/dist/modules/agents/utils/execution-to-message-mapper.js.map +1 -1
  243. package/dist/modules/agents/utils/messages-envelope.d.ts +7 -0
  244. package/dist/modules/agents/utils/messages-envelope.js +97 -0
  245. package/dist/modules/agents/utils/messages-envelope.js.map +1 -0
  246. package/dist/modules/community-packages/community-packages.service.d.ts +3 -1
  247. package/dist/modules/community-packages/community-packages.service.js +17 -9
  248. package/dist/modules/community-packages/community-packages.service.js.map +1 -1
  249. package/dist/modules/community-packages/npm-utils.js +13 -6
  250. package/dist/modules/community-packages/npm-utils.js.map +1 -1
  251. package/dist/modules/data-table/multer-upload-middleware.d.ts +8 -1
  252. package/dist/modules/data-table/multer-upload-middleware.js +79 -30
  253. package/dist/modules/data-table/multer-upload-middleware.js.map +1 -1
  254. package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/n8n-oauth/index.d.ts +2 -0
  255. package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/n8n-oauth/index.js +19 -0
  256. package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/n8n-oauth/index.js.map +1 -0
  257. package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/n8n-oauth/metadata.d.ts +20 -0
  258. package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/n8n-oauth/metadata.js +12 -0
  259. package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/n8n-oauth/metadata.js.map +1 -0
  260. package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/n8n-oauth/n8n-oauth-extractor.d.ts +12 -0
  261. package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/n8n-oauth/n8n-oauth-extractor.js +85 -0
  262. package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/n8n-oauth/n8n-oauth-extractor.js.map +1 -0
  263. package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/n8n-oauth/n8n-oauth-seeder.d.ts +10 -0
  264. package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/n8n-oauth/n8n-oauth-seeder.js +78 -0
  265. package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/n8n-oauth/n8n-oauth-seeder.js.map +1 -0
  266. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/n8n-identifier.d.ts +3 -1
  267. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/n8n-identifier.js +17 -2
  268. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/n8n-identifier.js.map +1 -1
  269. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-introspection-identifier.d.ts +4 -2
  270. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-introspection-identifier.js +20 -40
  271. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-introspection-identifier.js.map +1 -1
  272. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-metadata-http-client.d.ts +21 -0
  273. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-metadata-http-client.js +77 -0
  274. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-metadata-http-client.js.map +1 -0
  275. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-userinfo-identifier.d.ts +3 -1
  276. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-userinfo-identifier.js +18 -39
  277. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-userinfo-identifier.js.map +1 -1
  278. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.controller.d.ts +4 -2
  279. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.controller.js +46 -2
  280. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.controller.js.map +1 -1
  281. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.module.js +3 -0
  282. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.module.js.map +1 -1
  283. package/dist/modules/dynamic-credentials.ee/services/authorize-intent.service.d.ts +14 -0
  284. package/dist/modules/dynamic-credentials.ee/services/authorize-intent.service.js +39 -0
  285. package/dist/modules/dynamic-credentials.ee/services/authorize-intent.service.js.map +1 -0
  286. package/dist/modules/dynamic-credentials.ee/services/credential-check-proxy.service.d.ts +7 -3
  287. package/dist/modules/dynamic-credentials.ee/services/credential-check-proxy.service.js +23 -21
  288. package/dist/modules/dynamic-credentials.ee/services/credential-check-proxy.service.js.map +1 -1
  289. package/dist/modules/dynamic-credentials.ee/services/credential-resolver-workflow.service.d.ts +4 -0
  290. package/dist/modules/dynamic-credentials.ee/services/credential-resolver-workflow.service.js +111 -63
  291. package/dist/modules/dynamic-credentials.ee/services/credential-resolver-workflow.service.js.map +1 -1
  292. package/dist/modules/dynamic-credentials.ee/services/dynamic-credential-storage.service.js +0 -1
  293. package/dist/modules/dynamic-credentials.ee/services/dynamic-credential-storage.service.js.map +1 -1
  294. package/dist/modules/dynamic-credentials.ee/services/index.d.ts +1 -0
  295. package/dist/modules/dynamic-credentials.ee/services/index.js +1 -0
  296. package/dist/modules/dynamic-credentials.ee/services/index.js.map +1 -1
  297. package/dist/modules/external-secrets.ee/providers/aws-secrets-manager.d.ts +3 -1
  298. package/dist/modules/external-secrets.ee/providers/aws-secrets-manager.js +4 -1
  299. package/dist/modules/external-secrets.ee/providers/aws-secrets-manager.js.map +1 -1
  300. package/dist/modules/external-secrets.ee/providers/azure-key-vault/azure-key-vault.js.map +1 -1
  301. package/dist/modules/external-secrets.ee/providers/gcp-secrets-manager/gcp-secrets-manager.js.map +1 -1
  302. package/dist/modules/external-secrets.ee/providers/infisical.d.ts +4 -1
  303. package/dist/modules/external-secrets.ee/providers/infisical.js +45 -30
  304. package/dist/modules/external-secrets.ee/providers/infisical.js.map +1 -1
  305. package/dist/modules/external-secrets.ee/providers/one-password.js.map +1 -1
  306. package/dist/modules/external-secrets.ee/providers/vault.d.ts +5 -1
  307. package/dist/modules/external-secrets.ee/providers/vault.js +66 -61
  308. package/dist/modules/external-secrets.ee/providers/vault.js.map +1 -1
  309. package/dist/modules/insights/database/repositories/insights-by-period.repository.d.ts +2 -2
  310. package/dist/modules/insights/insights.service.d.ts +2 -2
  311. package/dist/modules/instance-ai/entities/index.d.ts +1 -0
  312. package/dist/modules/instance-ai/entities/index.js +3 -1
  313. package/dist/modules/instance-ai/entities/index.js.map +1 -1
  314. package/dist/modules/instance-ai/entities/instance-ai-thread-grant.entity.d.ts +9 -0
  315. package/dist/modules/instance-ai/entities/instance-ai-thread-grant.entity.js +45 -0
  316. package/dist/modules/instance-ai/entities/instance-ai-thread-grant.entity.js.map +1 -0
  317. package/dist/modules/instance-ai/eval/eval-mocked-credentials-helper.d.ts +3 -3
  318. package/dist/modules/instance-ai/eval/eval-mocked-credentials-helper.js +2 -2
  319. package/dist/modules/instance-ai/eval/eval-mocked-credentials-helper.js.map +1 -1
  320. package/dist/modules/instance-ai/eval/llm-wire-server.d.ts +2 -2
  321. package/dist/modules/instance-ai/eval/llm-wire-server.js +5 -5
  322. package/dist/modules/instance-ai/eval/llm-wire-server.js.map +1 -1
  323. package/dist/modules/instance-ai/eval/thread-credential-allowlist.service.d.ts +6 -0
  324. package/dist/modules/instance-ai/eval/thread-credential-allowlist.service.js +29 -0
  325. package/dist/modules/instance-ai/eval/thread-credential-allowlist.service.js.map +1 -0
  326. package/dist/modules/instance-ai/instance-ai-credit.service.d.ts +26 -0
  327. package/dist/modules/instance-ai/instance-ai-credit.service.js +210 -0
  328. package/dist/modules/instance-ai/instance-ai-credit.service.js.map +1 -0
  329. package/dist/modules/instance-ai/instance-ai-model.service.d.ts +20 -0
  330. package/dist/modules/instance-ai/instance-ai-model.service.js +135 -0
  331. package/dist/modules/instance-ai/instance-ai-model.service.js.map +1 -0
  332. package/dist/modules/instance-ai/instance-ai-run-probe.d.ts +5 -0
  333. package/dist/modules/instance-ai/instance-ai-run-probe.js +26 -0
  334. package/dist/modules/instance-ai/instance-ai-run-probe.js.map +1 -0
  335. package/dist/modules/instance-ai/instance-ai-settings.service.d.ts +2 -0
  336. package/dist/modules/instance-ai/instance-ai-settings.service.js +12 -1
  337. package/dist/modules/instance-ai/instance-ai-settings.service.js.map +1 -1
  338. package/dist/modules/instance-ai/instance-ai-temporary-workflow.service.d.ts +15 -0
  339. package/dist/modules/instance-ai/instance-ai-temporary-workflow.service.js +140 -0
  340. package/dist/modules/instance-ai/instance-ai-temporary-workflow.service.js.map +1 -0
  341. package/dist/modules/instance-ai/instance-ai.adapter.service.d.ts +4 -2
  342. package/dist/modules/instance-ai/instance-ai.adapter.service.js +69 -10
  343. package/dist/modules/instance-ai/instance-ai.adapter.service.js.map +1 -1
  344. package/dist/modules/instance-ai/instance-ai.controller.d.ts +20 -2
  345. package/dist/modules/instance-ai/instance-ai.controller.js +62 -4
  346. package/dist/modules/instance-ai/instance-ai.controller.js.map +1 -1
  347. package/dist/modules/instance-ai/instance-ai.module.d.ts +2 -1
  348. package/dist/modules/instance-ai/instance-ai.module.js +3 -0
  349. package/dist/modules/instance-ai/instance-ai.module.js.map +1 -1
  350. package/dist/modules/instance-ai/instance-ai.service.d.ts +42 -22
  351. package/dist/modules/instance-ai/instance-ai.service.js +408 -379
  352. package/dist/modules/instance-ai/instance-ai.service.js.map +1 -1
  353. package/dist/modules/instance-ai/internal-messages.d.ts +4 -0
  354. package/dist/modules/instance-ai/internal-messages.js +24 -3
  355. package/dist/modules/instance-ai/internal-messages.js.map +1 -1
  356. package/dist/modules/instance-ai/mcp/instance-ai-mcp-connection.controller.d.ts +1 -1
  357. package/dist/modules/instance-ai/mcp/instance-ai-mcp-connection.controller.js +2 -6
  358. package/dist/modules/instance-ai/mcp/instance-ai-mcp-connection.controller.js.map +1 -1
  359. package/dist/modules/instance-ai/mcp/instance-ai-mcp-registry.service.d.ts +6 -1
  360. package/dist/modules/instance-ai/mcp/instance-ai-mcp-registry.service.js +52 -2
  361. package/dist/modules/instance-ai/mcp/instance-ai-mcp-registry.service.js.map +1 -1
  362. package/dist/modules/instance-ai/message-parser.js +2 -0
  363. package/dist/modules/instance-ai/message-parser.js.map +1 -1
  364. package/dist/modules/instance-ai/observability.d.ts +13 -0
  365. package/dist/modules/instance-ai/observability.js +23 -0
  366. package/dist/modules/instance-ai/observability.js.map +1 -0
  367. package/dist/modules/instance-ai/repositories/index.d.ts +1 -0
  368. package/dist/modules/instance-ai/repositories/index.js +3 -1
  369. package/dist/modules/instance-ai/repositories/index.js.map +1 -1
  370. package/dist/modules/instance-ai/repositories/instance-ai-thread-grant.repository.d.ts +7 -0
  371. package/dist/modules/instance-ai/repositories/instance-ai-thread-grant.repository.js +40 -0
  372. package/dist/modules/instance-ai/repositories/instance-ai-thread-grant.repository.js.map +1 -0
  373. package/dist/modules/instance-ai/sandbox/instance-ai-sandbox.service.js +2 -1
  374. package/dist/modules/instance-ai/sandbox/instance-ai-sandbox.service.js.map +1 -1
  375. package/dist/modules/instance-ai/storage/typeorm-agent-memory.js +4 -6
  376. package/dist/modules/instance-ai/storage/typeorm-agent-memory.js.map +1 -1
  377. package/dist/modules/instance-ai/web-research/fetch-and-extract.d.ts +2 -3
  378. package/dist/modules/instance-ai/web-research/fetch-and-extract.js +34 -44
  379. package/dist/modules/instance-ai/web-research/fetch-and-extract.js.map +1 -1
  380. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-from-db.d.ts +2 -1
  381. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-from-db.js +2 -2
  382. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-from-db.js.map +1 -1
  383. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-webhook.ee.d.ts +8 -8
  384. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-webhook.ee.js +43 -60
  385. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-webhook.ee.js.map +1 -1
  386. package/dist/modules/log-streaming.ee/log-streaming-destination.service.d.ts +3 -1
  387. package/dist/modules/log-streaming.ee/log-streaming-destination.service.js +6 -3
  388. package/dist/modules/log-streaming.ee/log-streaming-destination.service.js.map +1 -1
  389. package/dist/modules/log-streaming.ee/log-streaming.controller.d.ts +3 -1
  390. package/dist/modules/log-streaming.ee/log-streaming.controller.js +6 -3
  391. package/dist/modules/log-streaming.ee/log-streaming.controller.js.map +1 -1
  392. package/dist/modules/mcp/dto/update-allowed-redirect-uris.dto.d.ts +9 -0
  393. package/dist/modules/mcp/dto/update-allowed-redirect-uris.dto.js +35 -0
  394. package/dist/modules/mcp/dto/update-allowed-redirect-uris.dto.js.map +1 -0
  395. package/dist/modules/mcp/mcp-protected-resource.d.ts +4 -1
  396. package/dist/modules/mcp/mcp-protected-resource.js +9 -3
  397. package/dist/modules/mcp/mcp-protected-resource.js.map +1 -1
  398. package/dist/modules/mcp/mcp.service.d.ts +5 -2
  399. package/dist/modules/mcp/mcp.service.js +8 -3
  400. package/dist/modules/mcp/mcp.service.js.map +1 -1
  401. package/dist/modules/mcp/mcp.settings.controller.d.ts +7 -0
  402. package/dist/modules/mcp/mcp.settings.controller.js +24 -0
  403. package/dist/modules/mcp/mcp.settings.controller.js.map +1 -1
  404. package/dist/modules/mcp/mcp.settings.service.d.ts +2 -0
  405. package/dist/modules/mcp/mcp.settings.service.js +15 -0
  406. package/dist/modules/mcp/mcp.settings.service.js.map +1 -1
  407. package/dist/modules/mcp/mcp.typeguards.d.ts +0 -1
  408. package/dist/modules/mcp/mcp.typeguards.js +9 -12
  409. package/dist/modules/mcp/mcp.typeguards.js.map +1 -1
  410. package/dist/modules/mcp/mcp.utils.js +2 -1
  411. package/dist/modules/mcp/mcp.utils.js.map +1 -1
  412. package/dist/modules/mcp/tools/execute-workflow.tool.d.ts +10 -8
  413. package/dist/modules/mcp/tools/execute-workflow.tool.js +25 -13
  414. package/dist/modules/mcp/tools/execute-workflow.tool.js.map +1 -1
  415. package/dist/modules/mcp/tools/get-workflow-details.tool.js +2 -0
  416. package/dist/modules/mcp/tools/get-workflow-details.tool.js.map +1 -1
  417. package/dist/modules/mcp/tools/schemas.d.ts +128 -0
  418. package/dist/modules/mcp/tools/schemas.js +9 -0
  419. package/dist/modules/mcp/tools/schemas.js.map +1 -1
  420. package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.js +15 -4
  421. package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.js.map +1 -1
  422. package/dist/modules/mcp/tools/workflow-builder/credential-validation.d.ts +13 -2
  423. package/dist/modules/mcp/tools/workflow-builder/credential-validation.js +144 -23
  424. package/dist/modules/mcp/tools/workflow-builder/credential-validation.js.map +1 -1
  425. package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.js +23 -6
  426. package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.js.map +1 -1
  427. package/dist/modules/mcp/tools/workflow-builder/workflow-operations.d.ts +31 -1
  428. package/dist/modules/mcp/tools/workflow-builder/workflow-operations.js +22 -0
  429. package/dist/modules/mcp/tools/workflow-builder/workflow-operations.js.map +1 -1
  430. package/dist/modules/n8n-packages/engine/import-pipeline.js +40 -19
  431. package/dist/modules/n8n-packages/engine/import-pipeline.js.map +1 -1
  432. package/dist/modules/n8n-packages/entities/credential/credential-importer.d.ts +8 -4
  433. package/dist/modules/n8n-packages/entities/credential/credential-importer.js +40 -6
  434. package/dist/modules/n8n-packages/entities/credential/credential-importer.js.map +1 -1
  435. package/dist/modules/n8n-packages/entities/credential/credential-matcher.d.ts +7 -3
  436. package/dist/modules/n8n-packages/entities/credential/credential-matcher.js +30 -5
  437. package/dist/modules/n8n-packages/entities/credential/credential-matcher.js.map +1 -1
  438. package/dist/modules/n8n-packages/entities/credential/credential-missing-mode.d.ts +3 -0
  439. package/dist/modules/n8n-packages/entities/credential/credential-missing-mode.js +17 -0
  440. package/dist/modules/n8n-packages/entities/credential/credential-missing-mode.js.map +1 -1
  441. package/dist/modules/n8n-packages/entities/credential/credential.types.d.ts +10 -4
  442. package/dist/modules/n8n-packages/entities/credential/credential.types.js +2 -0
  443. package/dist/modules/n8n-packages/entities/credential/credential.types.js.map +1 -1
  444. package/dist/modules/n8n-packages/entities/credential/id-based-credential-matcher.d.ts +3 -4
  445. package/dist/modules/n8n-packages/entities/credential/id-based-credential-matcher.js +10 -11
  446. package/dist/modules/n8n-packages/entities/credential/id-based-credential-matcher.js.map +1 -1
  447. package/dist/modules/n8n-packages/entities/workflow/workflow-import.types.d.ts +6 -6
  448. package/dist/modules/n8n-packages/entities/workflow/workflow-importer.d.ts +3 -3
  449. package/dist/modules/n8n-packages/entities/workflow/workflow-importer.js +12 -10
  450. package/dist/modules/n8n-packages/entities/workflow/workflow-importer.js.map +1 -1
  451. package/dist/modules/n8n-packages/entities/workflow/workflow-publisher.d.ts +6 -2
  452. package/dist/modules/n8n-packages/entities/workflow/workflow-publisher.js +33 -11
  453. package/dist/modules/n8n-packages/entities/workflow/workflow-publisher.js.map +1 -1
  454. package/dist/modules/n8n-packages/entities/workflow/workflow-publishing-policy.types.d.ts +8 -0
  455. package/dist/modules/n8n-packages/n8n-packages.types.d.ts +23 -3
  456. package/dist/modules/n8n-packages/n8n-packages.types.js.map +1 -1
  457. package/dist/modules/oauth-jwe/oauth-jwe.schemas.d.ts +12 -12
  458. package/dist/modules/oauth-server/oauth-consent.controller.js +1 -0
  459. package/dist/modules/oauth-server/oauth-consent.controller.js.map +1 -1
  460. package/dist/modules/oauth-server/oauth-consent.service.d.ts +1 -0
  461. package/dist/modules/oauth-server/oauth-consent.service.js +2 -0
  462. package/dist/modules/oauth-server/oauth-consent.service.js.map +1 -1
  463. package/dist/modules/oauth-server/oauth-server.module.js +1 -1
  464. package/dist/modules/oauth-server/oauth-server.module.js.map +1 -1
  465. package/dist/modules/oauth-server/oauth-server.service.d.ts +2 -0
  466. package/dist/modules/oauth-server/oauth-server.service.js +48 -1
  467. package/dist/modules/oauth-server/oauth-server.service.js.map +1 -1
  468. package/dist/modules/oauth-server/oauth.controller.js +4 -1
  469. package/dist/modules/oauth-server/oauth.controller.js.map +1 -1
  470. package/dist/modules/otel/otel.service.d.ts +3 -1
  471. package/dist/modules/otel/otel.service.js +6 -3
  472. package/dist/modules/otel/otel.service.js.map +1 -1
  473. package/dist/modules/quick-connect/handlers/firecrawl.handler.d.ts +3 -0
  474. package/dist/modules/quick-connect/handlers/firecrawl.handler.js +20 -7
  475. package/dist/modules/quick-connect/handlers/firecrawl.handler.js.map +1 -1
  476. package/dist/modules/quick-connect/quick-connect.config.d.ts +17 -17
  477. package/dist/modules/quick-connect/quick-connect.module.d.ts +3 -3
  478. package/dist/modules/source-control.ee/source-control-import.service.ee.js +1 -1
  479. package/dist/modules/source-control.ee/source-control-import.service.ee.js.map +1 -1
  480. package/dist/modules/source-control.ee/source-control.controller.ee.d.ts +4 -4
  481. package/dist/modules/source-control.ee/source-control.service.ee.d.ts +2 -2
  482. package/dist/modules/sso-oidc/oidc.service.ee.d.ts +3 -1
  483. package/dist/modules/sso-oidc/oidc.service.ee.js +15 -25
  484. package/dist/modules/sso-oidc/oidc.service.ee.js.map +1 -1
  485. package/dist/modules/sso-saml/saml.service.ee.d.ts +3 -1
  486. package/dist/modules/sso-saml/saml.service.ee.js +15 -15
  487. package/dist/modules/sso-saml/saml.service.ee.js.map +1 -1
  488. package/dist/modules/token-exchange/services/jwks-resolver.d.ts +3 -1
  489. package/dist/modules/token-exchange/services/jwks-resolver.js +11 -3
  490. package/dist/modules/token-exchange/services/jwks-resolver.js.map +1 -1
  491. package/dist/oauth/oauth.service.d.ts +8 -3
  492. package/dist/oauth/oauth.service.js +106 -47
  493. package/dist/oauth/oauth.service.js.map +1 -1
  494. package/dist/oauth/types.d.ts +1 -1
  495. package/dist/oauth/types.js.map +1 -1
  496. package/dist/posthog/index.js +4 -3
  497. package/dist/posthog/index.js.map +1 -1
  498. package/dist/public-api/index.js +46 -3
  499. package/dist/public-api/index.js.map +1 -1
  500. package/dist/public-api/swagger-theme.css +14 -0
  501. package/dist/public-api/types.d.ts +2 -0
  502. package/dist/public-api/v1/handlers/credentials/credentials.handler.js +1 -1
  503. package/dist/public-api/v1/handlers/credentials/credentials.handler.js.map +1 -1
  504. package/dist/public-api/v1/handlers/data-tables/data-tables.handler.js +4 -3
  505. package/dist/public-api/v1/handlers/data-tables/data-tables.handler.js.map +1 -1
  506. package/dist/public-api/v1/handlers/discover/discover.service.js +9 -11
  507. package/dist/public-api/v1/handlers/discover/discover.service.js.map +1 -1
  508. package/dist/public-api/v1/handlers/executions/executions.handler.js +8 -4
  509. package/dist/public-api/v1/handlers/executions/executions.handler.js.map +1 -1
  510. package/dist/public-api/v1/handlers/workflows/workflows.handler.js +3 -1
  511. package/dist/public-api/v1/handlers/workflows/workflows.handler.js.map +1 -1
  512. package/dist/public-api/v1/handlers/workflows/workflows.service.d.ts +1 -2
  513. package/dist/public-api/v1/handlers/workflows/workflows.service.js +3 -2
  514. package/dist/public-api/v1/handlers/workflows/workflows.service.js.map +1 -1
  515. package/dist/public-api/v1/openapi.yml +124 -2
  516. package/dist/response-helper.d.ts +2 -1
  517. package/dist/response-helper.js +2 -17
  518. package/dist/response-helper.js.map +1 -1
  519. package/dist/scaling/constants.d.ts +2 -2
  520. package/dist/scaling/constants.js +3 -0
  521. package/dist/scaling/constants.js.map +1 -1
  522. package/dist/scaling/execution-stop.service.d.ts +15 -0
  523. package/dist/scaling/execution-stop.service.js +59 -0
  524. package/dist/scaling/execution-stop.service.js.map +1 -0
  525. package/dist/scaling/job-processor.js +8 -2
  526. package/dist/scaling/job-processor.js.map +1 -1
  527. package/dist/scaling/multi-main-setup.ee.d.ts +1 -0
  528. package/dist/scaling/multi-main-setup.ee.js +6 -6
  529. package/dist/scaling/multi-main-setup.ee.js.map +1 -1
  530. package/dist/scaling/pubsub/pubsub.event-map.d.ts +4 -0
  531. package/dist/scaling/pubsub/pubsub.types.d.ts +3 -1
  532. package/dist/security-audit/risk-reporters/instance-risk-reporter.d.ts +3 -1
  533. package/dist/security-audit/risk-reporters/instance-risk-reporter.js +27 -20
  534. package/dist/security-audit/risk-reporters/instance-risk-reporter.js.map +1 -1
  535. package/dist/server.d.ts +1 -0
  536. package/dist/server.js +1 -0
  537. package/dist/server.js.map +1 -1
  538. package/dist/services/ai-gateway.service.d.ts +5 -1
  539. package/dist/services/ai-gateway.service.js +53 -32
  540. package/dist/services/ai-gateway.service.js.map +1 -1
  541. package/dist/services/ai-workflow-builder.service.d.ts +4 -3
  542. package/dist/services/ai-workflow-builder.service.js +9 -5
  543. package/dist/services/ai-workflow-builder.service.js.map +1 -1
  544. package/dist/services/credentials-tester.service.js +16 -15
  545. package/dist/services/credentials-tester.service.js.map +1 -1
  546. package/dist/services/dynamic-templates.service.d.ts +3 -1
  547. package/dist/services/dynamic-templates.service.js +13 -9
  548. package/dist/services/dynamic-templates.service.js.map +1 -1
  549. package/dist/services/frontend.service.d.ts +6 -1
  550. package/dist/services/frontend.service.js +39 -2
  551. package/dist/services/frontend.service.js.map +1 -1
  552. package/dist/services/node-resource-explorer.service.js +4 -22
  553. package/dist/services/node-resource-explorer.service.js.map +1 -1
  554. package/dist/services/project.service.ee.d.ts +3 -2
  555. package/dist/services/project.service.ee.js +14 -3
  556. package/dist/services/project.service.ee.js.map +1 -1
  557. package/dist/services/protected-resource.registry.d.ts +1 -0
  558. package/dist/services/protected-resource.registry.js.map +1 -1
  559. package/dist/services/public-api-key.service.d.ts +6 -2
  560. package/dist/services/public-api-key.service.js +56 -10
  561. package/dist/services/public-api-key.service.js.map +1 -1
  562. package/dist/services/role.service.d.ts +2 -2
  563. package/dist/services/role.service.js.map +1 -1
  564. package/dist/services/trigger-auth-identity-seeder-proxy.service.d.ts +10 -0
  565. package/dist/services/trigger-auth-identity-seeder-proxy.service.js +33 -0
  566. package/dist/services/trigger-auth-identity-seeder-proxy.service.js.map +1 -0
  567. package/dist/services/workflow-statistics.service.d.ts +3 -13
  568. package/dist/services/workflow-statistics.service.js +77 -64
  569. package/dist/services/workflow-statistics.service.js.map +1 -1
  570. package/dist/task-runners/task-broker/task-broker-server.js +2 -1
  571. package/dist/task-runners/task-broker/task-broker-server.js.map +1 -1
  572. package/dist/task-runners/task-runner-module.js +2 -0
  573. package/dist/task-runners/task-runner-module.js.map +1 -1
  574. package/dist/telemetry/index.d.ts +25 -2
  575. package/dist/telemetry/index.js +80 -12
  576. package/dist/telemetry/index.js.map +1 -1
  577. package/dist/utils/ai-proxy-fetch.d.ts +3 -0
  578. package/dist/utils/ai-proxy-fetch.js +27 -0
  579. package/dist/utils/ai-proxy-fetch.js.map +1 -0
  580. package/dist/utils/auth-fetch.d.ts +3 -1
  581. package/dist/utils/auth-fetch.js +3 -4
  582. package/dist/utils/auth-fetch.js.map +1 -1
  583. package/dist/utils/strapi-utils.d.ts +8 -4
  584. package/dist/utils/strapi-utils.js +25 -9
  585. package/dist/utils/strapi-utils.js.map +1 -1
  586. package/dist/webhooks/live-webhooks.js +1 -0
  587. package/dist/webhooks/live-webhooks.js.map +1 -1
  588. package/dist/webhooks/test-webhooks.controller.d.ts +8 -0
  589. package/dist/webhooks/test-webhooks.controller.js +39 -0
  590. package/dist/webhooks/test-webhooks.controller.js.map +1 -0
  591. package/dist/webhooks/webhook-form-data.js +9 -1
  592. package/dist/webhooks/webhook-form-data.js.map +1 -1
  593. package/dist/webhooks/webhook-helpers.js +16 -0
  594. package/dist/webhooks/webhook-helpers.js.map +1 -1
  595. package/dist/webhooks/webhook-request-handler.js +35 -0
  596. package/dist/webhooks/webhook-request-handler.js.map +1 -1
  597. package/dist/workflow-execute-additional-data.js +15 -0
  598. package/dist/workflow-execute-additional-data.js.map +1 -1
  599. package/dist/workflow-helpers.d.ts +7 -2
  600. package/dist/workflow-helpers.js +50 -1
  601. package/dist/workflow-helpers.js.map +1 -1
  602. package/dist/workflows/publication/publication-result.d.ts +2 -0
  603. package/dist/workflows/publication/publication-status-reporter.d.ts +1 -0
  604. package/dist/workflows/publication/publication-status-reporter.js +22 -1
  605. package/dist/workflows/publication/publication-status-reporter.js.map +1 -1
  606. package/dist/workflows/publication/published-workflow-enqueuer.d.ts +13 -0
  607. package/dist/workflows/publication/published-workflow-enqueuer.js +53 -0
  608. package/dist/workflows/publication/published-workflow-enqueuer.js.map +1 -0
  609. package/dist/workflows/publication/published-workflow-trigger-deactivator.d.ts +16 -0
  610. package/dist/workflows/publication/published-workflow-trigger-deactivator.js +79 -0
  611. package/dist/workflows/publication/published-workflow-trigger-deactivator.js.map +1 -0
  612. package/dist/workflows/publication/workflow-publication-applier.d.ts +6 -1
  613. package/dist/workflows/publication/workflow-publication-applier.js +39 -3
  614. package/dist/workflows/publication/workflow-publication-applier.js.map +1 -1
  615. package/dist/workflows/publication/workflow-publication-lifecycle-lock.d.ts +13 -0
  616. package/dist/workflows/publication/workflow-publication-lifecycle-lock.js +104 -0
  617. package/dist/workflows/publication/workflow-publication-lifecycle-lock.js.map +1 -0
  618. package/dist/workflows/publication/workflow-publication-outbox-cleanup.service.d.ts +19 -0
  619. package/dist/workflows/publication/workflow-publication-outbox-cleanup.service.js +109 -0
  620. package/dist/workflows/publication/workflow-publication-outbox-cleanup.service.js.map +1 -0
  621. package/dist/workflows/publication/workflow-publication-outbox-consumer.d.ts +11 -4
  622. package/dist/workflows/publication/workflow-publication-outbox-consumer.js +105 -45
  623. package/dist/workflows/publication/workflow-publication-outbox-consumer.js.map +1 -1
  624. package/dist/workflows/triggers/non-webhook-trigger-registrar.d.ts +4 -5
  625. package/dist/workflows/triggers/non-webhook-trigger-registrar.js +30 -9
  626. package/dist/workflows/triggers/non-webhook-trigger-registrar.js.map +1 -1
  627. package/dist/workflows/triggers/trigger-activation-retry.d.ts +2 -0
  628. package/dist/workflows/triggers/trigger-activation-retry.js +23 -0
  629. package/dist/workflows/triggers/trigger-activation-retry.js.map +1 -0
  630. package/dist/workflows/triggers/webhook-trigger-registrar.d.ts +3 -2
  631. package/dist/workflows/triggers/webhook-trigger-registrar.js +60 -32
  632. package/dist/workflows/triggers/webhook-trigger-registrar.js.map +1 -1
  633. package/dist/workflows/triggers/workflow-trigger-activator.d.ts +6 -3
  634. package/dist/workflows/triggers/workflow-trigger-activator.js +126 -60
  635. package/dist/workflows/triggers/workflow-trigger-activator.js.map +1 -1
  636. package/dist/workflows/workflow-creation.service.d.ts +1 -0
  637. package/dist/workflows/workflow-creation.service.js +17 -8
  638. package/dist/workflows/workflow-creation.service.js.map +1 -1
  639. package/dist/workflows/workflow-entity-mapper.d.ts +5 -0
  640. package/dist/workflows/workflow-entity-mapper.js +22 -0
  641. package/dist/workflows/workflow-entity-mapper.js.map +1 -0
  642. package/dist/workflows/workflow-execution.service.d.ts +6 -2
  643. package/dist/workflows/workflow-execution.service.js +36 -13
  644. package/dist/workflows/workflow-execution.service.js.map +1 -1
  645. package/dist/workflows/workflow-history/workflow-history.service.js +1 -0
  646. package/dist/workflows/workflow-history/workflow-history.service.js.map +1 -1
  647. package/dist/workflows/workflow-published-data.service.d.ts +1 -3
  648. package/dist/workflows/workflow-published-data.service.js +2 -9
  649. package/dist/workflows/workflow-published-data.service.js.map +1 -1
  650. package/dist/workflows/workflow-validation.service.js +2 -1
  651. package/dist/workflows/workflow-validation.service.js.map +1 -1
  652. package/dist/workflows/workflow.service.d.ts +4 -3
  653. package/dist/workflows/workflow.service.js +72 -33
  654. package/dist/workflows/workflow.service.js.map +1 -1
  655. package/dist/workflows/workflows.controller.d.ts +3 -2
  656. package/dist/workflows/workflows.controller.js +12 -23
  657. package/dist/workflows/workflows.controller.js.map +1 -1
  658. package/package.json +55 -37
  659. package/templates/form-trigger.handlebars +8 -1
@@ -0,0 +1,53 @@
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.PublishedWorkflowEnqueuer = void 0;
13
+ const backend_common_1 = require("@n8n/backend-common");
14
+ const config_1 = require("@n8n/config");
15
+ const db_1 = require("@n8n/db");
16
+ const decorators_1 = require("@n8n/decorators");
17
+ const di_1 = require("@n8n/di");
18
+ const workflow_publication_outbox_consumer_1 = require("../../workflows/publication/workflow-publication-outbox-consumer");
19
+ let PublishedWorkflowEnqueuer = class PublishedWorkflowEnqueuer {
20
+ constructor(logger, workflowsConfig, outboxRepository, outboxConsumer) {
21
+ this.logger = logger;
22
+ this.workflowsConfig = workflowsConfig;
23
+ this.outboxRepository = outboxRepository;
24
+ this.outboxConsumer = outboxConsumer;
25
+ this.logger = this.logger.scoped('workflow-publication');
26
+ }
27
+ async enqueueActiveWorkflows() {
28
+ await this.outboxRepository.enqueueAllActiveWorkflows();
29
+ this.logger.debug('Enqueued active workflow publication records');
30
+ }
31
+ async enqueueOnLeaderTakeover() {
32
+ if (!this.workflowsConfig.useWorkflowPublicationService)
33
+ return;
34
+ await this.enqueueActiveWorkflows();
35
+ this.outboxConsumer.startPolling();
36
+ await this.outboxConsumer.drainPending();
37
+ }
38
+ };
39
+ exports.PublishedWorkflowEnqueuer = PublishedWorkflowEnqueuer;
40
+ __decorate([
41
+ (0, decorators_1.OnLeaderTakeover)(),
42
+ __metadata("design:type", Function),
43
+ __metadata("design:paramtypes", []),
44
+ __metadata("design:returntype", Promise)
45
+ ], PublishedWorkflowEnqueuer.prototype, "enqueueOnLeaderTakeover", null);
46
+ exports.PublishedWorkflowEnqueuer = PublishedWorkflowEnqueuer = __decorate([
47
+ (0, di_1.Service)(),
48
+ __metadata("design:paramtypes", [backend_common_1.Logger,
49
+ config_1.WorkflowsConfig,
50
+ db_1.WorkflowPublicationOutboxRepository,
51
+ workflow_publication_outbox_consumer_1.WorkflowPublicationOutboxConsumer])
52
+ ], PublishedWorkflowEnqueuer);
53
+ //# sourceMappingURL=published-workflow-enqueuer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"published-workflow-enqueuer.js","sourceRoot":"","sources":["../../../src/workflows/publication/published-workflow-enqueuer.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wDAA6C;AAC7C,wCAA8C;AAC9C,gCAA8D;AAC9D,gDAAmD;AACnD,gCAAkC;AAElC,uHAAiH;AAO1G,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IACrC,YACkB,MAAc,EACd,eAAgC,EAChC,gBAAqD,EACrD,cAAiD;QAHjD,WAAM,GAAN,MAAM,CAAQ;QACd,oBAAe,GAAf,eAAe,CAAiB;QAChC,qBAAgB,GAAhB,gBAAgB,CAAqC;QACrD,mBAAc,GAAd,cAAc,CAAmC;QAElE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAC1D,CAAC;IAMD,KAAK,CAAC,sBAAsB;QAC3B,MAAM,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,EAAE,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACnE,CAAC;IAQK,AAAN,KAAK,CAAC,uBAAuB;QAC5B,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,6BAA6B;YAAE,OAAO;QAChE,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACpC,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;QACnC,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;IAC1C,CAAC;CACD,CAAA;AA/BY,8DAAyB;AAyB/B;IADL,IAAA,6BAAgB,GAAE;;;;wEAMlB;oCA9BW,yBAAyB;IADrC,IAAA,YAAO,GAAE;qCAGiB,uBAAM;QACG,wBAAe;QACd,wCAAmC;QACrC,wEAAiC;GALvD,yBAAyB,CA+BrC"}
@@ -0,0 +1,16 @@
1
+ import { Logger } from '@n8n/backend-common';
2
+ import { WorkflowsConfig } from '@n8n/config';
3
+ import { ActiveWorkflowTriggers, ErrorReporter } from 'n8n-core';
4
+ import { WorkflowPublicationLifecycleLock } from '../../workflows/publication/workflow-publication-lifecycle-lock';
5
+ import { WorkflowPublicationOutboxConsumer } from '../../workflows/publication/workflow-publication-outbox-consumer';
6
+ export declare class PublishedWorkflowTriggerDeactivator {
7
+ private readonly logger;
8
+ private readonly workflowsConfig;
9
+ private readonly errorReporter;
10
+ private readonly lifecycleLock;
11
+ private readonly activeWorkflowTriggers;
12
+ private readonly outboxConsumer;
13
+ constructor(logger: Logger, workflowsConfig: WorkflowsConfig, errorReporter: ErrorReporter, lifecycleLock: WorkflowPublicationLifecycleLock, activeWorkflowTriggers: ActiveWorkflowTriggers, outboxConsumer: WorkflowPublicationOutboxConsumer);
14
+ deactivateAllNonWebhookTriggers(): Promise<void>;
15
+ private deactivateWorkflow;
16
+ }
@@ -0,0 +1,79 @@
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.PublishedWorkflowTriggerDeactivator = void 0;
13
+ const backend_common_1 = require("@n8n/backend-common");
14
+ const config_1 = require("@n8n/config");
15
+ const constants_1 = require("@n8n/constants");
16
+ const decorators_1 = require("@n8n/decorators");
17
+ const di_1 = require("@n8n/di");
18
+ const n8n_core_1 = require("n8n-core");
19
+ const n8n_workflow_1 = require("n8n-workflow");
20
+ const workflow_publication_lifecycle_lock_1 = require("../../workflows/publication/workflow-publication-lifecycle-lock");
21
+ const workflow_publication_outbox_consumer_1 = require("../../workflows/publication/workflow-publication-outbox-consumer");
22
+ const STEPDOWN_TEARDOWN_TIMEOUT_MS = 30 * constants_1.Time.seconds.toMilliseconds;
23
+ let PublishedWorkflowTriggerDeactivator = class PublishedWorkflowTriggerDeactivator {
24
+ constructor(logger, workflowsConfig, errorReporter, lifecycleLock, activeWorkflowTriggers, outboxConsumer) {
25
+ this.logger = logger;
26
+ this.workflowsConfig = workflowsConfig;
27
+ this.errorReporter = errorReporter;
28
+ this.lifecycleLock = lifecycleLock;
29
+ this.activeWorkflowTriggers = activeWorkflowTriggers;
30
+ this.outboxConsumer = outboxConsumer;
31
+ this.logger = this.logger.scoped('workflow-publication');
32
+ }
33
+ async deactivateAllNonWebhookTriggers() {
34
+ if (!this.workflowsConfig.useWorkflowPublicationService)
35
+ return;
36
+ this.outboxConsumer.stopPolling();
37
+ const workflowIds = new Set([
38
+ ...this.activeWorkflowTriggers.getNonWebhookTriggerWorkflowIds(),
39
+ ...this.lifecycleLock.getLockedWorkflowIds(),
40
+ ]);
41
+ const lockedWorkflowIds = [];
42
+ for (const workflowId of workflowIds) {
43
+ if (this.lifecycleLock.isLocked(workflowId)) {
44
+ lockedWorkflowIds.push(workflowId);
45
+ continue;
46
+ }
47
+ await this.deactivateWorkflow(workflowId);
48
+ }
49
+ for (const workflowId of lockedWorkflowIds) {
50
+ await this.deactivateWorkflow(workflowId);
51
+ }
52
+ }
53
+ async deactivateWorkflow(workflowId) {
54
+ const { timedOut } = await this.lifecycleLock.runExclusiveOrTimeout(workflowId, async () => {
55
+ await this.activeWorkflowTriggers.remove(workflowId);
56
+ }, STEPDOWN_TEARDOWN_TIMEOUT_MS);
57
+ if (timedOut) {
58
+ this.errorReporter.error(new n8n_workflow_1.UnexpectedError(`Timed out waiting for an in-flight publication record for workflow "${workflowId}" before trigger teardown; tore down anyway`), { shouldBeLogged: true });
59
+ }
60
+ }
61
+ };
62
+ exports.PublishedWorkflowTriggerDeactivator = PublishedWorkflowTriggerDeactivator;
63
+ __decorate([
64
+ (0, decorators_1.OnLeaderStepdown)(),
65
+ (0, decorators_1.OnShutdown)(),
66
+ __metadata("design:type", Function),
67
+ __metadata("design:paramtypes", []),
68
+ __metadata("design:returntype", Promise)
69
+ ], PublishedWorkflowTriggerDeactivator.prototype, "deactivateAllNonWebhookTriggers", null);
70
+ exports.PublishedWorkflowTriggerDeactivator = PublishedWorkflowTriggerDeactivator = __decorate([
71
+ (0, di_1.Service)(),
72
+ __metadata("design:paramtypes", [backend_common_1.Logger,
73
+ config_1.WorkflowsConfig,
74
+ n8n_core_1.ErrorReporter,
75
+ workflow_publication_lifecycle_lock_1.WorkflowPublicationLifecycleLock,
76
+ n8n_core_1.ActiveWorkflowTriggers,
77
+ workflow_publication_outbox_consumer_1.WorkflowPublicationOutboxConsumer])
78
+ ], PublishedWorkflowTriggerDeactivator);
79
+ //# sourceMappingURL=published-workflow-trigger-deactivator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"published-workflow-trigger-deactivator.js","sourceRoot":"","sources":["../../../src/workflows/publication/published-workflow-trigger-deactivator.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wDAA6C;AAC7C,wCAA8C;AAC9C,8CAAsC;AACtC,gDAA+D;AAC/D,gCAAkC;AAClC,uCAAiE;AACjE,+CAA+C;AAE/C,qHAA+G;AAC/G,uHAAiH;AAOjH,MAAM,4BAA4B,GAAG,EAAE,GAAG,gBAAI,CAAC,OAAO,CAAC,cAAc,CAAC;AAO/D,IAAM,mCAAmC,GAAzC,MAAM,mCAAmC;IAC/C,YACkB,MAAc,EACd,eAAgC,EAChC,aAA4B,EAC5B,aAA+C,EAC/C,sBAA8C,EAC9C,cAAiD;QALjD,WAAM,GAAN,MAAM,CAAQ;QACd,oBAAe,GAAf,eAAe,CAAiB;QAChC,kBAAa,GAAb,aAAa,CAAe;QAC5B,kBAAa,GAAb,aAAa,CAAkC;QAC/C,2BAAsB,GAAtB,sBAAsB,CAAwB;QAC9C,mBAAc,GAAd,cAAc,CAAmC;QAElE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAC1D,CAAC;IAOK,AAAN,KAAK,CAAC,+BAA+B;QACpC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,6BAA6B;YAAE,OAAO;QAEhE,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;QAIlC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;YAC3B,GAAG,IAAI,CAAC,sBAAsB,CAAC,+BAA+B,EAAE;YAChE,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE;SAC5C,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAa,EAAE,CAAC;QAEvC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACtC,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC7C,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACnC,SAAS;YACV,CAAC;YACD,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC;QAED,KAAK,MAAM,UAAU,IAAI,iBAAiB,EAAE,CAAC;YAC5C,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC;IACF,CAAC;IAQO,KAAK,CAAC,kBAAkB,CAAC,UAAkB;QAClD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAClE,UAAU,EACV,KAAK,IAAI,EAAE;YACV,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACtD,CAAC,EACD,4BAA4B,CAC5B,CAAC;QAEF,IAAI,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,aAAa,CAAC,KAAK,CACvB,IAAI,8BAAe,CAClB,uEAAuE,UAAU,6CAA6C,CAC9H,EACD,EAAE,cAAc,EAAE,IAAI,EAAE,CACxB,CAAC;QACH,CAAC;IACF,CAAC;CACD,CAAA;AAnEY,kFAAmC;AAiBzC;IAFL,IAAA,6BAAgB,GAAE;IAClB,IAAA,uBAAU,GAAE;;;;0FAyBZ;8CAzCW,mCAAmC;IAD/C,IAAA,YAAO,GAAE;qCAGiB,uBAAM;QACG,wBAAe;QACjB,wBAAa;QACb,sEAAgC;QACvB,iCAAsB;QAC9B,wEAAiC;GAPvD,mCAAmC,CAmE/C"}
@@ -1,14 +1,19 @@
1
+ import { Logger } from '@n8n/backend-common';
1
2
  import { WorkflowHistoryRepository, WorkflowPublicationOutbox, WorkflowPublishedVersionRepository, WorkflowRepository } from '@n8n/db';
2
3
  import type { PublicationResult } from '../../workflows/publication/publication-result';
3
4
  import { WorkflowTriggerActivator } from '../../workflows/triggers/workflow-trigger-activator';
4
5
  export declare class WorkflowPublicationApplier {
6
+ private readonly logger;
5
7
  private readonly workflowRepository;
6
8
  private readonly workflowHistoryRepository;
7
9
  private readonly workflowPublishedVersionRepository;
8
10
  private readonly workflowTriggerActivator;
9
- constructor(workflowRepository: WorkflowRepository, workflowHistoryRepository: WorkflowHistoryRepository, workflowPublishedVersionRepository: WorkflowPublishedVersionRepository, workflowTriggerActivator: WorkflowTriggerActivator);
11
+ constructor(logger: Logger, workflowRepository: WorkflowRepository, workflowHistoryRepository: WorkflowHistoryRepository, workflowPublishedVersionRepository: WorkflowPublishedVersionRepository, workflowTriggerActivator: WorkflowTriggerActivator);
10
12
  apply(record: WorkflowPublicationOutbox): Promise<PublicationResult>;
13
+ private publish;
14
+ private unpublish;
11
15
  private classifyActivationOutcome;
16
+ private toActivationError;
12
17
  private resolveVersions;
13
18
  private advancePublishedVersion;
14
19
  }
@@ -10,30 +10,43 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.WorkflowPublicationApplier = void 0;
13
+ const backend_common_1 = require("@n8n/backend-common");
13
14
  const db_1 = require("@n8n/db");
14
15
  const di_1 = require("@n8n/di");
15
16
  const n8n_workflow_1 = require("n8n-workflow");
16
17
  const trigger_diff_1 = require("../../workflows/publication/trigger-diff");
18
+ const trigger_activation_retry_1 = require("../../workflows/triggers/trigger-activation-retry");
17
19
  const workflow_trigger_activator_1 = require("../../workflows/triggers/workflow-trigger-activator");
18
20
  let WorkflowPublicationApplier = class WorkflowPublicationApplier {
19
- constructor(workflowRepository, workflowHistoryRepository, workflowPublishedVersionRepository, workflowTriggerActivator) {
21
+ constructor(logger, workflowRepository, workflowHistoryRepository, workflowPublishedVersionRepository, workflowTriggerActivator) {
22
+ this.logger = logger;
20
23
  this.workflowRepository = workflowRepository;
21
24
  this.workflowHistoryRepository = workflowHistoryRepository;
22
25
  this.workflowPublishedVersionRepository = workflowPublishedVersionRepository;
23
26
  this.workflowTriggerActivator = workflowTriggerActivator;
27
+ this.logger = this.logger.scoped('workflow-publication');
24
28
  }
25
29
  async apply(record) {
26
30
  const { workflow, oldVersion, newVersion } = await this.resolveVersions(record);
27
31
  if (!workflow)
28
32
  return { type: 'skipped', reason: 'workflow-not-found' };
29
33
  if (workflow.activeVersionId === null) {
30
- return { type: 'skipped', reason: 'workflow-inactive' };
34
+ return await this.unpublish(workflow, oldVersion, record);
31
35
  }
32
36
  if (!newVersion)
33
37
  return { type: 'version-missing' };
38
+ return await this.publish(workflow, oldVersion, newVersion, record);
39
+ }
40
+ async publish(workflow, oldVersion, newVersion, record) {
34
41
  const oldTriggerNodes = this.workflowTriggerActivator.getEnabledTriggerNodes(oldVersion);
35
42
  const desiredTriggerNodes = this.workflowTriggerActivator.getEnabledTriggerNodes(newVersion);
36
43
  const { toAdd, toRemove } = (0, trigger_diff_1.computeTriggerDiff)(oldTriggerNodes, desiredTriggerNodes);
44
+ this.logger.debug(`Calculated trigger diff for workflow publication: ${toAdd.size} to add, ${toRemove.size} to remove`, {
45
+ workflowId: record.workflowId,
46
+ publishedVersionId: record.publishedVersionId,
47
+ toAdd: Array.from(toAdd),
48
+ toRemove: Array.from(toRemove),
49
+ });
37
50
  this.workflowTriggerActivator
38
51
  .getUnregisteredNonWebhookTriggerNodeIds(record.workflowId, desiredTriggerNodes)
39
52
  .forEach((nodeId) => toAdd.add(nodeId));
@@ -59,15 +72,37 @@ let WorkflowPublicationApplier = class WorkflowPublicationApplier {
59
72
  }
60
73
  return { type: 'completed' };
61
74
  }
75
+ async unpublish(workflow, oldVersion, record) {
76
+ if (!oldVersion)
77
+ return { type: 'skipped', reason: 'workflow-inactive' };
78
+ const toRemove = new Set(this.workflowTriggerActivator.getEnabledTriggerNodes(oldVersion).map((node) => node.id));
79
+ if (toRemove.size > 0) {
80
+ await this.workflowTriggerActivator.deactivate(workflow, oldVersion, toRemove);
81
+ }
82
+ await this.workflowPublishedVersionRepository.removePublishedVersion(record.workflowId);
83
+ return { type: 'unpublished' };
84
+ }
62
85
  classifyActivationOutcome(outcome) {
63
86
  if (outcome.failures.length === 0)
64
87
  return { type: 'completed' };
88
+ const allDeterministic = outcome.failures.every((failure) => !(0, trigger_activation_retry_1.isTransientActivationError)(failure.error));
89
+ if (outcome.activated.length === 0 && allDeterministic) {
90
+ return { type: 'failed', error: this.toActivationError(outcome.failures) };
91
+ }
65
92
  return {
66
93
  type: 'partial',
67
94
  activatedNodeIds: outcome.activated,
68
95
  failures: outcome.failures,
69
96
  };
70
97
  }
98
+ toActivationError(failures) {
99
+ if (failures.length === 1)
100
+ return failures[0].error;
101
+ const detail = failures
102
+ .map((failure) => `"${failure.nodeName}": ${failure.error.message}`)
103
+ .join('; ');
104
+ return new Error(`Triggers failed to activate: ${detail}`);
105
+ }
71
106
  async resolveVersions(record) {
72
107
  const [workflow, currentlyPublishedVersion, newVersion] = await Promise.all([
73
108
  this.workflowRepository.findOneBy({ id: record.workflowId }),
@@ -88,7 +123,8 @@ let WorkflowPublicationApplier = class WorkflowPublicationApplier {
88
123
  exports.WorkflowPublicationApplier = WorkflowPublicationApplier;
89
124
  exports.WorkflowPublicationApplier = WorkflowPublicationApplier = __decorate([
90
125
  (0, di_1.Service)(),
91
- __metadata("design:paramtypes", [db_1.WorkflowRepository,
126
+ __metadata("design:paramtypes", [backend_common_1.Logger,
127
+ db_1.WorkflowRepository,
92
128
  db_1.WorkflowHistoryRepository,
93
129
  db_1.WorkflowPublishedVersionRepository,
94
130
  workflow_trigger_activator_1.WorkflowTriggerActivator])
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-publication-applier.js","sourceRoot":"","sources":["../../../src/workflows/publication/workflow-publication-applier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-publication-applier.js","sourceRoot":"","sources":["../../../src/workflows/publication/workflow-publication-applier.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export declare class WorkflowPublicationLifecycleLock {
2
+ private readonly stateByWorkflowId;
3
+ isLocked(workflowId: string): boolean;
4
+ getLockedWorkflowIds(): string[];
5
+ runExclusive<T>(workflowId: string, fn: () => Promise<T>): Promise<T>;
6
+ runExclusiveOrTimeout(workflowId: string, fn: () => Promise<void>, timeoutMs: number): Promise<{
7
+ timedOut: boolean;
8
+ }>;
9
+ private getOrCreateState;
10
+ private acquire;
11
+ private release;
12
+ private acquireWithTimeout;
13
+ }
@@ -0,0 +1,104 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.WorkflowPublicationLifecycleLock = void 0;
10
+ const di_1 = require("@n8n/di");
11
+ let WorkflowPublicationLifecycleLock = class WorkflowPublicationLifecycleLock {
12
+ constructor() {
13
+ this.stateByWorkflowId = new Map();
14
+ }
15
+ isLocked(workflowId) {
16
+ return this.stateByWorkflowId.has(workflowId);
17
+ }
18
+ getLockedWorkflowIds() {
19
+ return Array.from(this.stateByWorkflowId.keys());
20
+ }
21
+ async runExclusive(workflowId, fn) {
22
+ await this.acquire(workflowId);
23
+ try {
24
+ return await fn();
25
+ }
26
+ finally {
27
+ this.release(workflowId);
28
+ }
29
+ }
30
+ async runExclusiveOrTimeout(workflowId, fn, timeoutMs) {
31
+ const acquired = await this.acquireWithTimeout(workflowId, timeoutMs);
32
+ if (!acquired) {
33
+ await fn();
34
+ return { timedOut: true };
35
+ }
36
+ try {
37
+ await fn();
38
+ }
39
+ finally {
40
+ this.release(workflowId);
41
+ }
42
+ return { timedOut: false };
43
+ }
44
+ getOrCreateState(workflowId) {
45
+ let state = this.stateByWorkflowId.get(workflowId);
46
+ if (!state) {
47
+ state = { locked: false, waiters: [] };
48
+ this.stateByWorkflowId.set(workflowId, state);
49
+ }
50
+ return state;
51
+ }
52
+ async acquire(workflowId) {
53
+ const state = this.getOrCreateState(workflowId);
54
+ if (!state.locked) {
55
+ state.locked = true;
56
+ return;
57
+ }
58
+ await new Promise((resolve) => state.waiters.push(resolve));
59
+ }
60
+ release(workflowId) {
61
+ const state = this.stateByWorkflowId.get(workflowId);
62
+ if (!state)
63
+ return;
64
+ const next = state.waiters.shift();
65
+ if (next) {
66
+ next();
67
+ }
68
+ else {
69
+ this.stateByWorkflowId.delete(workflowId);
70
+ }
71
+ }
72
+ async acquireWithTimeout(workflowId, timeoutMs) {
73
+ const state = this.getOrCreateState(workflowId);
74
+ if (!state.locked) {
75
+ state.locked = true;
76
+ return true;
77
+ }
78
+ return await new Promise((resolve) => {
79
+ let settled = false;
80
+ const waiter = () => {
81
+ if (settled)
82
+ return;
83
+ settled = true;
84
+ clearTimeout(timer);
85
+ resolve(true);
86
+ };
87
+ const timer = setTimeout(() => {
88
+ if (settled)
89
+ return;
90
+ settled = true;
91
+ const index = state.waiters.indexOf(waiter);
92
+ if (index !== -1)
93
+ state.waiters.splice(index, 1);
94
+ resolve(false);
95
+ }, timeoutMs);
96
+ state.waiters.push(waiter);
97
+ });
98
+ }
99
+ };
100
+ exports.WorkflowPublicationLifecycleLock = WorkflowPublicationLifecycleLock;
101
+ exports.WorkflowPublicationLifecycleLock = WorkflowPublicationLifecycleLock = __decorate([
102
+ (0, di_1.Service)()
103
+ ], WorkflowPublicationLifecycleLock);
104
+ //# sourceMappingURL=workflow-publication-lifecycle-lock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-publication-lifecycle-lock.js","sourceRoot":"","sources":["../../../src/workflows/publication/workflow-publication-lifecycle-lock.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { Logger } from '@n8n/backend-common';
2
+ import { WorkflowsConfig } from '@n8n/config';
3
+ import { WorkflowPublicationOutboxRepository } from '@n8n/db';
4
+ import { InstanceSettings, Tracing } from 'n8n-core';
5
+ export declare class WorkflowPublicationOutboxCleanupService {
6
+ private readonly workflowsConfig;
7
+ private readonly outboxRepository;
8
+ private readonly instanceSettings;
9
+ private readonly tracing;
10
+ private cleanupInterval;
11
+ private isShuttingDown;
12
+ private readonly logger;
13
+ constructor(logger: Logger, workflowsConfig: WorkflowsConfig, outboxRepository: WorkflowPublicationOutboxRepository, instanceSettings: InstanceSettings, tracing: Tracing);
14
+ init(): void;
15
+ startCleanup(): void;
16
+ stopCleanup(): void;
17
+ shutdown(): void;
18
+ private cleanup;
19
+ }
@@ -0,0 +1,109 @@
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.WorkflowPublicationOutboxCleanupService = void 0;
13
+ const backend_common_1 = require("@n8n/backend-common");
14
+ const config_1 = require("@n8n/config");
15
+ const constants_1 = require("@n8n/constants");
16
+ const db_1 = require("@n8n/db");
17
+ const decorators_1 = require("@n8n/decorators");
18
+ const di_1 = require("@n8n/di");
19
+ const n8n_core_1 = require("n8n-core");
20
+ let WorkflowPublicationOutboxCleanupService = class WorkflowPublicationOutboxCleanupService {
21
+ constructor(logger, workflowsConfig, outboxRepository, instanceSettings, tracing) {
22
+ this.workflowsConfig = workflowsConfig;
23
+ this.outboxRepository = outboxRepository;
24
+ this.instanceSettings = instanceSettings;
25
+ this.tracing = tracing;
26
+ this.isShuttingDown = false;
27
+ this.logger = logger.scoped('workflow-publication');
28
+ }
29
+ init() {
30
+ if (!this.instanceSettings.isLeader)
31
+ return;
32
+ this.startCleanup();
33
+ if (this.cleanupInterval)
34
+ void this.cleanup();
35
+ }
36
+ startCleanup() {
37
+ if (!this.workflowsConfig.useWorkflowPublicationService)
38
+ return;
39
+ if (this.isShuttingDown || this.cleanupInterval)
40
+ return;
41
+ const intervalSeconds = this.workflowsConfig.publicationOutboxCleanupIntervalSeconds;
42
+ this.cleanupInterval = setInterval(async () => await this.cleanup(), intervalSeconds * constants_1.Time.seconds.toMilliseconds);
43
+ this.logger.debug(`Outbox cleanup scheduled every ${intervalSeconds}s`);
44
+ }
45
+ stopCleanup() {
46
+ clearInterval(this.cleanupInterval);
47
+ this.cleanupInterval = undefined;
48
+ }
49
+ shutdown() {
50
+ this.isShuttingDown = true;
51
+ this.stopCleanup();
52
+ }
53
+ async cleanup() {
54
+ const completedRetentionSeconds = this.workflowsConfig.publicationOutboxCompletedRetentionHours * constants_1.Time.hours.toSeconds;
55
+ const failedRetentionSeconds = this.workflowsConfig.publicationOutboxFailedRetentionHours * constants_1.Time.hours.toSeconds;
56
+ const batchSize = this.workflowsConfig.publicationOutboxCleanupBatchSize;
57
+ await this.tracing.startSpan({ name: 'Publication outbox cleanup', op: 'publication.outbox.cleanup' }, async (span) => {
58
+ let totalDeleted = 0;
59
+ try {
60
+ let deleted;
61
+ do {
62
+ deleted = await this.outboxRepository.deleteTerminalOlderThan(completedRetentionSeconds, failedRetentionSeconds, batchSize);
63
+ totalDeleted += deleted;
64
+ } while (deleted >= batchSize && !this.isShuttingDown);
65
+ span.setStatus({ code: 1 });
66
+ if (totalDeleted > 0) {
67
+ this.logger.debug('Cleaned up terminal workflow publication outbox records', {
68
+ count: totalDeleted,
69
+ });
70
+ }
71
+ }
72
+ catch (error) {
73
+ span.setStatus({ code: 2 });
74
+ this.logger.error('Failed to clean up workflow publication outbox records', { error });
75
+ }
76
+ finally {
77
+ span.setAttribute('n8n.publication.records_deleted', totalDeleted);
78
+ }
79
+ });
80
+ }
81
+ };
82
+ exports.WorkflowPublicationOutboxCleanupService = WorkflowPublicationOutboxCleanupService;
83
+ __decorate([
84
+ (0, decorators_1.OnLeaderTakeover)(),
85
+ __metadata("design:type", Function),
86
+ __metadata("design:paramtypes", []),
87
+ __metadata("design:returntype", void 0)
88
+ ], WorkflowPublicationOutboxCleanupService.prototype, "startCleanup", null);
89
+ __decorate([
90
+ (0, decorators_1.OnLeaderStepdown)(),
91
+ __metadata("design:type", Function),
92
+ __metadata("design:paramtypes", []),
93
+ __metadata("design:returntype", void 0)
94
+ ], WorkflowPublicationOutboxCleanupService.prototype, "stopCleanup", null);
95
+ __decorate([
96
+ (0, decorators_1.OnShutdown)(),
97
+ __metadata("design:type", Function),
98
+ __metadata("design:paramtypes", []),
99
+ __metadata("design:returntype", void 0)
100
+ ], WorkflowPublicationOutboxCleanupService.prototype, "shutdown", null);
101
+ exports.WorkflowPublicationOutboxCleanupService = WorkflowPublicationOutboxCleanupService = __decorate([
102
+ (0, di_1.Service)(),
103
+ __metadata("design:paramtypes", [backend_common_1.Logger,
104
+ config_1.WorkflowsConfig,
105
+ db_1.WorkflowPublicationOutboxRepository,
106
+ n8n_core_1.InstanceSettings,
107
+ n8n_core_1.Tracing])
108
+ ], WorkflowPublicationOutboxCleanupService);
109
+ //# sourceMappingURL=workflow-publication-outbox-cleanup.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-publication-outbox-cleanup.service.js","sourceRoot":"","sources":["../../../src/workflows/publication/workflow-publication-outbox-cleanup.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wDAA6C;AAC7C,wCAA8C;AAC9C,8CAAsC;AACtC,gCAA8D;AAC9D,gDAAiF;AACjF,gCAAkC;AAClC,uCAAiE;AAW1D,IAAM,uCAAuC,GAA7C,MAAM,uCAAuC;IAOnD,YACC,MAAc,EACG,eAAgC,EAChC,gBAAqD,EACrD,gBAAkC,EAClC,OAAgB;QAHhB,oBAAe,GAAf,eAAe,CAAiB;QAChC,qBAAgB,GAAhB,gBAAgB,CAAqC;QACrD,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,YAAO,GAAP,OAAO,CAAS;QAT1B,mBAAc,GAAG,KAAK,CAAC;QAW9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;IACrD,CAAC;IAED,IAAI;QACH,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ;YAAE,OAAO;QAE5C,IAAI,CAAC,YAAY,EAAE,CAAC;QAIpB,IAAI,IAAI,CAAC,eAAe;YAAE,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;IAC/C,CAAC;IAGD,YAAY;QACX,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,6BAA6B;YAAE,OAAO;QAChE,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO;QAExD,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,uCAAuC,CAAC;QACrF,IAAI,CAAC,eAAe,GAAG,WAAW,CACjC,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAChC,eAAe,GAAG,gBAAI,CAAC,OAAO,CAAC,cAAc,CAC7C,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,eAAe,GAAG,CAAC,CAAC;IACzE,CAAC;IAGD,WAAW;QACV,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;IAClC,CAAC;IAGD,QAAQ;QACP,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,OAAO;QACpB,MAAM,yBAAyB,GAC9B,IAAI,CAAC,eAAe,CAAC,wCAAwC,GAAG,gBAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QACtF,MAAM,sBAAsB,GAC3B,IAAI,CAAC,eAAe,CAAC,qCAAqC,GAAG,gBAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QACnF,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,iCAAiC,CAAC;QAEzE,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAC3B,EAAE,IAAI,EAAE,4BAA4B,EAAE,EAAE,EAAE,4BAA4B,EAAE,EACxE,KAAK,EAAE,IAAI,EAAE,EAAE;YACd,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC;gBACJ,IAAI,OAAe,CAAC;gBAGpB,GAAG,CAAC;oBACH,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,CAC5D,yBAAyB,EACzB,sBAAsB,EACtB,SAAS,CACT,CAAC;oBACF,YAAY,IAAI,OAAO,CAAC;gBACzB,CAAC,QAAQ,OAAO,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBAEvD,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,GAAe,EAAE,CAAC,CAAC;gBAExC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;oBACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yDAAyD,EAAE;wBAC5E,KAAK,EAAE,YAAY;qBACnB,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,GAAkB,EAAE,CAAC,CAAC;gBAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wDAAwD,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACxF,CAAC;oBAAS,CAAC;gBACV,IAAI,CAAC,YAAY,CAAC,iCAAiC,EAAE,YAAY,CAAC,CAAC;YACpE,CAAC;QACF,CAAC,CACD,CAAC;IACH,CAAC;CACD,CAAA;AA7FY,0FAAuC;AA4BnD;IADC,IAAA,6BAAgB,GAAE;;;;2EAYlB;AAGD;IADC,IAAA,6BAAgB,GAAE;;;;0EAIlB;AAGD;IADC,IAAA,uBAAU,GAAE;;;;uEAIZ;kDAnDW,uCAAuC;IADnD,IAAA,YAAO,GAAE;qCASA,uBAAM;QACoB,wBAAe;QACd,wCAAmC;QACnC,2BAAgB;QACzB,kBAAO;GAZtB,uCAAuC,CA6FnD"}
@@ -1,8 +1,9 @@
1
1
  import { Logger } from '@n8n/backend-common';
2
2
  import { WorkflowsConfig } from '@n8n/config';
3
3
  import { WorkflowPublicationOutbox, WorkflowPublicationOutboxRepository } from '@n8n/db';
4
- import { ErrorReporter, InstanceSettings } from 'n8n-core';
4
+ import { ErrorReporter, InstanceSettings, Tracing } from 'n8n-core';
5
5
  import { PublicationStatusReporter } from '../../workflows/publication/publication-status-reporter';
6
+ import { WorkflowPublicationLifecycleLock } from '../../workflows/publication/workflow-publication-lifecycle-lock';
6
7
  import { WorkflowPublicationApplier } from '../../workflows/publication/workflow-publication-applier';
7
8
  export declare class WorkflowPublicationOutboxConsumer {
8
9
  private readonly logger;
@@ -12,16 +13,22 @@ export declare class WorkflowPublicationOutboxConsumer {
12
13
  private readonly applier;
13
14
  private readonly reporter;
14
15
  private readonly instanceSettings;
16
+ private readonly lifecycleLock;
17
+ private readonly tracing;
15
18
  private pollTimeout;
16
19
  private isPolling;
17
20
  private isShuttingDown;
18
- constructor(logger: Logger, workflowsConfig: WorkflowsConfig, errorReporter: ErrorReporter, outboxRepository: WorkflowPublicationOutboxRepository, applier: WorkflowPublicationApplier, reporter: PublicationStatusReporter, instanceSettings: InstanceSettings);
19
- init(): void;
21
+ private activeDrain;
22
+ constructor(logger: Logger, workflowsConfig: WorkflowsConfig, errorReporter: ErrorReporter, outboxRepository: WorkflowPublicationOutboxRepository, applier: WorkflowPublicationApplier, reporter: PublicationStatusReporter, instanceSettings: InstanceSettings, lifecycleLock: WorkflowPublicationLifecycleLock, tracing: Tracing);
23
+ init(): Promise<void>;
20
24
  startPolling(): void;
21
25
  stopPolling(): void;
22
- shutdown(): void;
26
+ shutdown(): Promise<void>;
27
+ wakeUp(): Promise<void>;
23
28
  private schedulePollCycle;
24
29
  private pollCycle;
30
+ drainPending(): Promise<number>;
31
+ private runDrain;
25
32
  private shouldKeepPolling;
26
33
  processRecord(record: WorkflowPublicationOutbox): Promise<void>;
27
34
  }