n8n 1.120.3 → 1.121.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 (256) hide show
  1. package/dist/abstract-server.d.ts +1 -1
  2. package/dist/abstract-server.js +4 -4
  3. package/dist/abstract-server.js.map +1 -1
  4. package/dist/build.tsbuildinfo +1 -1
  5. package/dist/chat/utils.js +5 -3
  6. package/dist/chat/utils.js.map +1 -1
  7. package/dist/commands/base-command.js +2 -2
  8. package/dist/commands/base-command.js.map +1 -1
  9. package/dist/commands/execute-batch.d.ts +1 -1
  10. package/dist/commands/execute.d.ts +2 -2
  11. package/dist/commands/export/credentials.d.ts +2 -2
  12. package/dist/commands/export/entities.d.ts +3 -0
  13. package/dist/commands/export/entities.js +9 -2
  14. package/dist/commands/export/entities.js.map +1 -1
  15. package/dist/commands/export/workflow.d.ts +2 -2
  16. package/dist/commands/import/credentials.d.ts +2 -2
  17. package/dist/commands/import/entities.d.ts +3 -0
  18. package/dist/commands/import/entities.js +10 -2
  19. package/dist/commands/import/entities.js.map +1 -1
  20. package/dist/commands/import/workflow.d.ts +2 -2
  21. package/dist/commands/ttwf/generate.d.ts +3 -3
  22. package/dist/constants.js +1 -0
  23. package/dist/constants.js.map +1 -1
  24. package/dist/controllers/auth.controller.js +4 -0
  25. package/dist/controllers/auth.controller.js.map +1 -1
  26. package/dist/controllers/e2e.controller.js +0 -1
  27. package/dist/controllers/e2e.controller.js.map +1 -1
  28. package/dist/controllers/invitation.controller.js +8 -4
  29. package/dist/controllers/invitation.controller.js.map +1 -1
  30. package/dist/credentials/credentials.service.d.ts +2 -0
  31. package/dist/credentials/credentials.service.js +33 -10
  32. package/dist/credentials/credentials.service.js.map +1 -1
  33. package/dist/evaluation.ee/test-runner/test-runner.service.ee.js +11 -23
  34. package/dist/evaluation.ee/test-runner/test-runner.service.ee.js.map +1 -1
  35. package/dist/eventbus/message-event-bus-destination/message-event-bus-destination-sentry.ee.js +1 -0
  36. package/dist/eventbus/message-event-bus-destination/message-event-bus-destination-sentry.ee.js.map +1 -1
  37. package/dist/eventbus/message-event-bus-destination/message-event-bus-destination-syslog.ee.js +1 -0
  38. package/dist/eventbus/message-event-bus-destination/message-event-bus-destination-syslog.ee.js.map +1 -1
  39. package/dist/eventbus/message-event-bus-destination/message-event-bus-destination-webhook.ee.d.ts +4 -2
  40. package/dist/eventbus/message-event-bus-destination/message-event-bus-destination-webhook.ee.js +55 -29
  41. package/dist/eventbus/message-event-bus-destination/message-event-bus-destination-webhook.ee.js.map +1 -1
  42. package/dist/eventbus/message-event-bus-destination/message-event-bus-destination.ee.d.ts +2 -0
  43. package/dist/eventbus/message-event-bus-destination/message-event-bus-destination.ee.js +23 -1
  44. package/dist/eventbus/message-event-bus-destination/message-event-bus-destination.ee.js.map +1 -1
  45. package/dist/execution-lifecycle/execute-error-workflow.js +1 -0
  46. package/dist/execution-lifecycle/execute-error-workflow.js.map +1 -1
  47. package/dist/execution-lifecycle/save-execution-progress.d.ts +1 -1
  48. package/dist/execution-lifecycle/save-execution-progress.js +2 -13
  49. package/dist/execution-lifecycle/save-execution-progress.js.map +1 -1
  50. package/dist/executions/execution.service.js +1 -45
  51. package/dist/executions/execution.service.js.map +1 -1
  52. package/dist/interfaces.d.ts +2 -1
  53. package/dist/ldap.ee/constants.d.ts +3 -0
  54. package/dist/ldap.ee/constants.js +4 -0
  55. package/dist/ldap.ee/constants.js.map +1 -1
  56. package/dist/ldap.ee/ldap.service.ee.d.ts +1 -0
  57. package/dist/ldap.ee/ldap.service.ee.js +26 -0
  58. package/dist/ldap.ee/ldap.service.ee.js.map +1 -1
  59. package/dist/license.d.ts +0 -1
  60. package/dist/license.js +2 -4
  61. package/dist/license.js.map +1 -1
  62. package/dist/manual-execution.service.js +6 -5
  63. package/dist/manual-execution.service.js.map +1 -1
  64. package/dist/modules/breaking-changes/breaking-changes.controller.d.ts +1 -2
  65. package/dist/modules/breaking-changes/breaking-changes.controller.js +1 -1
  66. package/dist/modules/breaking-changes/breaking-changes.controller.js.map +1 -1
  67. package/dist/modules/breaking-changes/breaking-changes.service.d.ts +3 -3
  68. package/dist/modules/breaking-changes/breaking-changes.service.js +16 -11
  69. package/dist/modules/breaking-changes/breaking-changes.service.js.map +1 -1
  70. package/dist/modules/breaking-changes/rules/index.d.ts +1 -1
  71. package/dist/modules/breaking-changes/rules/v2/binary-data-storage.rule.d.ts +9 -0
  72. package/dist/modules/breaking-changes/rules/v2/binary-data-storage.rule.js +70 -0
  73. package/dist/modules/breaking-changes/rules/v2/binary-data-storage.rule.js.map +1 -0
  74. package/dist/modules/breaking-changes/rules/v2/cli-activate-all-workflows.rule.d.ts +6 -0
  75. package/dist/modules/breaking-changes/rules/v2/cli-activate-all-workflows.rule.js +53 -0
  76. package/dist/modules/breaking-changes/rules/v2/cli-activate-all-workflows.rule.js.map +1 -0
  77. package/dist/modules/breaking-changes/rules/v2/disabled-nodes.rule.d.ts +11 -0
  78. package/dist/modules/breaking-changes/rules/v2/disabled-nodes.rule.js +64 -0
  79. package/dist/modules/breaking-changes/rules/v2/disabled-nodes.rule.js.map +1 -0
  80. package/dist/modules/breaking-changes/rules/v2/dotenv-upgrade.rule.d.ts +7 -0
  81. package/dist/modules/breaking-changes/rules/v2/dotenv-upgrade.rule.js +74 -0
  82. package/dist/modules/breaking-changes/rules/v2/dotenv-upgrade.rule.js.map +1 -0
  83. package/dist/modules/breaking-changes/rules/v2/file-access.rule.d.ts +4 -4
  84. package/dist/modules/breaking-changes/rules/v2/file-access.rule.js +3 -2
  85. package/dist/modules/breaking-changes/rules/v2/file-access.rule.js.map +1 -1
  86. package/dist/modules/breaking-changes/rules/v2/git-node-bare-repos.rule.d.ts +10 -0
  87. package/dist/modules/breaking-changes/rules/v2/git-node-bare-repos.rule.js +66 -0
  88. package/dist/modules/breaking-changes/rules/v2/git-node-bare-repos.rule.js.map +1 -0
  89. package/dist/modules/breaking-changes/rules/v2/index.d.ts +8 -2
  90. package/dist/modules/breaking-changes/rules/v2/index.js +35 -1
  91. package/dist/modules/breaking-changes/rules/v2/index.js.map +1 -1
  92. package/dist/modules/breaking-changes/rules/v2/oauth-callback-auth.rule.d.ts +6 -0
  93. package/dist/modules/breaking-changes/rules/v2/oauth-callback-auth.rule.js +51 -0
  94. package/dist/modules/breaking-changes/rules/v2/oauth-callback-auth.rule.js.map +1 -0
  95. package/dist/modules/breaking-changes/rules/v2/process-env-access.rule.js +8 -1
  96. package/dist/modules/breaking-changes/rules/v2/process-env-access.rule.js.map +1 -1
  97. package/dist/modules/breaking-changes/rules/v2/pyodide-removed.rule.d.ts +10 -0
  98. package/dist/modules/breaking-changes/rules/v2/pyodide-removed.rule.js +65 -0
  99. package/dist/modules/breaking-changes/rules/v2/pyodide-removed.rule.js.map +1 -0
  100. package/dist/modules/breaking-changes/rules/v2/queue-worker-max-stalled-count.rule.d.ts +6 -0
  101. package/dist/modules/breaking-changes/rules/v2/queue-worker-max-stalled-count.rule.js +51 -0
  102. package/dist/modules/breaking-changes/rules/v2/queue-worker-max-stalled-count.rule.js.map +1 -0
  103. package/dist/modules/breaking-changes/rules/v2/removed-database-types.rule.d.ts +9 -0
  104. package/dist/modules/breaking-changes/rules/v2/removed-database-types.rule.js +57 -0
  105. package/dist/modules/breaking-changes/rules/v2/removed-database-types.rule.js.map +1 -0
  106. package/dist/modules/breaking-changes/rules/v2/removed-nodes.rule.d.ts +3 -3
  107. package/dist/modules/breaking-changes/rules/v2/removed-nodes.rule.js +3 -2
  108. package/dist/modules/breaking-changes/rules/v2/removed-nodes.rule.js.map +1 -1
  109. package/dist/modules/breaking-changes/rules/v2/settings-file-permissions.rule.d.ts +9 -0
  110. package/dist/modules/breaking-changes/rules/v2/settings-file-permissions.rule.js +70 -0
  111. package/dist/modules/breaking-changes/rules/v2/settings-file-permissions.rule.js.map +1 -0
  112. package/dist/modules/breaking-changes/rules/v2/sqlite-legacy-driver.rule.d.ts +9 -0
  113. package/dist/modules/breaking-changes/rules/v2/sqlite-legacy-driver.rule.js +75 -0
  114. package/dist/modules/breaking-changes/rules/v2/sqlite-legacy-driver.rule.js.map +1 -0
  115. package/dist/modules/breaking-changes/rules/v2/task-runner-docker-image.rule.d.ts +6 -0
  116. package/dist/modules/breaking-changes/rules/v2/task-runner-docker-image.rule.js +57 -0
  117. package/dist/modules/breaking-changes/rules/v2/task-runner-docker-image.rule.js.map +1 -0
  118. package/dist/modules/breaking-changes/rules/v2/task-runners.rule.d.ts +9 -0
  119. package/dist/modules/breaking-changes/rules/v2/task-runners.rule.js +64 -0
  120. package/dist/modules/breaking-changes/rules/v2/task-runners.rule.js.map +1 -0
  121. package/dist/modules/breaking-changes/rules/v2/tunnel-option.rule.d.ts +6 -0
  122. package/dist/modules/breaking-changes/rules/v2/tunnel-option.rule.js +44 -0
  123. package/dist/modules/breaking-changes/rules/v2/tunnel-option.rule.js.map +1 -0
  124. package/dist/modules/breaking-changes/rules/v2/wait-node-subworkflow.rule.d.ts +12 -0
  125. package/dist/modules/breaking-changes/rules/v2/wait-node-subworkflow.rule.js +112 -0
  126. package/dist/modules/breaking-changes/rules/v2/wait-node-subworkflow.rule.js.map +1 -0
  127. package/dist/modules/breaking-changes/types/rule.types.d.ts +1 -2
  128. package/dist/modules/breaking-changes/types/rule.types.js.map +1 -1
  129. package/dist/modules/chat-hub/chat-hub-agent.entity.d.ts +2 -0
  130. package/dist/modules/chat-hub/chat-hub-agent.entity.js +4 -0
  131. package/dist/modules/chat-hub/chat-hub-agent.entity.js.map +1 -1
  132. package/dist/modules/chat-hub/chat-hub-agent.service.d.ts +3 -0
  133. package/dist/modules/chat-hub/chat-hub-agent.service.js +3 -0
  134. package/dist/modules/chat-hub/chat-hub-agent.service.js.map +1 -1
  135. package/dist/modules/chat-hub/chat-hub-session.entity.d.ts +2 -0
  136. package/dist/modules/chat-hub/chat-hub-session.entity.js +4 -0
  137. package/dist/modules/chat-hub/chat-hub-session.entity.js.map +1 -1
  138. package/dist/modules/chat-hub/chat-hub-workflow.service.d.ts +3 -2
  139. package/dist/modules/chat-hub/chat-hub-workflow.service.js +64 -30
  140. package/dist/modules/chat-hub/chat-hub-workflow.service.js.map +1 -1
  141. package/dist/modules/chat-hub/chat-hub.controller.d.ts +1 -1
  142. package/dist/modules/chat-hub/chat-hub.controller.js +2 -2
  143. package/dist/modules/chat-hub/chat-hub.controller.js.map +1 -1
  144. package/dist/modules/chat-hub/chat-hub.service.d.ts +8 -7
  145. package/dist/modules/chat-hub/chat-hub.service.js +65 -70
  146. package/dist/modules/chat-hub/chat-hub.service.js.map +1 -1
  147. package/dist/modules/chat-hub/chat-hub.types.d.ts +3 -10
  148. package/dist/modules/data-table/data-table-rows.repository.d.ts +2 -1
  149. package/dist/modules/data-table/data-table-rows.repository.js +38 -3
  150. package/dist/modules/data-table/data-table-rows.repository.js.map +1 -1
  151. package/dist/modules/data-table/data-table.service.d.ts +1 -1
  152. package/dist/modules/data-table/data-table.service.js +2 -2
  153. package/dist/modules/data-table/data-table.service.js.map +1 -1
  154. package/dist/modules/mcp/mcp.constants.d.ts +6 -0
  155. package/dist/modules/mcp/mcp.constants.js +8 -1
  156. package/dist/modules/mcp/mcp.constants.js.map +1 -1
  157. package/dist/modules/mcp/mcp.errors.d.ts +6 -0
  158. package/dist/modules/mcp/mcp.errors.js +16 -0
  159. package/dist/modules/mcp/mcp.errors.js.map +1 -0
  160. package/dist/modules/mcp/mcp.service.d.ts +5 -1
  161. package/dist/modules/mcp/mcp.service.js +11 -2
  162. package/dist/modules/mcp/mcp.service.js.map +1 -1
  163. package/dist/modules/mcp/mcp.settings.controller.js +5 -4
  164. package/dist/modules/mcp/mcp.settings.controller.js.map +1 -1
  165. package/dist/modules/mcp/mcp.types.d.ts +18 -0
  166. package/dist/modules/mcp/mcp.utils.d.ts +3 -1
  167. package/dist/modules/mcp/mcp.utils.js +7 -1
  168. package/dist/modules/mcp/mcp.utils.js.map +1 -1
  169. package/dist/modules/mcp/tools/execute-workflow.tool.d.ts +107 -0
  170. package/dist/modules/mcp/tools/execute-workflow.tool.js +308 -0
  171. package/dist/modules/mcp/tools/execute-workflow.tool.js.map +1 -0
  172. package/dist/modules/mcp/tools/get-workflow-details.tool.js +11 -5
  173. package/dist/modules/mcp/tools/get-workflow-details.tool.js.map +1 -1
  174. package/dist/modules/mcp/tools/schemas.d.ts +5 -0
  175. package/dist/modules/mcp/tools/schemas.js +1 -0
  176. package/dist/modules/mcp/tools/schemas.js.map +1 -1
  177. package/dist/modules/mcp/tools/search-workflows.tool.js +24 -8
  178. package/dist/modules/mcp/tools/search-workflows.tool.js.map +1 -1
  179. package/dist/modules/mcp/tools/webhook-utils.d.ts +2 -1
  180. package/dist/modules/mcp/tools/webhook-utils.js +68 -4
  181. package/dist/modules/mcp/tools/webhook-utils.js.map +1 -1
  182. package/dist/public-api/v1/handlers/workflows/workflows.handler.js +3 -3
  183. package/dist/public-api/v1/handlers/workflows/workflows.handler.js.map +1 -1
  184. package/dist/server.d.ts +1 -1
  185. package/dist/server.js +1 -1
  186. package/dist/server.js.map +1 -1
  187. package/dist/services/credentials-tester.service.js +1 -5
  188. package/dist/services/credentials-tester.service.js.map +1 -1
  189. package/dist/services/dynamic-node-parameters.service.js +1 -1
  190. package/dist/services/dynamic-node-parameters.service.js.map +1 -1
  191. package/dist/services/export.service.d.ts +1 -1
  192. package/dist/services/export.service.js +16 -5
  193. package/dist/services/export.service.js.map +1 -1
  194. package/dist/services/frontend.service.js +3 -11
  195. package/dist/services/frontend.service.js.map +1 -1
  196. package/dist/services/import.service.d.ts +4 -4
  197. package/dist/services/import.service.js +20 -9
  198. package/dist/services/import.service.js.map +1 -1
  199. package/dist/sso.ee/oidc/oidc.service.ee.d.ts +1 -1
  200. package/dist/sso.ee/oidc/oidc.service.ee.js +5 -0
  201. package/dist/sso.ee/oidc/oidc.service.ee.js.map +1 -1
  202. package/dist/sso.ee/oidc/routes/oidc.controller.ee.d.ts +1 -1
  203. package/dist/sso.ee/sso-helpers.d.ts +1 -0
  204. package/dist/sso.ee/sso-helpers.js +6 -0
  205. package/dist/sso.ee/sso-helpers.js.map +1 -1
  206. package/dist/task-runners/errors/task-request-timeout.error.d.ts +8 -0
  207. package/dist/task-runners/errors/task-request-timeout.error.js +19 -0
  208. package/dist/task-runners/errors/task-request-timeout.error.js.map +1 -0
  209. package/dist/task-runners/task-broker/task-broker.service.d.ts +3 -0
  210. package/dist/task-runners/task-broker/task-broker.service.js +22 -0
  211. package/dist/task-runners/task-broker/task-broker.service.js.map +1 -1
  212. package/dist/task-runners/task-managers/local-task-requester.d.ts +3 -1
  213. package/dist/task-runners/task-managers/local-task-requester.js +9 -3
  214. package/dist/task-runners/task-managers/local-task-requester.js.map +1 -1
  215. package/dist/task-runners/task-managers/task-requester.d.ts +8 -2
  216. package/dist/task-runners/task-managers/task-requester.js +34 -2
  217. package/dist/task-runners/task-managers/task-requester.js.map +1 -1
  218. package/dist/utils/circuit-breaker.d.ts +36 -0
  219. package/dist/utils/circuit-breaker.js +118 -0
  220. package/dist/utils/circuit-breaker.js.map +1 -0
  221. package/dist/utils/sliding-window.d.ts +13 -0
  222. package/dist/utils/sliding-window.js +27 -0
  223. package/dist/utils/sliding-window.js.map +1 -0
  224. package/dist/webhooks/webhook-helpers.js +5 -17
  225. package/dist/webhooks/webhook-helpers.js.map +1 -1
  226. package/dist/webhooks/webhook.service.js +26 -3
  227. package/dist/webhooks/webhook.service.js.map +1 -1
  228. package/dist/workflow-execute-additional-data.d.ts +1 -1
  229. package/dist/workflow-execute-additional-data.js +4 -13
  230. package/dist/workflow-execute-additional-data.js.map +1 -1
  231. package/dist/workflows/workflow-execution.service.js +12 -25
  232. package/dist/workflows/workflow-execution.service.js.map +1 -1
  233. package/dist/workflows/{workflow-history.ee/workflow-history-helper.ee.d.ts → workflow-history/workflow-history-helper.d.ts} +0 -2
  234. package/dist/workflows/{workflow-history.ee/workflow-history-helper.ee.js → workflow-history/workflow-history-helper.js} +1 -10
  235. package/dist/workflows/workflow-history/workflow-history-helper.js.map +1 -0
  236. package/dist/workflows/{workflow-history.ee/workflow-history-manager.ee.js → workflow-history/workflow-history-manager.js} +4 -7
  237. package/dist/workflows/workflow-history/workflow-history-manager.js.map +1 -0
  238. package/dist/workflows/{workflow-history.ee/workflow-history.controller.ee.d.ts → workflow-history/workflow-history.controller.d.ts} +1 -4
  239. package/dist/workflows/{workflow-history.ee/workflow-history.controller.ee.js → workflow-history/workflow-history.controller.js} +4 -33
  240. package/dist/workflows/workflow-history/workflow-history.controller.js.map +1 -0
  241. package/dist/workflows/{workflow-history.ee/workflow-history.service.ee.js → workflow-history/workflow-history.service.js} +18 -18
  242. package/dist/workflows/workflow-history/workflow-history.service.js.map +1 -0
  243. package/dist/workflows/workflow.service.d.ts +1 -1
  244. package/dist/workflows/workflow.service.js +15 -8
  245. package/dist/workflows/workflow.service.js.map +1 -1
  246. package/dist/workflows/workflows.controller.d.ts +1 -1
  247. package/dist/workflows/workflows.controller.js +2 -2
  248. package/dist/workflows/workflows.controller.js.map +1 -1
  249. package/package.json +15 -15
  250. package/templates/form-trigger.handlebars +2 -3
  251. package/dist/workflows/workflow-history.ee/workflow-history-helper.ee.js.map +0 -1
  252. package/dist/workflows/workflow-history.ee/workflow-history-manager.ee.js.map +0 -1
  253. package/dist/workflows/workflow-history.ee/workflow-history.controller.ee.js.map +0 -1
  254. package/dist/workflows/workflow-history.ee/workflow-history.service.ee.js.map +0 -1
  255. /package/dist/workflows/{workflow-history.ee/workflow-history-manager.ee.d.ts → workflow-history/workflow-history-manager.d.ts} +0 -0
  256. /package/dist/workflows/{workflow-history.ee/workflow-history.service.ee.d.ts → workflow-history/workflow-history.service.d.ts} +0 -0
