n8n 2.13.2 → 2.14.1

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 (276) hide show
  1. package/dist/build.tsbuildinfo +1 -1
  2. package/dist/chat/chat-execution-manager.js +8 -2
  3. package/dist/chat/chat-execution-manager.js.map +1 -1
  4. package/dist/chat/utils.d.ts +3 -2
  5. package/dist/chat/utils.js +71 -1
  6. package/dist/chat/utils.js.map +1 -1
  7. package/dist/commands/start.d.ts +1 -0
  8. package/dist/commands/start.js +18 -2
  9. package/dist/commands/start.js.map +1 -1
  10. package/dist/controllers/api-keys.controller.d.ts +4 -8
  11. package/dist/controllers/api-keys.controller.js +6 -23
  12. package/dist/controllers/api-keys.controller.js.map +1 -1
  13. package/dist/controllers/auth.controller.js +5 -1
  14. package/dist/controllers/auth.controller.js.map +1 -1
  15. package/dist/controllers/binary-data.controller.js +9 -3
  16. package/dist/controllers/binary-data.controller.js.map +1 -1
  17. package/dist/controllers/invitation.controller.d.ts +0 -1
  18. package/dist/controllers/invitation.controller.js +1 -32
  19. package/dist/controllers/invitation.controller.js.map +1 -1
  20. package/dist/controllers/oauth/oauth2-credential.controller.js +14 -13
  21. package/dist/controllers/oauth/oauth2-credential.controller.js.map +1 -1
  22. package/dist/controllers/project.controller.js +2 -1
  23. package/dist/controllers/project.controller.js.map +1 -1
  24. package/dist/controllers/users.controller.js +1 -5
  25. package/dist/controllers/users.controller.js.map +1 -1
  26. package/dist/credentials/credential-dependency.service.d.ts +36 -0
  27. package/dist/credentials/credential-dependency.service.js +77 -0
  28. package/dist/credentials/credential-dependency.service.js.map +1 -0
  29. package/dist/credentials/credentials-finder.service.d.ts +1 -0
  30. package/dist/credentials/credentials-finder.service.js +35 -0
  31. package/dist/credentials/credentials-finder.service.js.map +1 -1
  32. package/dist/credentials/credentials.controller.js +6 -2
  33. package/dist/credentials/credentials.controller.js.map +1 -1
  34. package/dist/credentials/credentials.service.d.ts +14 -13
  35. package/dist/credentials/credentials.service.js +86 -52
  36. package/dist/credentials/credentials.service.js.map +1 -1
  37. package/dist/credentials/external-secrets.utils.d.ts +4 -0
  38. package/dist/credentials/external-secrets.utils.js +51 -0
  39. package/dist/credentials/external-secrets.utils.js.map +1 -0
  40. package/dist/credentials/validation.d.ts +0 -2
  41. package/dist/credentials/validation.js +5 -32
  42. package/dist/credentials/validation.js.map +1 -1
  43. package/dist/errors/response-errors/scope-forbidden.error.d.ts +11 -0
  44. package/dist/errors/response-errors/scope-forbidden.error.js +13 -0
  45. package/dist/errors/response-errors/scope-forbidden.error.js.map +1 -0
  46. package/dist/evaluation.ee/test-runner/test-runner.service.ee.js +2 -0
  47. package/dist/evaluation.ee/test-runner/test-runner.service.ee.js.map +1 -1
  48. package/dist/evaluation.ee/test-runs.controller.ee.d.ts +2 -1
  49. package/dist/evaluation.ee/test-runs.controller.ee.js +13 -13
  50. package/dist/evaluation.ee/test-runs.controller.ee.js.map +1 -1
  51. package/dist/eventbus/message-event-bus/message-event-bus.d.ts +1 -2
  52. package/dist/eventbus/message-event-bus/message-event-bus.js +8 -8
  53. package/dist/eventbus/message-event-bus/message-event-bus.js.map +1 -1
  54. package/dist/events/maps/relay.event-map.d.ts +1 -0
  55. package/dist/events/relays/telemetry.event-relay.js +3 -2
  56. package/dist/events/relays/telemetry.event-relay.js.map +1 -1
  57. package/dist/execution-lifecycle/execution-lifecycle-hooks.js +90 -9
  58. package/dist/execution-lifecycle/execution-lifecycle-hooks.js.map +1 -1
  59. package/dist/executions/execution-redaction.d.ts +2 -1
  60. package/dist/executions/execution.service.d.ts +11 -2
  61. package/dist/executions/execution.service.js +19 -1
  62. package/dist/executions/execution.service.js.map +1 -1
  63. package/dist/executions/execution.types.d.ts +3 -0
  64. package/dist/executions/executions.controller.d.ts +5 -0
  65. package/dist/executions/executions.controller.js +13 -0
  66. package/dist/executions/executions.controller.js.map +1 -1
  67. package/dist/executions/pre-execution-checks/credentials-permission-checker.js +4 -0
  68. package/dist/executions/pre-execution-checks/credentials-permission-checker.js.map +1 -1
  69. package/dist/license.d.ts +0 -1
  70. package/dist/license.js +0 -3
  71. package/dist/license.js.map +1 -1
  72. package/dist/load-nodes-and-credentials.js +4 -0
  73. package/dist/load-nodes-and-credentials.js.map +1 -1
  74. package/dist/modules/chat-hub/chat-hub-title.service.d.ts +3 -1
  75. package/dist/modules/chat-hub/chat-hub-title.service.js +9 -3
  76. package/dist/modules/chat-hub/chat-hub-title.service.js.map +1 -1
  77. package/dist/modules/chat-hub/chat-hub-tool.service.d.ts +3 -1
  78. package/dist/modules/chat-hub/chat-hub-tool.service.js +13 -3
  79. package/dist/modules/chat-hub/chat-hub-tool.service.js.map +1 -1
  80. package/dist/modules/chat-hub/chat-hub-workflow.service.d.ts +5 -5
  81. package/dist/modules/chat-hub/chat-hub-workflow.service.js +18 -13
  82. package/dist/modules/chat-hub/chat-hub-workflow.service.js.map +1 -1
  83. package/dist/modules/chat-hub/chat-hub.module.d.ts +2 -0
  84. package/dist/modules/chat-hub/chat-hub.settings.controller.d.ts +6 -0
  85. package/dist/modules/data-table/csv-parser.service.d.ts +12 -1
  86. package/dist/modules/data-table/csv-parser.service.js +81 -74
  87. package/dist/modules/data-table/csv-parser.service.js.map +1 -1
  88. package/dist/modules/data-table/data-table-csv-import.service.d.ts +21 -0
  89. package/dist/modules/data-table/data-table-csv-import.service.js +123 -0
  90. package/dist/modules/data-table/data-table-csv-import.service.js.map +1 -0
  91. package/dist/modules/data-table/data-table-rows.repository.js +3 -1
  92. package/dist/modules/data-table/data-table-rows.repository.js.map +1 -1
  93. package/dist/modules/data-table/data-table.controller.d.ts +7 -1
  94. package/dist/modules/data-table/data-table.controller.js +36 -0
  95. package/dist/modules/data-table/data-table.controller.js.map +1 -1
  96. package/dist/modules/data-table/data-table.service.d.ts +7 -6
  97. package/dist/modules/data-table/data-table.service.js +24 -47
  98. package/dist/modules/data-table/data-table.service.js.map +1 -1
  99. package/dist/modules/data-table/utils/sql-utils.js +2 -3
  100. package/dist/modules/data-table/utils/sql-utils.js.map +1 -1
  101. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-introspection-identifier.js +15 -3
  102. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-introspection-identifier.js.map +1 -1
  103. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-userinfo-identifier.js +13 -1
  104. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-userinfo-identifier.js.map +1 -1
  105. package/dist/modules/dynamic-credentials.ee/credential-resolvers.controller.d.ts +2 -1
  106. package/dist/modules/dynamic-credentials.ee/credential-resolvers.controller.js +32 -2
  107. package/dist/modules/dynamic-credentials.ee/credential-resolvers.controller.js.map +1 -1
  108. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.module.d.ts +5 -0
  109. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.module.js +7 -0
  110. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.module.js.map +1 -1
  111. package/dist/modules/dynamic-credentials.ee/services/credential-check-proxy.service.d.ts +14 -0
  112. package/dist/modules/dynamic-credentials.ee/services/credential-check-proxy.service.js +77 -0
  113. package/dist/modules/dynamic-credentials.ee/services/credential-check-proxy.service.js.map +1 -0
  114. package/dist/modules/dynamic-credentials.ee/services/credential-resolver.service.d.ts +9 -2
  115. package/dist/modules/dynamic-credentials.ee/services/credential-resolver.service.js +34 -3
  116. package/dist/modules/dynamic-credentials.ee/services/credential-resolver.service.js.map +1 -1
  117. package/dist/modules/dynamic-credentials.ee/services/index.d.ts +1 -0
  118. package/dist/modules/dynamic-credentials.ee/services/index.js +1 -0
  119. package/dist/modules/dynamic-credentials.ee/services/index.js.map +1 -1
  120. package/dist/modules/external-secrets.ee/providers/vault.d.ts +3 -0
  121. package/dist/modules/external-secrets.ee/providers/vault.js +77 -29
  122. package/dist/modules/external-secrets.ee/providers/vault.js.map +1 -1
  123. package/dist/modules/external-secrets.ee/secrets-providers-connections.service.ee.d.ts +4 -2
  124. package/dist/modules/external-secrets.ee/secrets-providers-connections.service.ee.js +28 -6
  125. package/dist/modules/external-secrets.ee/secrets-providers-connections.service.ee.js.map +1 -1
  126. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-webhook.ee.d.ts +3 -0
  127. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-webhook.ee.js +35 -25
  128. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-webhook.ee.js.map +1 -1
  129. package/dist/modules/log-streaming.ee/log-streaming-destination.service.js +2 -2
  130. package/dist/modules/log-streaming.ee/log-streaming-destination.service.js.map +1 -1
  131. package/dist/modules/mcp/mcp-oauth-service.d.ts +5 -1
  132. package/dist/modules/mcp/mcp-oauth-service.js +36 -18
  133. package/dist/modules/mcp/mcp-oauth-service.js.map +1 -1
  134. package/dist/modules/mcp/mcp.oauth.controller.js +15 -0
  135. package/dist/modules/mcp/mcp.oauth.controller.js.map +1 -1
  136. package/dist/modules/mcp/mcp.service.d.ts +3 -2
  137. package/dist/modules/mcp/mcp.service.js +11 -10
  138. package/dist/modules/mcp/mcp.service.js.map +1 -1
  139. package/dist/modules/mcp/tools/get-execution.tool.d.ts +9 -0
  140. package/dist/modules/mcp/tools/get-execution.tool.js +95 -20
  141. package/dist/modules/mcp/tools/get-execution.tool.js.map +1 -1
  142. package/dist/modules/mcp/tools/search-folders.tool.d.ts +12 -0
  143. package/dist/modules/mcp/tools/search-folders.tool.js +107 -0
  144. package/dist/modules/mcp/tools/search-folders.tool.js.map +1 -0
  145. package/dist/modules/mcp/tools/search-projects.tool.d.ts +11 -0
  146. package/dist/modules/mcp/tools/search-projects.tool.js +93 -0
  147. package/dist/modules/mcp/tools/search-projects.tool.js.map +1 -0
  148. package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.d.ts +1 -0
  149. package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.js +25 -12
  150. package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.js.map +1 -1
  151. package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.js +9 -7
  152. package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.js.map +1 -1
  153. package/dist/modules/provisioning.ee/claims-context.builder.d.ts +4 -0
  154. package/dist/modules/provisioning.ee/claims-context.builder.js +31 -0
  155. package/dist/modules/provisioning.ee/claims-context.builder.js.map +1 -0
  156. package/dist/modules/provisioning.ee/role-resolver-types.d.ts +35 -0
  157. package/dist/modules/provisioning.ee/role-resolver-types.js +3 -0
  158. package/dist/modules/provisioning.ee/role-resolver-types.js.map +1 -0
  159. package/dist/modules/provisioning.ee/role-resolver.service.ee.d.ts +13 -0
  160. package/dist/modules/provisioning.ee/role-resolver.service.ee.js +103 -0
  161. package/dist/modules/provisioning.ee/role-resolver.service.ee.js.map +1 -0
  162. package/dist/modules/redaction/executions/execution-redaction.interfaces.d.ts +3 -0
  163. package/dist/modules/redaction/executions/execution-redaction.service.d.ts +1 -0
  164. package/dist/modules/redaction/executions/execution-redaction.service.js +42 -10
  165. package/dist/modules/redaction/executions/execution-redaction.service.js.map +1 -1
  166. package/dist/modules/redaction/executions/strategies/full-item-redaction.strategy.d.ts +1 -0
  167. package/dist/modules/redaction/executions/strategies/full-item-redaction.strategy.js +8 -1
  168. package/dist/modules/redaction/executions/strategies/full-item-redaction.strategy.js.map +1 -1
  169. package/dist/modules/redaction/executions/strategies/node-defined-field-redaction.strategy.d.ts +4 -1
  170. package/dist/modules/redaction/executions/strategies/node-defined-field-redaction.strategy.js +52 -16
  171. package/dist/modules/redaction/executions/strategies/node-defined-field-redaction.strategy.js.map +1 -1
  172. package/dist/modules/sso-oidc/oidc.service.ee.js +6 -5
  173. package/dist/modules/sso-oidc/oidc.service.ee.js.map +1 -1
  174. package/dist/modules/sso-saml/saml.controller.ee.d.ts +32 -1
  175. package/dist/modules/sso-saml/saml.controller.ee.js +9 -1
  176. package/dist/modules/sso-saml/saml.controller.ee.js.map +1 -1
  177. package/dist/modules/sso-saml/saml.service.ee.d.ts +9 -2
  178. package/dist/modules/sso-saml/saml.service.ee.js +110 -8
  179. package/dist/modules/sso-saml/saml.service.ee.js.map +1 -1
  180. package/dist/modules/workflow-index/workflow-dependency-query.service.d.ts +25 -0
  181. package/dist/modules/workflow-index/workflow-dependency-query.service.js +220 -0
  182. package/dist/modules/workflow-index/workflow-dependency-query.service.js.map +1 -0
  183. package/dist/modules/workflow-index/workflow-dependency.controller.d.ts +12 -0
  184. package/dist/modules/workflow-index/workflow-dependency.controller.js +60 -0
  185. package/dist/modules/workflow-index/workflow-dependency.controller.js.map +1 -0
  186. package/dist/public-api/v1/handlers/audit/audit.handler.d.ts +1 -4
  187. package/dist/public-api/v1/handlers/credentials/credentials.handler.d.ts +8 -11
  188. package/dist/public-api/v1/handlers/data-tables/data-tables.handler.d.ts +8 -8
  189. package/dist/public-api/v1/handlers/data-tables/data-tables.rows.handler.d.ts +10 -10
  190. package/dist/public-api/v1/handlers/discover/discover.handler.d.ts +10 -0
  191. package/dist/public-api/v1/handlers/discover/discover.handler.js +37 -0
  192. package/dist/public-api/v1/handlers/discover/discover.handler.js.map +1 -0
  193. package/dist/public-api/v1/handlers/discover/discover.service.d.ts +30 -0
  194. package/dist/public-api/v1/handlers/discover/discover.service.js +166 -0
  195. package/dist/public-api/v1/handlers/discover/discover.service.js.map +1 -0
  196. package/dist/public-api/v1/handlers/executions/executions.handler.d.ts +8 -8
  197. package/dist/public-api/v1/handlers/projects/projects.handler.d.ts +8 -32
  198. package/dist/public-api/v1/handlers/source-control/source-control.handler.d.ts +1 -4
  199. package/dist/public-api/v1/handlers/tags/tags.handler.d.ts +5 -20
  200. package/dist/public-api/v1/handlers/users/users.handler.ee.d.ts +5 -20
  201. package/dist/public-api/v1/handlers/variables/variables.handler.d.ts +4 -16
  202. package/dist/public-api/v1/handlers/variables/variables.handler.js +6 -19
  203. package/dist/public-api/v1/handlers/variables/variables.handler.js.map +1 -1
  204. package/dist/public-api/v1/handlers/workflows/workflows.handler.d.ts +20 -20
  205. package/dist/public-api/v1/handlers/workflows/workflows.handler.js +5 -2
  206. package/dist/public-api/v1/handlers/workflows/workflows.handler.js.map +1 -1
  207. package/dist/public-api/v1/openapi.yml +122 -0
  208. package/dist/public-api/v1/shared/middlewares/global.middleware.d.ts +5 -6
  209. package/dist/public-api/v1/shared/middlewares/global.middleware.js +8 -14
  210. package/dist/public-api/v1/shared/middlewares/global.middleware.js.map +1 -1
  211. package/dist/public-api/v1/shared/services/pagination.service.d.ts +7 -0
  212. package/dist/public-api/v1/shared/services/pagination.service.js +11 -0
  213. package/dist/public-api/v1/shared/services/pagination.service.js.map +1 -1
  214. package/dist/scaling/job-processor.js +10 -0
  215. package/dist/scaling/job-processor.js.map +1 -1
  216. package/dist/scaling/scaling.types.d.ts +2 -0
  217. package/dist/server.d.ts +1 -0
  218. package/dist/server.js +1 -0
  219. package/dist/server.js.map +1 -1
  220. package/dist/services/credentials-tester.service.js +2 -2
  221. package/dist/services/credentials-tester.service.js.map +1 -1
  222. package/dist/services/frontend.service.js +1 -3
  223. package/dist/services/frontend.service.js.map +1 -1
  224. package/dist/services/import.service.d.ts +1 -1
  225. package/dist/services/import.service.js +3 -3
  226. package/dist/services/import.service.js.map +1 -1
  227. package/dist/services/project.service.ee.d.ts +4 -0
  228. package/dist/services/project.service.ee.js +27 -0
  229. package/dist/services/project.service.ee.js.map +1 -1
  230. package/dist/services/public-api-key.service.js +1 -0
  231. package/dist/services/public-api-key.service.js.map +1 -1
  232. package/dist/services/user.service.d.ts +2 -11
  233. package/dist/services/user.service.js +11 -75
  234. package/dist/services/user.service.js.map +1 -1
  235. package/dist/task-runners/task-broker/task-broker.service.js +8 -0
  236. package/dist/task-runners/task-broker/task-broker.service.js.map +1 -1
  237. package/dist/task-runners/task-managers/data-request-response-builder.js +1 -0
  238. package/dist/task-runners/task-managers/data-request-response-builder.js.map +1 -1
  239. package/dist/task-runners/task-managers/data-request-response-stripper.js +1 -0
  240. package/dist/task-runners/task-managers/data-request-response-stripper.js.map +1 -1
  241. package/dist/task-runners/task-managers/local-task-requester.js +3 -1
  242. package/dist/task-runners/task-managers/local-task-requester.js.map +1 -1
  243. package/dist/task-runners/task-managers/task-requester.d.ts +1 -1
  244. package/dist/task-runners/task-managers/task-requester.js.map +1 -1
  245. package/dist/telemetry/index.d.ts +19 -0
  246. package/dist/telemetry/index.js +35 -0
  247. package/dist/telemetry/index.js.map +1 -1
  248. package/dist/user-management/email/node-mailer.d.ts +1 -0
  249. package/dist/user-management/email/node-mailer.js +23 -1
  250. package/dist/user-management/email/node-mailer.js.map +1 -1
  251. package/dist/webhooks/waiting-forms.d.ts +1 -1
  252. package/dist/webhooks/waiting-forms.js +32 -35
  253. package/dist/webhooks/waiting-forms.js.map +1 -1
  254. package/dist/webhooks/waiting-webhooks.d.ts +11 -3
  255. package/dist/webhooks/waiting-webhooks.js +47 -32
  256. package/dist/webhooks/waiting-webhooks.js.map +1 -1
  257. package/dist/webhooks/webhook-helpers.js +6 -1
  258. package/dist/webhooks/webhook-helpers.js.map +1 -1
  259. package/dist/webhooks/webhook.service.js +2 -5
  260. package/dist/webhooks/webhook.service.js.map +1 -1
  261. package/dist/workflow-helpers.d.ts +3 -2
  262. package/dist/workflow-helpers.js +18 -9
  263. package/dist/workflow-helpers.js.map +1 -1
  264. package/dist/workflow-runner.js +10 -2
  265. package/dist/workflow-runner.js.map +1 -1
  266. package/dist/workflows/workflow-creation.service.js +6 -6
  267. package/dist/workflows/workflow-creation.service.js.map +1 -1
  268. package/dist/workflows/workflow-execution.service.d.ts +3 -1
  269. package/dist/workflows/workflow-execution.service.js +16 -4
  270. package/dist/workflows/workflow-execution.service.js.map +1 -1
  271. package/dist/workflows/workflow.service.js +3 -1
  272. package/dist/workflows/workflow.service.js.map +1 -1
  273. package/package.json +22 -21
  274. package/templates/form-invalid-token.handlebars +131 -0
  275. package/templates/form-trigger-completion.handlebars +24 -3
  276. package/templates/form-trigger.handlebars +24 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n",
