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,116 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.AzureStore = void 0;
16
+ const di_1 = require("@n8n/di");
17
+ const chunk_1 = __importDefault(require("lodash/chunk"));
18
+ const n8n_core_1 = require("n8n-core");
19
+ const azure_blob_service_ee_1 = require("n8n-core/dist/binary-data/azure-blob/azure-blob.service.ee");
20
+ const n8n_workflow_1 = require("n8n-workflow");
21
+ const constants_1 = require("./constants");
22
+ const corrupted_execution_data_error_1 = require("./corrupted-execution-data.error");
23
+ const execution_data_write_error_1 = require("./execution-data-write.error");
24
+ const MAX_READ_CONCURRENCY = 50;
25
+ const MAX_DELETE_CONCURRENCY = 50;
26
+ let AzureStore = class AzureStore {
27
+ constructor(azureBlob, reporter) {
28
+ this.azureBlob = azureBlob;
29
+ this.reporter = reporter;
30
+ }
31
+ async write(ref, payload) {
32
+ const body = Buffer.from((0, n8n_workflow_1.jsonStringify)({ ...payload, version: constants_1.EXECUTION_DATA_BUNDLE_VERSION }), 'utf-8');
33
+ try {
34
+ await this.azureBlob.put(this.key(ref), body);
35
+ }
36
+ catch (error) {
37
+ throw new execution_data_write_error_1.ExecutionDataWriteError(ref, error);
38
+ }
39
+ return body.length;
40
+ }
41
+ async read(ref) {
42
+ let content;
43
+ try {
44
+ const buffer = await this.azureBlob.get(this.key(ref));
45
+ content = buffer.toString('utf-8');
46
+ }
47
+ catch (error) {
48
+ if (this.isNotFound(error))
49
+ return null;
50
+ throw error;
51
+ }
52
+ try {
53
+ return (0, n8n_workflow_1.jsonParse)(content);
54
+ }
55
+ catch (error) {
56
+ throw new corrupted_execution_data_error_1.CorruptedExecutionDataError(ref, error);
57
+ }
58
+ }
59
+ async readMany(refs) {
60
+ const bundles = new Map();
61
+ if (refs.length === 0)
62
+ return bundles;
63
+ for (const batch of (0, chunk_1.default)(refs, MAX_READ_CONCURRENCY)) {
64
+ const bundlesInBatch = await Promise.all(batch.map(async (ref) => await this.tryRead(ref)));
65
+ for (const [idx, bundle] of bundlesInBatch.entries()) {
66
+ if (bundle)
67
+ bundles.set(batch[idx].executionId, bundle);
68
+ }
69
+ }
70
+ return bundles;
71
+ }
72
+ async delete(ref) {
73
+ const refs = Array.isArray(ref) ? ref : [ref];
74
+ if (refs.length === 0)
75
+ return;
76
+ for (const batch of (0, chunk_1.default)(refs, MAX_DELETE_CONCURRENCY)) {
77
+ await Promise.all(batch.map((r) => this.azureBlob.delete(this.key(r))));
78
+ }
79
+ }
80
+ key({ workflowId, executionId }) {
81
+ return [
82
+ 'workflows',
83
+ workflowId,
84
+ 'executions',
85
+ executionId,
86
+ 'execution_data',
87
+ constants_1.EXECUTION_DATA_BUNDLE_FILENAME,
88
+ ].join('/');
89
+ }
90
+ async tryRead(ref) {
91
+ try {
92
+ return await this.read(ref);
93
+ }
94
+ catch (error) {
95
+ if (error instanceof corrupted_execution_data_error_1.CorruptedExecutionDataError) {
96
+ this.reporter.error(error);
97
+ return null;
98
+ }
99
+ throw error;
100
+ }
101
+ }
102
+ isNotFound(error) {
103
+ const original = (0, n8n_workflow_1.ensureError)(error).cause ?? error;
104
+ if (typeof original !== 'object' || original === null)
105
+ return false;
106
+ const code = 'code' in original ? original.code : undefined;
107
+ return code === 'BlobNotFound';
108
+ }
109
+ };
110
+ exports.AzureStore = AzureStore;
111
+ exports.AzureStore = AzureStore = __decorate([
112
+ (0, di_1.Service)(),
113
+ __metadata("design:paramtypes", [azure_blob_service_ee_1.AzureBlobService,
114
+ n8n_core_1.ErrorReporter])
115
+ ], AzureStore);
116
+ //# sourceMappingURL=azure-store.ee.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure-store.ee.js","sourceRoot":"","sources":["../../../src/executions/execution-data/azure-store.ee.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,13 @@ export declare class DbStore implements ExecutionDataStore {
8
8
  overwrite(ref: ExecutionRef, payload: ExecutionDataPayload, tx?: EntityManager): Promise<number>;