@@ -0,0 +1,57 @@
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.TaskRunnerDockerImageRule = void 0;
10
+ const di_1 = require("@n8n/di");
11
+ let TaskRunnerDockerImageRule = class TaskRunnerDockerImageRule {
12
+ constructor() {
13
+ this.id = 'task-runner-docker-image-v2';
14
+ }
15
+ getMetadata() {
16
+ return {
17
+ version: 'v2',
18
+ title: 'Remove task runner from n8nio/n8n docker image',
19
+ description: 'Task runners are no longer included in the n8nio/n8n docker image and must use the separate n8nio/runners image',
20
+ category: "infrastructure",
21
+ severity: 'medium',
22
+ documentationUrl: 'https://docs.n8n.io/2-0-breaking-changes/#remove-task-runner-from-n8nion8n-docker-image',
23
+ };
24
+ }
25
+ async detect() {
26
+ const result = {
27
+ isAffected: true,
28
+ instanceIssues: [
29
+ {
30
+ title: 'Task runner removed from main Docker image',
31
+ description: 'The task runner is no longer bundled with the n8nio/n8n Docker image. If you are using task runners in Docker, you must use the separate n8nio/runners image.',
32
+ level: 'warning',
33
+ },
34
+ ],
35
+ recommendations: [
36
+ {
37
+ action: 'Update Docker configuration',
38
+ description: 'Change the task runner Docker image from n8nio/n8n to n8nio/runners in your docker-compose.yml or Kubernetes configuration',
39
+ },
40
+ {
41
+ action: 'Configure external task runners',
42
+ description: 'Set up external task runners using the n8nio/runners image and configure n8n to connect to them using N8N_RUNNERS_MODE=external',
43
+ },
44
+ {
45
+ action: 'Review task runner documentation',
46
+ description: 'Consult the updated task runner documentation for migration steps and configuration examples',
47
+ },
48
+ ],
49
+ };
50
+ return result;
51
+ }
52
+ };
53
+ exports.TaskRunnerDockerImageRule = TaskRunnerDockerImageRule;
54
+ exports.TaskRunnerDockerImageRule = TaskRunnerDockerImageRule = __decorate([
55
+ (0, di_1.Service)()
56
+ ], TaskRunnerDockerImageRule);
57
+ //# sourceMappingURL=task-runner-docker-image.rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-runner-docker-image.rule.js","sourceRoot":"","sources":["../../../../../src/modules/breaking-changes/rules/v2/task-runner-docker-image.rule.ts"],"names":[],"mappings":";;;;;;;;;AAAA,gCAAkC;AAU3B,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IAA/B;QACN,OAAE,GAAW,6BAA6B,CAAC;IA+C5C,CAAC;IA7CA,WAAW;QACV,OAAO;YACN,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,gDAAgD;YACvD,WAAW,EACV,iHAAiH;YAClH,QAAQ,kBAAuC;YAC/C,QAAQ,EAAE,QAAQ;YAClB,gBAAgB,EACf,yFAAyF;SAC1F,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM;QACX,MAAM,MAAM,GAA4B;YACvC,UAAU,EAAE,IAAI;YAChB,cAAc,EAAE;gBACf;oBACC,KAAK,EAAE,4CAA4C;oBACnD,WAAW,EACV,+JAA+J;oBAChK,KAAK,EAAE,SAAS;iBAChB;aACD;YACD,eAAe,EAAE;gBAChB;oBACC,MAAM,EAAE,6BAA6B;oBACrC,WAAW,EACV,4HAA4H;iBAC7H;gBACD;oBACC,MAAM,EAAE,iCAAiC;oBACzC,WAAW,EACV,iIAAiI;iBAClI;gBACD;oBACC,MAAM,EAAE,kCAAkC;oBAC1C,WAAW,EACV,8FAA8F;iBAC/F;aACD;SACD,CAAC;QAEF,OAAO,MAAM,CAAC;IACf,CAAC;CACD,CAAA;AAhDY,8DAAyB;oCAAzB,yBAAyB;IADrC,IAAA,YAAO,GAAE;GACG,yBAAyB,CAgDrC"}
@@ -0,0 +1,9 @@
1
+ import { TaskRunnersConfig } from '@n8n/config';
2
+ import type { BreakingChangeRuleMetadata, IBreakingChangeInstanceRule, InstanceDetectionReport } from '../../types';
3
+ export declare class TaskRunnersRule implements IBreakingChangeInstanceRule {
4
+ private readonly taskRunnersConfig;
5
+ constructor(taskRunnersConfig: TaskRunnersConfig);
6
+ id: string;
7
+ getMetadata(): BreakingChangeRuleMetadata;
8
+ detect(): Promise<InstanceDetectionReport>;
9
+ }
@@ -0,0 +1,64 @@
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.TaskRunnersRule = void 0;
13
+ const config_1 = require("@n8n/config");
14
+ const di_1 = require("@n8n/di");
15
+ let TaskRunnersRule = class TaskRunnersRule {
16
+ constructor(taskRunnersConfig) {
17
+ this.taskRunnersConfig = taskRunnersConfig;
18
+ this.id = 'task-runners-v2';
19
+ }
20
+ getMetadata() {
21
+ return {
22
+ version: 'v2',
23
+ title: 'Enable Task Runners by default',
24
+ description: 'Task Runners are now enabled by default, changing execution model and resource usage',
25
+ category: "infrastructure",
26
+ severity: 'medium',
27
+ documentationUrl: 'https://docs.n8n.io/2-0-breaking-changes/#enable-task-runners-by-default',
28
+ };
29
+ }
30
+ async detect() {
31
+ const result = {
32
+ isAffected: false,
33
+ instanceIssues: [],
34
+ recommendations: [],
35
+ };
36
+ if (!this.taskRunnersConfig.enabled) {
37
+ result.isAffected = true;
38
+ result.instanceIssues.push({
39
+ title: 'Task Runners will be enabled by default',
40
+ description: 'Task Runners change the execution model to use separate processes for workflow execution. This may affect memory footprint and execution latency. N8N_RUNNERS_MAX_CONCURRENCY will default to 5 (previously 10).',
41
+ level: 'warning',
42
+ });
43
+ result.recommendations.push({
44
+ action: 'Review concurrency settings',
45
+ description: 'Keep concurrency at 5 or raise back to 10 with N8N_RUNNERS_MAX_CONCURRENCY if your environment permits',
46
+ });
47
+ result.recommendations.push({
48
+ action: 'Configure runner memory limits',
49
+ description: 'Set N8N_RUNNERS_MAX_OLD_SPACE_SIZE to limit runner memory usage as needed for your infrastructure',
50
+ });
51
+ result.recommendations.push({
52
+ action: 'Consider external task runners',
53
+ description: 'For better scalability, consider migrating to external task runner mode',
54
+ });
55
+ }
56
+ return result;
57
+ }
58
+ };
59
+ exports.TaskRunnersRule = TaskRunnersRule;
60
+ exports.TaskRunnersRule = TaskRunnersRule = __decorate([
61
+ (0, di_1.Service)(),
62
+ __metadata("design:paramtypes", [config_1.TaskRunnersConfig])
63
+ ], TaskRunnersRule);
64
+ //# sourceMappingURL=task-runners.rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-runners.rule.js","sourceRoot":"","sources":["../../../../../src/modules/breaking-changes/rules/v2/task-runners.rule.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAAgD;AAChD,gCAAkC;AAU3B,IAAM,eAAe,GAArB,MAAM,eAAe;IAC3B,YAA6B,iBAAoC;QAApC,sBAAiB,GAAjB,iBAAiB,CAAmB;QAEjE,OAAE,GAAW,iBAAiB,CAAC;IAFqC,CAAC;IAIrE,WAAW;QACV,OAAO;YACN,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,gCAAgC;YACvC,WAAW,EACV,sFAAsF;YACvF,QAAQ,kBAAuC;YAC/C,QAAQ,EAAE,QAAQ;YAClB,gBAAgB,EAAE,0EAA0E;SAC5F,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM;QACX,MAAM,MAAM,GAA4B;YACvC,UAAU,EAAE,KAAK;YACjB,cAAc,EAAE,EAAE;YAClB,eAAe,EAAE,EAAE;SACnB,CAAC;QAIF,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;YACrC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;YACzB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC;gBAC1B,KAAK,EAAE,yCAAyC;gBAChD,WAAW,EACV,kNAAkN;gBACnN,KAAK,EAAE,SAAS;aAChB,CAAC,CAAC;YAEH,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC3B,MAAM,EAAE,6BAA6B;gBACrC,WAAW,EACV,wGAAwG;aACzG,CAAC,CAAC;YAEH,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC3B,MAAM,EAAE,gCAAgC;gBACxC,WAAW,EACV,mGAAmG;aACpG,CAAC,CAAC;YAEH,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC3B,MAAM,EAAE,gCAAgC;gBACxC,WAAW,EAAE,yEAAyE;aACtF,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;CACD,CAAA;AAvDY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,YAAO,GAAE;qCAEuC,0BAAiB;GADrD,eAAe,CAuD3B"}
@@ -0,0 +1,6 @@
1
+ import type { BreakingChangeRuleMetadata, IBreakingChangeInstanceRule, InstanceDetectionReport } from '../../types';
2
+ export declare class TunnelOptionRule implements IBreakingChangeInstanceRule {
3
+ id: string;
4
+ getMetadata(): BreakingChangeRuleMetadata;
5
+ detect(): Promise<InstanceDetectionReport>;
6
+ }
@@ -0,0 +1,44 @@
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.TunnelOptionRule = void 0;
10
+ const di_1 = require("@n8n/di");
11
+ let TunnelOptionRule = class TunnelOptionRule {
12
+ constructor() {
13
+ this.id = 'tunnel-option-v2';
14
+ }
15
+ getMetadata() {
16
+ return {
17
+ version: 'v2',
18
+ title: 'Remove n8n --tunnel option',
19
+ description: 'The --tunnel CLI option has been removed and will be ignored',
20
+ category: "instance",
21
+ severity: 'low',
22
+ documentationUrl: 'https://docs.n8n.io/2-0-breaking-changes/#remove-n8n-tunnel-option',
23
+ };
24
+ }
25
+ async detect() {
26
+ const result = {
27
+ isAffected: true,
28
+ instanceIssues: [
29
+ {
30
+ title: '--tunnel option removed',
31
+ description: 'The --tunnel CLI option is no longer available. If you were using this feature, calls with the --tunnel flag will ignore the flag and not run the tunnel system.',
32
+ level: 'info',
33
+ },
34
+ ],
35
+ recommendations: [],
36
+ };
37
+ return result;
38
+ }
39
+ };
40
+ exports.TunnelOptionRule = TunnelOptionRule;
41
+ exports.TunnelOptionRule = TunnelOptionRule = __decorate([
42
+ (0, di_1.Service)()
43
+ ], TunnelOptionRule);
44
+ //# sourceMappingURL=tunnel-option.rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tunnel-option.rule.js","sourceRoot":"","sources":["../../../../../src/modules/breaking-changes/rules/v2/tunnel-option.rule.ts"],"names":[],"mappings":";;;;;;;;;AAAA,gCAAkC;AAU3B,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAAtB;QACN,OAAE,GAAW,kBAAkB,CAAC;IA6BjC,CAAC;IA3BA,WAAW;QACV,OAAO;YACN,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,4BAA4B;YACnC,WAAW,EAAE,8DAA8D;YAC3E,QAAQ,YAAiC;YACzC,QAAQ,EAAE,KAAK;YACf,gBAAgB,EAAE,oEAAoE;SACtF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM;QACX,MAAM,MAAM,GAA4B;YACvC,UAAU,EAAE,IAAI;YAChB,cAAc,EAAE;gBACf;oBACC,KAAK,EAAE,yBAAyB;oBAChC,WAAW,EACV,kKAAkK;oBACnK,KAAK,EAAE,MAAM;iBACb;aACD;YACD,eAAe,EAAE,EAAE;SACnB,CAAC;QAEF,OAAO,MAAM,CAAC;IACf,CAAC;CACD,CAAA;AA9BY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,YAAO,GAAE;GACG,gBAAgB,CA8B5B"}
@@ -0,0 +1,12 @@
1
+ import type { BreakingChangeAffectedWorkflow, BreakingChangeRecommendation } from '@n8n/api-types';
2
+ import type { WorkflowEntity } from '@n8n/db';
3
+ import type { INode } from 'n8n-workflow';
4
+ import type { BreakingChangeRuleMetadata, IBreakingChangeWorkflowRule, WorkflowDetectionReport } from '../../types';
5
+ export declare class WaitNodeSubworkflowRule implements IBreakingChangeWorkflowRule {
6
+ id: string;
7
+ private readonly waitingNodeConfig;
8
+ getMetadata(): BreakingChangeRuleMetadata;
9
+ getRecommendations(_workflowResults: BreakingChangeAffectedWorkflow[]): Promise<BreakingChangeRecommendation[]>;
10
+ private hasWaitingOperation;
11
+ detectWorkflow(_workflow: WorkflowEntity, nodesGroupedByType: Map<string, INode[]>): Promise<WorkflowDetectionReport>;
12
+ }
@@ -0,0 +1,112 @@
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.WaitNodeSubworkflowRule = void 0;
10
+ const di_1 = require("@n8n/di");
11
+ const n8n_workflow_1 = require("n8n-workflow");
12
+ let WaitNodeSubworkflowRule = class WaitNodeSubworkflowRule {
13
+ constructor() {
14
+ this.id = 'wait-node-subworkflow-v2';
15
+ this.waitingNodeConfig = [
16
+ {
17
+ nodeTypes: [
18
+ 'n8n-nodes-base.wait',
19
+ 'n8n-nodes-base.form',
20
+ '@n8n/n8n-nodes-langchain.chat',
21
+ 'n8n-nodes-base.respondToWebhook',
22
+ ],
23
+ },
24
+ {
25
+ nodeTypes: [
26
+ 'n8n-nodes-base.slack',
27
+ 'n8n-nodes-base.telegram',
28
+ 'n8n-nodes-base.googleChat',
29
+ 'n8n-nodes-base.gmail',
30
+ 'n8n-nodes-base.emailSend',
31
+ 'n8n-nodes-base.whatsApp',
32
+ 'n8n-nodes-base.microsoftTeams',
33
+ 'n8n-nodes-base.microsoftOutlook',
34
+ 'n8n-nodes-base.discord',
35
+ ],
36
+ operation: n8n_workflow_1.SEND_AND_WAIT_OPERATION,
37
+ },
38
+ {
39
+ nodeTypes: ['n8n-nodes-base.github'],
40
+ operation: 'dispatchAndWait',
41
+ },
42
+ ];
43
+ }
44
+ getMetadata() {
45
+ return {
46
+ version: 'v2',
47
+ title: 'Waiting node behavior change in sub-workflows',
48
+ description: 'Waiting nodes (Wait, Form, and HITL nodes) in sub-workflows now return data from the last node instead of the node before the waiting node',
49
+ category: "workflow",
50
+ severity: 'medium',
51
+ documentationUrl: 'https://docs.n8n.io/2-0-breaking-changes/#return-expected-sub-workflow-data-when-it-contains-a-wait-node',
52
+ };
53
+ }
54
+ async getRecommendations(_workflowResults) {
55
+ return [
56
+ {
57
+ action: 'Review sub-workflow output handling',
58
+ description: 'Check workflows that use Execute Workflow node to call sub-workflows containing waiting nodes (Wait, Form, or HITL nodes). The output data structure may have changed.',
59
+ },
60
+ {
61
+ action: 'Update downstream logic',
62
+ description: 'Adjust any logic in parent workflows that depends on the data returned from sub-workflows with waiting nodes, as it now returns the last node data instead of the node before the waiting node.',
63
+ },
64
+ {
65
+ action: 'Test affected workflows',
66
+ description: 'Test all workflows with Execute Workflow nodes calling sub-workflows that contain waiting nodes to ensure the new behavior works as expected.',
67
+ },
68
+ ];
69
+ }
70
+ hasWaitingOperation(node, requiredOperation) {
71
+ const operation = node.parameters.operation;
72
+ return operation === requiredOperation;
73
+ }
74
+ async detectWorkflow(_workflow, nodesGroupedByType) {
75
+ const foundWaitingNodes = [];
76
+ for (const { nodeTypes, operation } of this.waitingNodeConfig) {
77
+ for (const nodeType of nodeTypes) {
78
+ const nodes = nodesGroupedByType.get(nodeType) ?? [];
79
+ const waitingNodes = operation
80
+ ? nodes.filter((node) => this.hasWaitingOperation(node, operation))
81
+ : nodes;
82
+ for (const node of waitingNodes) {
83
+ const nodeTypeName = nodeType.split('.').pop() ?? nodeType;
84
+ foundWaitingNodes.push({ node, nodeTypeName });
85
+ }
86
+ }
87
+ }
88
+ if (foundWaitingNodes.length === 0) {
89
+ return { isAffected: false, issues: [] };
90
+ }
91
+ const executeWorkflowTriggerNodes = nodesGroupedByType.get('n8n-nodes-base.executeWorkflowTrigger') ?? [];
92
+ if (executeWorkflowTriggerNodes.length === 0) {
93
+ return { isAffected: false, issues: [] };
94
+ }
95
+ const issues = foundWaitingNodes.map(({ node, nodeTypeName }) => ({
96
+ title: 'Sub-workflow with waiting node has changed output behavior',
97
+ description: `This workflow is a sub-workflow (contains Execute Workflow Trigger) with a waiting node (${nodeTypeName}). The data returned to the parent workflow from sub-workflows containing waiting nodes has changed. Previously, the child workflow returned data from the node before the waiting node. Now they return data from the last node in the workflow.`,
98
+ level: 'warning',
99
+ nodeId: node.id,
100
+ nodeName: node.name,
101
+ }));
102
+ return {
103
+ isAffected: true,
104
+ issues,
105
+ };
106
+ }
107
+ };
108
+ exports.WaitNodeSubworkflowRule = WaitNodeSubworkflowRule;
109
+ exports.WaitNodeSubworkflowRule = WaitNodeSubworkflowRule = __decorate([
110
+ (0, di_1.Service)()
111
+ ], WaitNodeSubworkflowRule);
112
+ //# sourceMappingURL=wait-node-subworkflow.rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wait-node-subworkflow.rule.js","sourceRoot":"","sources":["../../../../../src/modules/breaking-changes/rules/v2/wait-node-subworkflow.rule.ts"],"names":[],"mappings":";;;;;;;;;AAEA,gCAAkC;AAElC,+CAAuD;AAUhD,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAA7B;QACN,OAAE,GAAW,0BAA0B,CAAC;QAGvB,sBAAiB,GAAuD;YACxF;gBAEC,SAAS,EAAE;oBACV,qBAAqB;oBACrB,qBAAqB;oBACrB,+BAA+B;oBAC/B,iCAAiC;iBACjC;aACD;YACD;gBAEC,SAAS,EAAE;oBACV,sBAAsB;oBACtB,yBAAyB;oBACzB,2BAA2B;oBAC3B,sBAAsB;oBACtB,0BAA0B;oBAC1B,yBAAyB;oBACzB,+BAA+B;oBAC/B,iCAAiC;oBACjC,wBAAwB;iBACxB;gBACD,SAAS,EAAE,sCAAuB;aAClC;YACD;gBAEC,SAAS,EAAE,CAAC,uBAAuB,CAAC;gBACpC,SAAS,EAAE,iBAAiB;aAC5B;SACD,CAAC;IAgGH,CAAC;IA9FA,WAAW;QACV,OAAO;YACN,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,+CAA+C;YACtD,WAAW,EACV,4IAA4I;YAC7I,QAAQ,YAAiC;YACzC,QAAQ,EAAE,QAAQ;YAClB,gBAAgB,EACf,0GAA0G;SAC3G,CAAC;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB,CACvB,gBAAkD;QAElD,OAAO;YACN;gBACC,MAAM,EAAE,qCAAqC;gBAC7C,WAAW,EACV,wKAAwK;aACzK;YACD;gBACC,MAAM,EAAE,yBAAyB;gBACjC,WAAW,EACV,iMAAiM;aAClM;YACD;gBACC,MAAM,EAAE,yBAAyB;gBACjC,WAAW,EACV,+IAA+I;aAChJ;SACD,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,IAAW,EAAE,iBAAyB;QACjE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAC5C,OAAO,SAAS,KAAK,iBAAiB,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,cAAc,CACnB,SAAyB,EACzB,kBAAwC;QAGxC,MAAM,iBAAiB,GAAiD,EAAE,CAAC;QAG3E,KAAK,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC/D,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBAClC,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAIrD,MAAM,YAAY,GAAG,SAAS;oBAC7B,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;oBACnE,CAAC,CAAC,KAAK,CAAC;gBAET,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;oBACjC,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC;oBAC3D,iBAAiB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;gBAChD,CAAC;YACF,CAAC;QACF,CAAC;QAED,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QAC1C,CAAC;QAGD,MAAM,2BAA2B,GAChC,kBAAkB,CAAC,GAAG,CAAC,uCAAuC,CAAC,IAAI,EAAE,CAAC;QAEvE,IAAI,2BAA2B,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QAC1C,CAAC;QAMD,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;YACjE,KAAK,EAAE,4DAA4D;YACnE,WAAW,EAAE,4FAA4F,YAAY,mPAAmP;YACxW,KAAK,EAAE,SAAkB;YACzB,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,QAAQ,EAAE,IAAI,CAAC,IAAI;SACnB,CAAC,CAAC,CAAC;QAEJ,OAAO;YACN,UAAU,EAAE,IAAI;YAChB,MAAM;SACN,CAAC;IACH,CAAC;CACD,CAAA;AAlIY,0DAAuB;kCAAvB,uBAAuB;IADnC,IAAA,YAAO,GAAE;GACG,uBAAuB,CAkInC"}
@@ -1,4 +1,4 @@
1
- import type { BreakingChangeAffectedWorkflow, BreakingChangeRecommendation, BreakingChangeRuleSeverity } from '@n8n/api-types';
1
+ import type { BreakingChangeAffectedWorkflow, BreakingChangeRecommendation, BreakingChangeRuleSeverity, BreakingChangeVersion } from '@n8n/api-types';
2
2
  import type { WorkflowEntity } from '@n8n/db';