3
- "version": "2.13.2",
3
+ "version": "2.14.1",
4
4
  "description": "n8n Workflow Automation Tool",
5
5
  "main": "dist/index",
6
6
  "types": "dist/index.d.ts",
@@ -57,15 +57,16 @@
57
57
  "mjml": "^4.15.3",
58
58
  "openapi-types": "^12.1.3",
59
59
  "ts-essentials": "^7.0.3",
60
- "@n8n/backend-test-utils": "1.13.0",
61
60
  "n8n-containers": "1.0.0",
62
- "@n8n/typescript-config": "1.3.0"
61
+ "@n8n/typescript-config": "1.3.0",
62
+ "@n8n/backend-test-utils": "1.14.1"
63
63
  },
64
64
  "dependencies": {
65
65
  "@aws-sdk/client-secrets-manager": "3.808.0",
66
66
  "@azure/identity": "4.13.0",
67
67
  "@azure/keyvault-secrets": "4.8.0",
68
68
  "@1password/connect": "1.4.2",
69
+ "@apidevtools/json-schema-ref-parser": "12.0.2",
69
70
  "@google-cloud/secret-manager": "5.6.0",
70
71
  "@modelcontextprotocol/sdk": "1.26.0",
71
72
  "@n8n/typeorm": "0.3.20-16",
@@ -143,28 +144,28 @@
143
144
  "yamljs": "0.3.0",
144
145
  "yargs-parser": "21.1.1",
145
146
  "zod": "3.25.67",
146
- "@n8n/ai-workflow-builder": "1.13.0",
147
- "@n8n/chat-hub": "1.6.0",
148
- "@n8n/backend-common": "1.13.0",
149
- "@n8n/client-oauth2": "1.0.0",
150
- "@n8n/ai-utilities": "0.7.0",
151
- "@n8n/config": "2.12.0",
152
- "@n8n/api-types": "1.13.0",
147
+ "@n8n/ai-workflow-builder": "1.14.1",
148
+ "@n8n/backend-common": "1.14.1",
149
+ "@n8n/api-types": "1.14.1",
150
+ "@n8n/ai-utilities": "0.8.1",
151
+ "@n8n/client-oauth2": "1.1.0",
152
+ "@n8n/chat-hub": "1.7.1",
153
+ "@n8n/config": "2.13.1",
153
154
  "@n8n/constants": "0.19.0",
154
- "@n8n/decorators": "1.13.0",
155
- "@n8n/errors": "0.6.0",
155
+ "@n8n/db": "1.14.1",
156
+ "@n8n/decorators": "1.14.1",
156
157
  "@n8n/di": "0.10.0",
157
- "@n8n/n8n-nodes-langchain": "2.13.0",
158
- "@n8n/db": "1.13.0",
159
- "@n8n/task-runner": "2.13.0",
158
+ "@n8n/errors": "0.6.0",
159
+ "@n8n/n8n-nodes-langchain": "2.14.1",
160
+ "@n8n/permissions": "0.54.0",
161
+ "@n8n/task-runner": "2.14.1",
160
162
  "@n8n/syslog-client": "1.2.0",
161
163
  "@n8n/utils": "1.26.0",
162
- "@n8n/permissions": "0.54.0",
163
- "@n8n/workflow-sdk": "0.6.0",
164
- "n8n-core": "2.13.0",
165
- "n8n-nodes-base": "2.13.0",
166
- "n8n-editor-ui": "2.13.2",
167
- "n8n-workflow": "2.13.0"
164
+ "@n8n/workflow-sdk": "0.7.1",
165
+ "n8n-core": "2.14.1",
166
+ "n8n-editor-ui": "2.14.1",
167
+ "n8n-workflow": "2.14.1",
168
+ "n8n-nodes-base": "2.14.1"
168
169
  },