9
9
  private measureBundleBytes;
10
10
  read({ executionId }: ExecutionRef, tx?: EntityManager): Promise<ExecutionDataBundle | null>;
11
+ readWorkflowData({ executionId }: ExecutionRef, tx?: EntityManager): Promise<{
12
+ workflowData: Omit<import("n8n-workflow").IWorkflowBase, "pinData"> & {
13
+ pinData?: import("@n8n/db").ISimplifiedPinData;
14
+ };
15
+ workflowVersionId: string | null;
16
+ } | null>;
17
+ getDataByteSize({ executionId }: ExecutionRef, tx?: EntityManager): Promise<number | null>;
11
18
  readMany(refs: ExecutionRef[]): Promise<Map<string, ExecutionDataBundle>>;
12
19
  delete(ref: ExecutionRef | ExecutionRef[]): Promise<void>;
13
20
  private getRepository;
@@ -50,6 +50,27 @@ let DbStore = class DbStore {
50
50
  return null;
51
51
  return { ...result, version: constants_1.EXECUTION_DATA_BUNDLE_VERSION };
52
52
  }
53
+ async readWorkflowData({ executionId }, tx) {
54
+ const repo = this.getRepository(tx);
55
+ const result = await repo.findOne({
56
+ where: { executionId },
57
+ select: ['workflowData', 'workflowVersionId'],
58
+ });
59
+ if (!result)
60
+ return null;
61
+ return { workflowData: result.workflowData, workflowVersionId: result.workflowVersionId };
62
+ }
63
+ async getDataByteSize({ executionId }, tx) {
64
+ const repo = this.getRepository(tx);
65
+ const row = await repo
66
+ .createQueryBuilder('d')
67
+ .select('LENGTH(d.data)', 'size')
68
+ .where('d.executionId = :executionId', { executionId })
69
+ .getRawOne();
70
+ if (!row || row.size === null)
71
+ return null;
72
+ return Number(row.size);
73
+ }
53
74
  async readMany(refs) {
54
75
  const bundles = new Map();
55
76
  if (refs.length === 0)
@@ -1 +1 @@
1
- {"version":3,"file":"db-store.js","sourceRoot":"","sources":["../../../src/executions/execution-data/db-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db-store.js","sourceRoot":"","sources":["../../../src/executions/execution-data/db-store.ts"],"names":[],"mappings":"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"}
@@ -14,10 +14,13 @@ export type ExecutionDataPayload = {
14
14
  export type ExecutionDataBundle = ExecutionDataPayload & {
15
15
  version: 1;
16
16
  };
17
+ export type BundleWorkflowSnapshot = Pick<ExecutionDataBundle, 'workflowData' | 'workflowVersionId'>;
17
18
  export interface ExecutionDataStore {
18
19
  init?(): Promise<void>;
19
20
  write(ref: ExecutionRef, payload: ExecutionDataPayload, tx?: EntityManager): Promise<number>;
20
21
  read(ref: ExecutionRef, tx?: EntityManager): Promise<ExecutionDataBundle | null>;
21
22
  readMany(refs: ExecutionRef[]): Promise<Map<string, ExecutionDataBundle>>;
23
+ readWorkflowData?(ref: ExecutionRef, tx?: EntityManager): Promise<BundleWorkflowSnapshot | null>;
24
+ getDataByteSize?(ref: ExecutionRef, tx?: EntityManager): Promise<number | null>;
22
25
  delete(ref: ExecutionRef | ExecutionRef[]): Promise<void>;
23
26
  }
@@ -23,8 +23,10 @@ export declare class ExecutionPersistence {
23
23
  private readonly eventService;
24
24
  private readonly logger;
25
25
  private s3Store;
26
+ private azStore;
26
27
  constructor(executionRepository: ExecutionRepository, binaryDataService: BinaryDataService, fsStore: FsStore, dbStore: DbStore, storageConfig: StorageConfig, executionsConfig: ExecutionsConfig, databaseConfig: DatabaseConfig, errorReporter: ErrorReporter, eventService: EventService, logger: Logger);
27
28
  setS3Store(store: ExecutionDataStore): void;
29
+ setAzStore(store: ExecutionDataStore): void;
28
30
  create(payload: CreateExecutionPayload): Promise<string>;
29
31
  updateExistingExecution(executionId: string, execution: Partial<IExecutionResponse>, conditions?: UpdateExecutionConditions): Promise<boolean>;
30
32
  findSingleExecution(id: string, options?: {
@@ -32,6 +34,7 @@ export declare class ExecutionPersistence {
32
34
  includeAnnotation?: boolean;
33
35
  unflattenData: true;
34
36
  where?: FindOptionsWhere<ExecutionEntity>;
37
+ maxDataSizeBytes?: number;
35
38
  }): Promise<IExecutionResponse | undefined>;
36
39
  findSingleExecution(id: string, options?: {
37
40
  includeData: true;
@@ -44,10 +47,12 @@ export declare class ExecutionPersistence {
44
47
  includeAnnotation?: boolean;
45
48
  unflattenData?: boolean;
46
49
  where?: FindOptionsWhere<ExecutionEntity>;
50
+ maxDataSizeBytes?: number;
47
51
  }): Promise<IExecutionBase | undefined>;
48
52
  findMultipleExecutions(queryParams: FindManyOptions<ExecutionEntity>, options?: {
49
53
  unflattenData: true;
50
54
  includeData?: true;
55
+ maxDataSizeBytes?: number;
51
56
  }): Promise<IExecutionResponse[]>;
52
57
  findMultipleExecutions(queryParams: FindManyOptions<ExecutionEntity>, options?: {
53
58
  unflattenData?: false | undefined;
@@ -56,10 +61,11 @@ export declare class ExecutionPersistence {
56
61
  findMultipleExecutions(queryParams: FindManyOptions<ExecutionEntity>, options?: {
57
62
  unflattenData?: boolean;
58
63
  includeData?: boolean;
64
+ maxDataSizeBytes?: number;
59
65
  }): Promise<IExecutionBase[]>;
60
66
  findWithUnflattenedData(executionId: string, accessibleWorkflowIds: string[]): Promise<IExecutionResponse | undefined>;
61
- findIfSharedUnflatten(executionId: string, sharedWorkflowIds: string[]): Promise<IExecutionResponse | undefined>;
62
- getExecutionInWorkflowsForPublicApi(id: string, workflowIds: string[], includeData?: boolean): Promise<IExecutionBase | undefined>;
67
+ findIfSharedUnflatten(executionId: string, sharedWorkflowIds: string[], maxDataSizeBytes?: number): Promise<IExecutionResponse | undefined>;
68
+ getExecutionInWorkflowsForPublicApi(id: string, workflowIds: string[], includeData?: boolean, maxDataSizeBytes?: number): Promise<IExecutionBase | undefined>;
63
69
  getExecutionsForPublicApi(params: {
64
70
  limit: number;
65
71
  includeData?: boolean;
@@ -67,11 +73,13 @@ export declare class ExecutionPersistence {
67
73
  workflowIds?: string[];
68
74
  status?: ExecutionStatus;
69
75
  excludedExecutionsIds?: string[];
70
- }): Promise<IExecutionBase[]>;
76
+ }, maxDataSizeBytes?: number): Promise<IExecutionBase[]>;
71
77
  deleteInFlightExecution(target: DeletionTarget): Promise<void>;
72
78
  hardDelete(target: DeletionTarget | DeletionTarget[]): Promise<void>;
73
79
  hardDeleteBy(criteria: ExecutionDeletionCriteria): Promise<void>;
80
+ private deleteFsData;
74
81
  private deleteS3Data;
82
+ private deleteAzData;
75
83
  private updateEntityOnly;
76
84
  private applyDataUpdate;
77
85
  private pickUpdatableEntityColumns;
@@ -81,6 +89,12 @@ export declare class ExecutionPersistence {
81
89
  private getStoreFor;
82
90
  private toWorkflowSnapshot;
83
91
  private assembleExecution;
92
+ private maxDisplayDataSize;
93
+ private isKnownOversize;
94
+ private assembleSkippedExecution;
95
+ private assembleOversizedExecution;
96
+ private skipOversizedEntities;
97
+ private assembleReadExecution;
84
98
  private parseExecutionData;
85
99
  private serializeAnnotation;
86
100
  private isDuplicateExecutionError;
@@ -22,6 +22,7 @@ const corrupted_execution_data_error_1 = require("./execution-data/corrupted-exe
22
22
  const db_store_1 = require("./execution-data/db-store");
23
23
  const fs_store_1 = require("./execution-data/fs-store");
24
24
  const missing_execution_data_error_1 = require("./execution-data/missing-execution-data.error");
25
+ const sum_binary_data_bytes_1 = require("./sum-binary-data-bytes");
25
26
  const duplicate_execution_error_1 = require("../errors/duplicate-execution.error");
26
27
  const event_service_1 = require("../events/event.service");
27
28
  let ExecutionPersistence = class ExecutionPersistence {
@@ -40,6 +41,9 @@ let ExecutionPersistence = class ExecutionPersistence {
40
41
  setS3Store(store) {
41
42
  this.s3Store = store;
42
43
  }
44
+ setAzStore(store) {
45
+ this.azStore = store;
46
+ }
43
47
  async create(payload) {
44
48
  const { data: rawData, workflowData, ...rest } = payload;
45
49
  const { connections, nodes, name, settings, id } = workflowData;
@@ -61,7 +65,8 @@ let ExecutionPersistence = class ExecutionPersistence {
61
65
  };
62
66
  return await store.write(ref, bundle, tx);
63
67
  });
64
- await tx.update(db_1.ExecutionEntity, { id: executionId }, { jsonSizeBytes });
68
+ const binaryDataSizeBytes = (0, sum_binary_data_bytes_1.sumBinaryDataBytes)(rawData);
69
+ await tx.update(db_1.ExecutionEntity, { id: executionId }, { jsonSizeBytes, binaryDataSizeBytes });
65
70
  return executionId;
66
71
  });
67
72
  }
@@ -100,8 +105,18 @@ let ExecutionPersistence = class ExecutionPersistence {
100
105
  });
101
106
  if (!entity)
102
107
  return undefined;
108
+ const max = this.maxDisplayDataSize(options);
103
109
  const store = this.getStoreFor(entity.storedAt);
104
110
  const ref = { workflowId: entity.workflowId, executionId: entity.id };
111
+ if (this.isKnownOversize(entity, max)) {
112
+ return (await this.assembleSkippedExecution(entity, store, ref, options));
113
+ }
114
+ if (max > 0 && entity.jsonSizeBytes === 0) {
115
+ const size = await store.getDataByteSize?.(ref);
116
+ if (typeof size === 'number' && size > max) {
117
+ return (await this.assembleSkippedExecution(entity, store, ref, options));
118
+ }
119
+ }
105
120
  const start = Date.now();
106
121
  let success = false;
107
122
  let unreadableBundles = 0;
@@ -115,7 +130,7 @@ let ExecutionPersistence = class ExecutionPersistence {
115
130
  }
116
131
  throw new missing_execution_data_error_1.MissingExecutionDataError(ref);
117
132
  }
118
- const assembled = await this.assembleExecution(entity, bundle, options);
133
+ const assembled = await this.assembleReadExecution(entity, bundle, options, max);
119
134
  success = true;
120
135
  return assembled;
121
136
  }
@@ -145,9 +160,11 @@ let ExecutionPersistence = class ExecutionPersistence {
145
160
  else {
146
161
  queryParams.relations.metadata = true;
147
162
  }
163
+ const max = this.maxDisplayDataSize(options);
148
164
  if (queryParams.select) {
165
+ const guardFields = max > 0 ? ['jsonSizeBytes', 'workflowVersionId'] : [];
149
166
  if (Array.isArray(queryParams.select)) {
150
- for (const field of ['id', 'workflowId', 'storedAt']) {
167
+ for (const field of ['id', 'workflowId', 'storedAt', ...guardFields]) {
151
168
  if (!queryParams.select.includes(field))
152
169
  queryParams.select.push(field);
153
170
  }
@@ -156,18 +173,21 @@ let ExecutionPersistence = class ExecutionPersistence {
156
173
  queryParams.select.id = true;
157
174
  queryParams.select.workflowId = true;
158
175
  queryParams.select.storedAt = true;
176
+ for (const field of guardFields)
177
+ queryParams.select[field] = true;
159
178
  }
160
179
  }
161
180
  const entities = await this.executionRepository.find(queryParams);
162
181
  if (entities.length === 0)
163
182
  return [];
183
+ const assembledById = new Map();
184
+ const entitiesToRead = await this.skipOversizedEntities(entities, max, assembledById);
164
185
  const entitiesByLocation = new Map();
165
- for (const entity of entities) {
186
+ for (const entity of entitiesToRead) {
166
187
  const group = entitiesByLocation.get(entity.storedAt) ?? [];
167
188
  group.push(entity);
168
189
  entitiesByLocation.set(entity.storedAt, group);
169
190
  }
170
- const assembledById = new Map();
171
191
  await Promise.all([...entitiesByLocation].map(async ([location, group]) => {
172
192
  const refs = group.map((e) => ({ workflowId: e.workflowId, executionId: e.id }));
173
193
  const store = this.getStoreFor(location);
@@ -184,7 +204,7 @@ let ExecutionPersistence = class ExecutionPersistence {
184
204
  const bundle = bundles.get(entity.id);
185
205
  if (!bundle)
186
206
  return;
187
- assembledById.set(entity.id, await this.assembleExecution(entity, bundle, options));
207
+ assembledById.set(entity.id, await this.assembleReadExecution(entity, bundle, options, max));
188
208
  }));
189
209
  const corrupt = group.filter((_, i) => {
190
210
  const outcome = settled[i];
@@ -222,22 +242,24 @@ let ExecutionPersistence = class ExecutionPersistence {
222
242
  includeAnnotation: true,
223
243
  });
224
244
  }
225
- async findIfSharedUnflatten(executionId, sharedWorkflowIds) {
245
+ async findIfSharedUnflatten(executionId, sharedWorkflowIds, maxDataSizeBytes) {
226
246
  return await this.findSingleExecution(executionId, {
227
247
  where: { workflowId: (0, db_1.In)(sharedWorkflowIds) },
228
248
  includeData: true,
229
249
  unflattenData: true,
230
250
  includeAnnotation: true,
251
+ maxDataSizeBytes,
231
252
  });
232
253
  }
233
- async getExecutionInWorkflowsForPublicApi(id, workflowIds, includeData) {
254
+ async getExecutionInWorkflowsForPublicApi(id, workflowIds, includeData, maxDataSizeBytes) {
234
255
  return await this.findSingleExecution(id, {
235
256
  where: { workflowId: (0, db_1.In)(workflowIds) },
236
257
  includeData,
237
258
  unflattenData: true,
259
+ maxDataSizeBytes,
238
260
  });
239
261
  }
240
- async getExecutionsForPublicApi(params) {
262
+ async getExecutionsForPublicApi(params, maxDataSizeBytes) {
241
263
  return await this.findMultipleExecutions({
242
264
  select: [
243
265
  'id',
@@ -254,7 +276,7 @@ let ExecutionPersistence = class ExecutionPersistence {
254
276
  where: this.executionRepository.getFindExecutionsForPublicApiCondition(params),
255
277
  order: { id: 'DESC' },
256
278
  take: params.limit,
257
- }, { includeData: params.includeData, unflattenData: true });
279
+ }, { includeData: params.includeData, unflattenData: true, maxDataSizeBytes });
258
280
  }
259
281
  async deleteInFlightExecution(target) {
260
282
  if (this.executionsConfig.pruneData) {
@@ -270,20 +292,24 @@ let ExecutionPersistence = class ExecutionPersistence {
270
292
  const targets = Array.isArray(target) ? target : [target];
271
293
  if (targets.length === 0)
272
294
  return;
273
- const fsTargets = targets.filter((t) => t.storedAt === 'fs');
274
295
  await Promise.all([
275
296
  this.executionRepository.deleteByIds(targets.map((t) => t.executionId)),
276
297
  this.binaryDataService.deleteMany(targets.map((t) => ({ type: 'execution', ...t }))),
277
- fsTargets.length > 0 ? this.fsStore.delete(fsTargets) : Promise.resolve(),
298
+ this.deleteFsData(targets.filter((t) => t.storedAt === 'fs')),
278
299
  this.deleteS3Data(targets.filter((t) => t.storedAt === 's3')),
300
+ this.deleteAzData(targets.filter((t) => t.storedAt === 'az')),
279
301
  ]);
280
302
  }
281
303
  async hardDeleteBy(criteria) {
282
304
  const refs = await this.executionRepository.deleteExecutionsByFilter(criteria);
283
- const fsRefs = refs.filter((r) => r.storedAt === 'fs');
284
- if (fsRefs.length > 0)
285
- await this.fsStore.delete(fsRefs);
305
+ await this.deleteFsData(refs.filter((r) => r.storedAt === 'fs'));
286
306
  await this.deleteS3Data(refs.filter((r) => r.storedAt === 's3'));
307
+ await this.deleteAzData(refs.filter((r) => r.storedAt === 'az'));
308
+ }
309
+ async deleteFsData(refs) {
310
+ if (refs.length === 0)
311
+ return;
312
+ await this.fsStore.delete(refs);
287
313
  }
288
314
  async deleteS3Data(refs) {
289
315
  if (refs.length === 0)
@@ -296,6 +322,17 @@ let ExecutionPersistence = class ExecutionPersistence {
296
322
  }
297
323
  await this.s3Store.delete(refs);
298
324
  }
325
+ async deleteAzData(refs) {
326
+ if (refs.length === 0)
327
+ return;
328
+ if (!this.azStore) {
329
+ this.logger.warn('Skipped deleting Azure execution data - Azure store is not initialized', {
330
+ executionIds: refs.map((r) => r.executionId),
331
+ });
332
+ return;
333
+ }
334
+ await this.azStore.delete(refs);
335
+ }
299
336
  async updateEntityOnly(executionId, execution, conditions) {
300
337
  const updatableColumns = this.pickUpdatableEntityColumns(execution);
301
338
  if (Object.keys(updatableColumns).length === 0)
@@ -329,6 +366,7 @@ let ExecutionPersistence = class ExecutionPersistence {
329
366
  if (data !== undefined &&
330
367
  workflowData !== undefined &&
331
368
  (workflowVersionId !== null || store === this.dbStore)) {
369
+ const binaryDataSizeBytes = (0, sum_binary_data_bytes_1.sumBinaryDataBytes)(data);
332
370
  const jsonSizeBytes = await this.trackWrite(mode, async () => {
333
371
  const bundle = {
334
372
  data: (0, flatted_1.stringify)(data),
@@ -339,7 +377,7 @@ let ExecutionPersistence = class ExecutionPersistence {
339
377
  ? await this.dbStore.overwrite(ref, bundle, tx)
340
378
  : await store.write(ref, bundle, tx);
341
379
  });
342
- await tx.update(db_1.ExecutionEntity, { id: ref.executionId }, { jsonSizeBytes });
380
+ await tx.update(db_1.ExecutionEntity, { id: ref.executionId }, { jsonSizeBytes, binaryDataSizeBytes });
343
381
  return true;
344
382
  }
345
383
  const existing = await this.trackRead(mode, async () => await store.read(ref, tx));
@@ -355,12 +393,15 @@ let ExecutionPersistence = class ExecutionPersistence {
355
393
  };
356
394
  return await store.write(ref, bundle, tx);
357
395
  });
358
- await tx.update(db_1.ExecutionEntity, { id: ref.executionId }, { jsonSizeBytes });
396
+ const sizeColumns = data !== undefined
397
+ ? { jsonSizeBytes, binaryDataSizeBytes: (0, sum_binary_data_bytes_1.sumBinaryDataBytes)(data) }
398
+ : { jsonSizeBytes };
399
+ await tx.update(db_1.ExecutionEntity, { id: ref.executionId }, sizeColumns);
359
400
  return true;
360
401
  });
361
402
  }
362
403
  pickUpdatableEntityColumns(execution) {
363
- const { id: _id, data: _data, workflowId: _workflowId, workflowData: _workflowData, workflowVersionId: _workflowVersionId, createdAt: _createdAt, startedAt: _startedAt, customData: _customData, jsonSizeBytes: _jsonSizeBytes, ...updatableColumns } = execution;
404
+ const { id: _id, data: _data, workflowId: _workflowId, workflowData: _workflowData, workflowVersionId: _workflowVersionId, createdAt: _createdAt, startedAt: _startedAt, customData: _customData, jsonSizeBytes: _jsonSizeBytes, binaryDataSizeBytes: _binaryDataSizeBytes, ...updatableColumns } = execution;
364
405
  return updatableColumns;
365
406
  }
366
407
  buildEntityWhereCondition(executionId, conditions) {
@@ -430,6 +471,11 @@ let ExecutionPersistence = class ExecutionPersistence {
430
471
  throw new n8n_workflow_1.UnexpectedError('Execution data is stored on S3 but the S3 store is not initialized. Check that S3 is configured.');
431
472
  }
432
473
  return this.s3Store;
474
+ case 'az':
475
+ if (!this.azStore) {
476
+ throw new n8n_workflow_1.UnexpectedError('Execution data is stored on Azure Blob Storage but the Azure store is not initialized. Check that Azure is configured.');
477
+ }
478
+ return this.azStore;
433
479
  }
434
480
  const _exhaustive = location;
435
481
  throw new Error(`Unknown storage location: ${String(_exhaustive)}`);
@@ -459,6 +505,63 @@ let ExecutionPersistence = class ExecutionPersistence {
459
505
  : {}),
460
506
  };
461
507
  }
508
+ maxDisplayDataSize(options) {
509
+ return options.unflattenData ? (options.maxDataSizeBytes ?? 0) : 0;
510
+ }
511
+ isKnownOversize(entity, max) {
512
+ return max > 0 && entity.jsonSizeBytes > 0 && entity.jsonSizeBytes > max;
513
+ }
514
+ async assembleSkippedExecution(entity, store, ref, options) {
515
+ const snapshot = (await store.readWorkflowData?.(ref)) ?? undefined;
516
+ return this.assembleOversizedExecution(entity, { includeAnnotation: options.includeAnnotation }, snapshot);
517
+ }
518
+ assembleOversizedExecution(entity, options, snapshot) {
519
+ const { metadata, annotation, ...rest } = entity;
520
+ const serializedAnnotation = this.serializeAnnotation(annotation);
521
+ const workflowData = snapshot?.workflowData ?? {
522
+ id: entity.workflowId,
523
+ name: '',
524
+ nodes: [],
525
+ connections: {},
526
+ settings: {},
527
+ };
528
+ return {
529
+ ...rest,
530
+ data: (0, n8n_workflow_1.createEmptyRunExecutionData)(),
531
+ workflowData,
532
+ workflowVersionId: snapshot?.workflowVersionId ?? entity.workflowVersionId ?? null,
533
+ customData: Object.fromEntries(metadata.map((m) => [m.key, m.value])),
534
+ dataTooLargeToDisplay: true,
535
+ ...(options.includeAnnotation && serializedAnnotation
536
+ ? { annotation: serializedAnnotation }
537
+ : {}),
538
+ };
539
+ }
540
+ async skipOversizedEntities(entities, max, assembledById) {
541
+ if (max <= 0)
542
+ return entities;
543
+ const entitiesToRead = [];
544
+ const oversized = [];
545
+ for (const entity of entities) {
546
+ if (this.isKnownOversize(entity, max))
547
+ oversized.push(entity);
548
+ else
549
+ entitiesToRead.push(entity);
550
+ }
551
+ await Promise.all(oversized.map(async (entity) => {
552
+ const store = this.getStoreFor(entity.storedAt);
553
+ const ref = { workflowId: entity.workflowId, executionId: entity.id };
554
+ const snapshot = (await store.readWorkflowData?.(ref)) ?? undefined;
555
+ assembledById.set(entity.id, this.assembleOversizedExecution(entity, {}, snapshot));
556
+ }));
557
+ return entitiesToRead;
558
+ }
559
+ async assembleReadExecution(entity, bundle, options, max) {
560
+ if (max > 0 && entity.jsonSizeBytes === 0 && Buffer.byteLength(bundle.data, 'utf8') > max) {
561
+ return this.assembleOversizedExecution(entity, { includeAnnotation: options.includeAnnotation }, { workflowData: bundle.workflowData, workflowVersionId: bundle.workflowVersionId });
562
+ }
563
+ return await this.assembleExecution(entity, bundle, options);
564
+ }
462
565
  async parseExecutionData(ref, data, options) {
463
566
  if (!options.unflattenData)
464
567
  return data;