3
3
  import type { INode } from 'n8n-workflow';
4
4
  import type { InstanceDetectionReport, WorkflowDetectionReport } from './detection.types';
@@ -9,7 +9,6 @@ export declare const enum BreakingChangeCategory {
9
9
  database = "database",
10
10
  infrastructure = "infrastructure"
11
11
  }
12
- export type BreakingChangeVersion = 'v2';
13
12
  export interface BreakingChangeRuleMetadata {
14
13
  version: BreakingChangeVersion;
15
14
  title: string;
@@ -1 +1 @@
1
- {"version":3,"file":"rule.types.js","sourceRoot":"","sources":["../../../../src/modules/breaking-changes/types/rule.types.ts"],"names":[],"mappings":";;;AAUA,IAAkB,sBAMjB;AAND,WAAkB,sBAAsB;IACvC,+CAAqB,CAAA;IACrB,+CAAqB,CAAA;IACrB,qDAA2B,CAAA;IAC3B,+CAAqB,CAAA;IACrB,2DAAiC,CAAA;AAClC,CAAC,EANiB,sBAAsB,sCAAtB,sBAAsB,QAMvC"}
1
+ {"version":3,"file":"rule.types.js","sourceRoot":"","sources":["../../../../src/modules/breaking-changes/types/rule.types.ts"],"names":[],"mappings":";;;AAWA,IAAkB,sBAMjB;AAND,WAAkB,sBAAsB;IACvC,+CAAqB,CAAA;IACrB,+CAAqB,CAAA;IACrB,qDAA2B,CAAA;IAC3B,+CAAqB,CAAA;IACrB,2DAAiC,CAAA;AAClC,CAAC,EANiB,sBAAsB,sCAAtB,sBAAsB,QAMvC"}
@@ -1,5 +1,6 @@
1
1
  import { ChatHubProvider } from '@n8n/api-types';
2
2
  import { WithTimestamps, User, CredentialsEntity } from '@n8n/db';
3
+ import { INode } from 'n8n-workflow';
3
4
  export declare class ChatHubAgent extends WithTimestamps {
4
5
  id: string;
5
6
  name: string;
@@ -11,4 +12,5 @@ export declare class ChatHubAgent extends WithTimestamps {
11
12
  credential?: CredentialsEntity | null;
12
13
  provider: ChatHubProvider;
13
14
  model: string;
15
+ tools: INode[];
14
16
  }
@@ -57,6 +57,10 @@ __decorate([
57
57
  (0, typeorm_1.Column)({ type: 'varchar', length: 64, nullable: true }),
58
58
  __metadata("design:type", String)
59
59
  ], ChatHubAgent.prototype, "model", void 0);
60
+ __decorate([
61
+ (0, db_1.JsonColumn)({ default: '[]' }),
62
+ __metadata("design:type", Array)
63
+ ], ChatHubAgent.prototype, "tools", void 0);
60
64
  exports.ChatHubAgent = ChatHubAgent = __decorate([
61
65
  (0, typeorm_1.Entity)({ name: 'chat_hub_agents' })
62
66
  ], ChatHubAgent);
@@ -1 +1 @@
1
- {"version":3,"file":"chat-hub-agent.entity.js","sourceRoot":"","sources":["../../../src/modules/chat-hub/chat-hub-agent.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,gCAAkE;AAClE,0CAA6F;AAGtF,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,mBAAc;CA2D/C,CAAA;AA3DY,oCAAY;AAExB;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;wCACpB;AAMX;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;0CAC5B;AAMb;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDAC9B;AAM3B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;kDACJ;AAMrB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;6CACT;AAOhB;IAFC,IAAA,mBAAS,EAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAC1C,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;8BACxB,SAAI;2CAAC;AAMb;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDAC5B;AAO5B;IAFC,IAAA,mBAAS,EAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACxE,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;;gDACC;AAMtC;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CAC9B;AAM1B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CAC1C;uBA1DF,YAAY;IADxB,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;GACvB,YAAY,CA2DxB"}
1
+ {"version":3,"file":"chat-hub-agent.entity.js","sourceRoot":"","sources":["../../../src/modules/chat-hub/chat-hub-agent.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,gCAA8E;AAC9E,0CAA6F;AAItF,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,mBAAc;CAiE/C,CAAA;AAjEY,oCAAY;AAExB;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;wCACpB;AAMX;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;0CAC5B;AAMb;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDAC9B;AAM3B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;kDACJ;AAMrB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;6CACT;AAOhB;IAFC,IAAA,mBAAS,EAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAC1C,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;8BACxB,SAAI;2CAAC;AAMb;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDAC5B;AAO5B;IAFC,IAAA,mBAAS,EAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACxE,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;;gDACC;AAMtC;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CAC9B;AAM1B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CAC1C;AAMd;IADC,IAAA,eAAU,EAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;2CACf;uBAhEH,YAAY;IADxB,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;GACvB,YAAY,CAiExB"}
@@ -4,6 +4,7 @@ import type { User } from '@n8n/db';
4
4
  import type { ChatHubAgent } from './chat-hub-agent.entity';
5
5
  import { ChatHubAgentRepository } from './chat-hub-agent.repository';
6
6
  import { ChatHubCredentialsService } from './chat-hub-credentials.service';
7
+ import { INode } from 'n8n-workflow';
7
8
  export declare class ChatHubAgentService {
8
9
  private readonly logger;
9
10
  private readonly chatAgentRepository;
@@ -19,6 +20,7 @@ export declare class ChatHubAgentService {
19
20
  credentialId: string;
20
21
  provider: ChatHubAgent['provider'];
21
22
  model: string;
23
+ tools: INode[];
22
24
  }): Promise<ChatHubAgent>;
23
25
  updateAgent(id: string, user: User, updates: {
24
26
  name?: string;
@@ -27,6 +29,7 @@ export declare class ChatHubAgentService {
27
29
  credentialId?: string;
28
30
  provider?: string;
29
31
  model?: string;
32
+ tools?: INode[];
30
33
  }): Promise<ChatHubAgent>;
31
34
  deleteAgent(id: string, userId: string): Promise<void>;
32
35
  }
@@ -59,6 +59,7 @@ let ChatHubAgentService = class ChatHubAgentService {
59
59
  credentialId: data.credentialId,
60
60
  provider: data.provider,
61
61
  model: data.model,
62
+ tools: data.tools,
62
63
  });
63
64
  this.logger.info(`Chat agent created: ${id} by user ${user.id}`);
64
65
  return agent;
@@ -84,6 +85,8 @@ let ChatHubAgentService = class ChatHubAgentService {
84
85
  updateData.provider = updates.provider;
85
86
  if (updates.model !== undefined)
86
87
  updateData.model = updates.model ?? null;
88
+ if (updates.tools !== undefined)
89
+ updateData.tools = updates.tools;
87
90
  const agent = await this.chatAgentRepository.updateAgent(id, updateData);
88
91
  this.logger.info(`Chat agent updated: ${id} by user ${user.id}`);
89
92
  return agent;
@@ -1 +1 @@
1
- {"version":3,"file":"chat-hub-agent.service.js","sourceRoot":"","sources":["../../../src/modules/chat-hub/chat-hub-agent.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-hub-agent.service.js","sourceRoot":"","sources":["../../../src/modules/chat-hub/chat-hub-agent.service.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { ChatHubProvider } from '@n8n/api-types';
2
2
  import { WithTimestamps, User, CredentialsEntity, WorkflowEntity } from '@n8n/db';
3
3
  import { type Relation } from '@n8n/typeorm';
4
+ import type { INode } from 'n8n-workflow';
4
5
  import type { ChatHubMessage } from './chat-hub-message.entity';
5
6
  export declare class ChatHubSession extends WithTimestamps {
6
7
  id: string;
@@ -17,4 +18,5 @@ export declare class ChatHubSession extends WithTimestamps {
17
18
  agentId: string | null;
18
19
  agentName: string | null;
19
20
  messages?: Array<Relation<ChatHubMessage>>;
21
+ tools: INode[];
20
22
  }
@@ -74,6 +74,10 @@ __decorate([
74
74
  (0, typeorm_1.OneToMany)('ChatHubMessage', 'session'),
75
75
  __metadata("design:type", Array)
76
76
  ], ChatHubSession.prototype, "messages", void 0);
77
+ __decorate([
78
+ (0, db_1.JsonColumn)({ default: '[]' }),
79
+ __metadata("design:type", Array)
80
+ ], ChatHubSession.prototype, "tools", void 0);
77
81
  exports.ChatHubSession = ChatHubSession = __decorate([
78
82
  (0, typeorm_1.Entity)({ name: 'chat_hub_sessions' })
79
83
  ], ChatHubSession);
@@ -1 +1 @@
1
- {"version":3,"file":"chat-hub-session.entity.js","sourceRoot":"","sources":["../../../src/modules/chat-hub/chat-hub-session.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,gCAAkG;AAClG,0CAQsB;AAKf,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,mBAAc;CAyFjD,CAAA;AAzFY,wCAAc;AAE1B;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;0CACpB;AAOX;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;6CAC3B;AAMd;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;+CACT;AAOhB;IAFC,IAAA,mBAAS,EAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAC1C,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;6CACT;AAOvB;IADC,IAAA,mBAAc,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACR;AAM3B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDAC5B;AAO5B;IAFC,IAAA,mBAAS,EAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACxE,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;;kDACW;AAMhD;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACvB;AAMjC;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACnC;AAMrB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDAC9B;AAO1B;IAFC,IAAA,mBAAS,EAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACrE,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;;gDACQ;AAO3C;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACjC;AAQvB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDAChC;AAMzB;IADC,IAAA,mBAAS,EAAC,gBAAgB,EAAE,SAAS,CAAC;8BAC5B,KAAK;gDAA2B;yBAxF/B,cAAc;IAD1B,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;GACzB,cAAc,CAyF1B"}
1
+ {"version":3,"file":"chat-hub-session.entity.js","sourceRoot":"","sources":["../../../src/modules/chat-hub/chat-hub-session.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,gCAOiB;AACjB,0CAQsB;AAMf,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,mBAAc;CA+FjD,CAAA;AA/FY,wCAAc;AAE1B;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;0CACpB;AAOX;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;6CAC3B;AAMd;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;+CACT;AAOhB;IAFC,IAAA,mBAAS,EAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAC1C,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;6CACT;AAOvB;IADC,IAAA,mBAAc,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACR;AAM3B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDAC5B;AAO5B;IAFC,IAAA,mBAAS,EAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACxE,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;;kDACW;AAMhD;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACvB;AAMjC;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACnC;AAMrB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDAC9B;AAO1B;IAFC,IAAA,mBAAS,EAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACrE,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;;gDACQ;AAO3C;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACjC;AAQvB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDAChC;AAMzB;IADC,IAAA,mBAAS,EAAC,gBAAgB,EAAE,SAAS,CAAC;8BAC5B,KAAK;gDAA2B;AAM3C;IADC,IAAA,eAAU,EAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;6CACf;yBA9FH,cAAc;IAD1B,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;GACzB,cAAc,CA+F1B"}
@@ -2,14 +2,14 @@ import { ChatHubConversationModel, ChatSessionId } from '@n8n/api-types';
2
2
  import { Logger } from '@n8n/backend-common';
3
3
  import { SharedWorkflowRepository, WorkflowRepository } from '@n8n/db';
4
4
  import { EntityManager } from '@n8n/typeorm';
5
- import { INodeCredentials, IRunExecutionData, IWorkflowBase } from 'n8n-workflow';
5
+ import { INode, INodeCredentials, IRunExecutionData, IWorkflowBase } from 'n8n-workflow';
6
6
  import { ChatHubMessage } from './chat-hub-message.entity';
7
7
  export declare class ChatHubWorkflowService {
8
8
  private readonly logger;
9
9
  private readonly workflowRepository;
10
10
  private readonly sharedWorkflowRepository;
11
11
  constructor(logger: Logger, workflowRepository: WorkflowRepository, sharedWorkflowRepository: SharedWorkflowRepository);
12
- createChatWorkflow(userId: string, sessionId: ChatSessionId, projectId: string, history: ChatHubMessage[], humanMessage: string, credentials: INodeCredentials, model: ChatHubConversationModel, systemMessage?: string, trx?: EntityManager): Promise<{
12
+ createChatWorkflow(userId: string, sessionId: ChatSessionId, projectId: string, history: ChatHubMessage[], humanMessage: string, credentials: INodeCredentials, model: ChatHubConversationModel, systemMessage: string | undefined, tools: INode[], trx?: EntityManager): Promise<{
13
13
  workflowData: IWorkflowBase;
14
14
  executionData: IRunExecutionData;
15
15
  }>;
@@ -17,6 +17,7 @@ export declare class ChatHubWorkflowService {
17
17
  workflowData: IWorkflowBase;
18
18
  executionData: IRunExecutionData;
19
19
  }>;
20
+ private getUniqueNodeName;
20
21
  private buildChatWorkflow;
21
22
  private buildTitleGenerationWorkflow;
22
23
  private buildChatTriggerNode;