169
170
  "license": "SEE LICENSE IN LICENSE.md",
170
171
  "homepage": "https://n8n.io",
@@ -0,0 +1,131 @@
1
+ <!DOCTYPE html>
2
+ <html lang='en'>
3
+
4
+ <head>
5
+ <meta charset='UTF-8' />
6
+ <meta name='viewport' content='width=device-width, initial-scale=1.0' />
7
+ <link rel='icon' type='image/png' href='https://n8n.io/favicon.ico' />
8
+ <link href='https://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css' />
9
+ <title>Invalid Form Link</title>
10
+ <style>
11
+ :root {
12
+ /* Fonts */
13
+ --font-family: 'Open Sans', sans-serif;
14
+ --font-weight-normal: 400;
15
+ --font-weight-bold: 600;
16
+ --font-size-body: 12px;
17
+ --font-size-link: 12px;
18
+ --font-size-header: 20px;
19
+ --font-size-subheader: 14px;
20
+
21
+ /* Colors */
22
+ --color-background: #FBFCFE;
23
+ --color-card-bg: white;
24
+ --color-card-border: #DBDFE7;
25
+ --color-card-shadow: #634DFF0F;
26
+ --color-link: #7E8186;
27
+ --color-header: #525356;
28
+ --color-header-subtext: #7E8186;
29
+
30
+ /* Spacing & dimensions */
31
+ --padding-container-top: 24px;
32
+ --container-width: 448px;
33
+ --card-padding: 24px;
34
+ --card-border-radius: 8px;
35
+ --card-margin-bottom: 16px;
36
+ }
37
+
38
+ *,
39
+ ::after,
40
+ ::before {
41
+ box-sizing: border-box;
42
+ margin: 0;
43
+ padding: 0;
44
+ }
45
+
46
+ body {
47
+ font-family: var(--font-family);
48
+ font-weight: var(--font-weight-normal);
49
+ font-size: var(--font-size-body);
50
+ display: flex;
51
+ flex-direction: column;
52
+ justify-content: start;
53
+ background-color: var(--color-background);
54
+ }
55
+
56
+ .container {
57
+ margin: auto;
58
+ text-align: center;
59
+ padding-top: var(--padding-container-top);
60
+ width: var(--container-width);
61
+ }
62
+
63
+ .card {
64
+ padding: var(--card-padding);
65
+ background-color: var(--color-card-bg);
66
+ border: 1px solid var(--color-card-border);
67
+ border-radius: var(--card-border-radius);
68
+ box-shadow: 0px 4px 16px 0px var(--color-card-shadow);
69
+ margin-bottom: var(--card-margin-bottom);
70
+ }
71
+
72
+ .n8n-link a {
73
+ color: var(--color-link);
74
+ font-weight: var(--font-weight-bold);
75
+ font-size: var(--font-size-link);
76
+ text-decoration: none;
77
+ }
78
+
79
+ .n8n-link svg {
80
+ display: inline-block;
81
+ vertical-align: middle;
82
+ }
83
+
84
+ .header h1 {
85
+ color: var(--color-header);
86
+ font-size: var(--font-size-header);
87
+ font-weight: var(--font-weight-normal);
88
+ padding-bottom: 8px;
89
+ }
90
+
91
+ .header p {
92
+ color: var(--color-header-subtext);
93
+ font-size: var(--font-size-subheader);
94
+ font-weight: var(--font-weight-normal);
95
+ }
96
+ </style>
97
+ </head>
98
+
99
+ <body>
100
+ <div class='container'>
101
+ <section>
102
+ <div class='card'>
103
+ <div class='header'>
104
+ <h1>Invalid Form Link</h1>
105
+ <p>This form link is invalid or has expired. Please request a new link.</p>
106
+ </div>
107
+ </div>
108
+ <div class='n8n-link'>
109
+ <a href='https://n8n.io/?utm_source=n8n-internal&amp;utm_medium=form-trigger&amp' target='_blank' rel='noopener noreferrer'>
110
+ Form automated with
111
+ <svg width='73' height='20' viewBox='0 0 73 20' fill='none' xmlns='http://www.w3.org/2000/svg'>
112
+ <path fill-rule='evenodd' clip-rule='evenodd'
113
+ d='M40.2373 4C40.2373 6.20915 38.4464 8 36.2373 8C34.3735 8 32.8074 6.72525 32.3633 5H26.7787C25.801 5 24.9666 5.70685 24.8059 6.6712L24.6415 7.6576C24.4854 8.59415 24.0116 9.40925 23.3417 10C24.0116 10.5907 24.4854 11.4058 24.6415 12.3424L24.8059 13.3288C24.9666 14.2931 25.801 15 26.7787 15H28.3633C28.8074 13.2747 30.3735 12 32.2373 12C34.4464 12 36.2373 13.7908 36.2373 16C36.2373 18.2092 34.4464 20 32.2373 20C30.3735 20 28.8074 18.7253 28.3633 17H26.7787C24.8233 17 23.1546 15.5864 22.8331 13.6576L22.6687 12.6712C22.508 11.7069 21.6736 11 20.6959 11H19.0645C18.5652 12.64 17.0406 13.8334 15.2373 13.8334C13.434 13.8334 11.9094 12.64 11.4101 11H9.06449C8.56519 12.64 7.04059 13.8334 5.2373 13.8334C3.02817 13.8334 1.2373 12.0424 1.2373 9.83335C1.2373 7.6242 3.02817 5.83335 5.2373 5.83335C7.16069 5.83335 8.76699 7.19085 9.15039 9H11.3242C11.7076 7.19085 13.3139 5.83335 15.2373 5.83335C17.1607 5.83335 18.767 7.19085 19.1504 9H20.6959C21.6736 9 22.508 8.29315 22.6687 7.3288L22.8331 6.3424C23.1546 4.41365 24.8233 3 26.7787 3H32.3633C32.8074 1.27478 34.3735 0 36.2373 0C38.4464 0 40.2373 1.79086 40.2373 4ZM38.2373 4C38.2373 5.10455 37.3419 6 36.2373 6C35.1327 6 34.2373 5.10455 34.2373 4C34.2373 2.89543 35.1327 2 36.2373 2C37.3419 2 38.2373 2.89543 38.2373 4ZM5.2373 11.8334C6.34189 11.8334 7.23729 10.9379 7.23729 9.83335C7.23729 8.72875 6.34189 7.83335 5.2373 7.83335C4.13273 7.83335 3.2373 8.72875 3.2373 9.83335C3.2373 10.9379 4.13273 11.8334 5.2373 11.8334ZM15.2373 11.8334C16.3419 11.8334 17.2373 10.9379 17.2373 9.83335C17.2373 8.72875 16.3419 7.83335 15.2373 7.83335C14.1327 7.83335 13.2373 8.72875 13.2373 9.83335C13.2373 10.9379 14.1327 11.8334 15.2373 11.8334ZM32.2373 18C33.3419 18 34.2373 17.1045 34.2373 16C34.2373 14.8954 33.3419 14 32.2373 14C31.1327 14 30.2373 14.8954 30.2373 16C30.2373 17.1045 31.1327 18 32.2373 18Z'
114
+ fill='#EA4B71'></path>
115
+ <path
116
+ d='M44.2393 15.0007H46.3277V10.5791C46.3277 9.12704 47.2088 8.49074 48.204 8.49074C49.183 8.49074 49.9498 9.14334 49.9498 10.4812V15.0007H52.038V10.057C52.038 7.91969 50.798 6.67969 48.8567 6.67969C47.633 6.67969 46.9477 7.16914 46.4582 7.80544H46.3277L46.1482 6.84284H44.2393V15.0007Z'
117
+ fill='#101330'></path>
118
+ <path
119
+ d='M60.0318 9.50205V9.40415C60.7498 9.0452 61.4678 8.4252 61.4678 7.20155C61.4678 5.43945 60.0153 4.37891 58.0088 4.37891C55.9528 4.37891 54.4843 5.5047 54.4843 7.23415C54.4843 8.4089 55.1698 9.0452 55.9203 9.40415V9.50205C55.0883 9.79575 54.0928 10.6768 54.0928 12.1452C54.0928 13.9237 55.5613 15.1637 57.9923 15.1637C60.4233 15.1637 61.8428 13.9237 61.8428 12.1452C61.8428 10.6768 60.8638 9.81205 60.0318 9.50205ZM57.9923 5.87995C58.8083 5.87995 59.4118 6.40205 59.4118 7.2831C59.4118 8.16415 58.7918 8.6863 57.9923 8.6863C57.1928 8.6863 56.5238 8.16415 56.5238 7.2831C56.5238 6.38575 57.1603 5.87995 57.9923 5.87995ZM57.9923 13.5974C57.0458 13.5974 56.2793 12.9937 56.2793 11.9658C56.2793 11.0358 56.9153 10.3342 57.9758 10.3342C59.0203 10.3342 59.6568 11.0195 59.6568 11.9984C59.6568 12.9937 58.9223 13.5974 57.9923 13.5974Z'
120
+ fill='#101330'></path>
121
+ <path
122
+ d='M63.9639 15.0007H66.0524V10.5791C66.0524 9.12704 66.9334 8.49074 67.9289 8.49074C68.9079 8.49074 69.6744 9.14334 69.6744 10.4812V15.0007H71.7629V10.057C71.7629 7.91969 70.5229 6.67969 68.5814 6.67969C67.3579 6.67969 66.6724 7.16914 66.1829 7.80544H66.0524L65.8729 6.84284H63.9639V15.0007Z'
123
+ fill='#101330'></path>
124
+ </svg>
125
+ </a>
126
+ </div>
127
+ </section>
128
+ </div>
129
+ </body>
130
+
131
+ </html>
@@ -158,17 +158,32 @@
158
158
  <a id='redirectUrl' href='{{redirectUrl}}' style='display: none;'></a>
159
159
  {{/if}}
160
160
  <script>
161
+ // Get signature from URL for fetch requests
162
+ const url = new URL(window.location.href);
163
+ const formSignature = url.searchParams.get('signature');
164
+
161
165
  let interval = 1000;
162
166
  let timeoutId;
163
167
  const checkExecutionStatus = async () => {
164
168
  if (!interval) return;
165
169
 
166
170
  try {
167
- const response = await fetch(`${ window.location.href }/n8n-execution-status`);
171
+ const statusUrl = new URL(window.location.href);
172
+ statusUrl.pathname = statusUrl.pathname + '/n8n-execution-status';
173
+ // Include signature in fetch request for validation
174
+ if (formSignature) {
175
+ statusUrl.searchParams.set('signature', formSignature);
176
+ }
177
+ const response = await fetch(statusUrl.toString());
168
178
  const text = (await response.text()).trim();
169
179
 
170
180
  if (text === "form-waiting") {
171
- window.location.replace(window.location.href);
181
+ // Redirect with signature in URL (will be cleaned after load)
182
+ const redirectUrl = new URL(window.location.href);
183
+ if (formSignature) {
184
+ redirectUrl.searchParams.set('signature', formSignature);
185
+ }
186
+ window.location.replace(redirectUrl.toString());
172
187
  return;
173
188
  }
174
189
 
@@ -210,7 +225,13 @@
210
225
  }
211
226
  });
212
227
 
213
- fetch('', {
228
+ // Include signature in POST URL for waiting forms
229
+ let postUrl = '';
230
+ if (window.location.href.includes('form-waiting') && formSignature) {
231
+ postUrl = '?signature=' + encodeURIComponent(formSignature);
232
+ }
233
+
234
+ fetch(postUrl, {
214
235
  method: 'POST',
215
236
  body: {}
216
237
  })
@@ -692,6 +692,10 @@
692
692
  </section>
693
693
  </div>
694
694
  <script>
695
+ // Get signature from URL for fetch requests
696
+ const url = new URL(window.location.href);
697
+ let formSignature = url.searchParams.get('signature');
698
+
695
699
  function updateError(errorElement, action = 'add', message = '') {
696
700
  if(action === 'add') {
697
701
  errorElement.textContent = message;
@@ -898,11 +902,23 @@
898
902
  if (!interval) return;
899
903
 
900
904
  try {
901
- const response = await fetch(`${formWaitingUrl ?? window.location.href}/n8n-execution-status`);
905
+ const baseUrl = formWaitingUrl ?? window.location.href;
906
+ const url = new URL(baseUrl);
907
+ url.pathname = url.pathname + '/n8n-execution-status';
908
+ // Include signature in fetch request for validation
909
+ if (formSignature) {
910
+ url.searchParams.set('signature', formSignature);
911
+ }
912
+ const response = await fetch(url.toString());
902
913
  const text = (await response.text()).trim();
903
914
 
904
915
  if (text === "form-waiting") {
905
- window.location.replace(formWaitingUrl ?? window.location.href);
916
+ // Redirect to form page with signature in URL (will be cleaned after load)
917
+ const redirectUrl = new URL(formWaitingUrl ?? window.location.href);
918
+ if (formSignature) {
919
+ redirectUrl.searchParams.set('signature', formSignature);
920
+ }
921
+ window.location.replace(redirectUrl.toString());
906
922
  return;
907
923
  }
908
924
 
@@ -991,6 +1007,9 @@
991
1007
  let postUrl = '';
992
1008
  if (!window.location.href.includes('form-waiting')) {
993
1009
  postUrl = window.location.search;
1010
+ } else if (formSignature) {
1011
+ // For waiting forms, include signature in POST URL since it was cleaned from address bar
1012
+ postUrl = '?signature=' + encodeURIComponent(formSignature);
994
1013
  }
995
1014
 
996
1015
  const authToken = '{{{ authToken }}}';
@@ -1017,6 +1036,9 @@
1017
1036
 
1018
1037
  if(json?.formWaitingUrl) {
1019
1038
  formWaitingUrl = json.formWaitingUrl;
1039
+ // Extract signature from URL for subsequent requests
1040
+ const waitingUrl = new URL(json.formWaitingUrl);
1041
+ formSignature = waitingUrl.searchParams.get('signature');
1020
1042
  clearTimeout(timeoutId);
1021
1043
  timeoutId = setTimeout(checkExecutionStatus, interval);
1022
1044
  return;