n8n 2.18.4 → 2.19.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 (374) hide show
  1. package/dist/abstract-server.d.ts +0 -1
  2. package/dist/abstract-server.js +11 -10
  3. package/dist/abstract-server.js.map +1 -1
  4. package/dist/active-executions.js +1 -0
  5. package/dist/active-executions.js.map +1 -1
  6. package/dist/build.tsbuildinfo +1 -1
  7. package/dist/collaboration/collaboration.service.d.ts +3 -1
  8. package/dist/collaboration/collaboration.service.js +19 -0
  9. package/dist/collaboration/collaboration.service.js.map +1 -1
  10. package/dist/commands/base-command.js +7 -1
  11. package/dist/commands/base-command.js.map +1 -1
  12. package/dist/commands/export/credentials.d.ts +5 -0
  13. package/dist/commands/export/credentials.js +21 -5
  14. package/dist/commands/export/credentials.js.map +1 -1
  15. package/dist/commands/export/workflow.d.ts +4 -0
  16. package/dist/commands/export/workflow.js +17 -5
  17. package/dist/commands/export/workflow.js.map +1 -1
  18. package/dist/controller.registry.js +3 -0
  19. package/dist/controller.registry.js.map +1 -1
  20. package/dist/controllers/e2e.controller.d.ts +35 -2
  21. package/dist/controllers/e2e.controller.js +129 -2
  22. package/dist/controllers/e2e.controller.js.map +1 -1
  23. package/dist/controllers/folder.controller.js +1 -1
  24. package/dist/controllers/folder.controller.js.map +1 -1
  25. package/dist/controllers/me.controller.js +3 -2
  26. package/dist/controllers/me.controller.js.map +1 -1
  27. package/dist/controllers/mfa.controller.js +1 -1
  28. package/dist/controllers/mfa.controller.js.map +1 -1
  29. package/dist/controllers/security-settings.controller.js +1 -1
  30. package/dist/controllers/security-settings.controller.js.map +1 -1
  31. package/dist/controllers/users.controller.d.ts +1 -3
  32. package/dist/controllers/users.controller.js +2 -16
  33. package/dist/controllers/users.controller.js.map +1 -1
  34. package/dist/credentials/credentials.service.js +4 -1
  35. package/dist/credentials/credentials.service.js.map +1 -1
  36. package/dist/credentials/external-secrets.utils.js +3 -3
  37. package/dist/credentials/external-secrets.utils.js.map +1 -1
  38. package/dist/credentials-helper.js +2 -1
  39. package/dist/credentials-helper.js.map +1 -1
  40. package/dist/deprecation/deprecation.service.js.map +1 -1
  41. package/dist/eventbus/event-message-classes/index.d.ts +2 -2
  42. package/dist/eventbus/event-message-classes/index.js +3 -0
  43. package/dist/eventbus/event-message-classes/index.js.map +1 -1
  44. package/dist/eventbus/message-event-bus-writer/message-event-bus-log-writer.d.ts +1 -0
  45. package/dist/eventbus/message-event-bus-writer/message-event-bus-log-writer.js +78 -38
  46. package/dist/eventbus/message-event-bus-writer/message-event-bus-log-writer.js.map +1 -1
  47. package/dist/events/maps/ai.event-map.d.ts +1 -0
  48. package/dist/events/maps/relay.event-map.d.ts +15 -0
  49. package/dist/events/relays/log-streaming.event-relay.d.ts +3 -0
  50. package/dist/events/relays/log-streaming.event-relay.js +35 -0
  51. package/dist/events/relays/log-streaming.event-relay.js.map +1 -1
  52. package/dist/execution-lifecycle/execution-lifecycle-hooks.js +18 -2
  53. package/dist/execution-lifecycle/execution-lifecycle-hooks.js.map +1 -1
  54. package/dist/execution-lifecycle/restore-binary-data-id.js +39 -21
  55. package/dist/execution-lifecycle/restore-binary-data-id.js.map +1 -1
  56. package/dist/executions/parse-range-query.middleware.js +6 -4
  57. package/dist/executions/parse-range-query.middleware.js.map +1 -1
  58. package/dist/expression-observability/expression-observability.constants.d.ts +8 -0
  59. package/dist/expression-observability/expression-observability.constants.js +14 -0
  60. package/dist/expression-observability/expression-observability.constants.js.map +1 -0
  61. package/dist/expression-observability/expression-observability.formatters.d.ts +4 -0
  62. package/dist/expression-observability/expression-observability.formatters.js +36 -0
  63. package/dist/expression-observability/expression-observability.formatters.js.map +1 -0
  64. package/dist/expression-observability/expression-observability.provider.d.ts +22 -0
  65. package/dist/expression-observability/expression-observability.provider.js +193 -0
  66. package/dist/expression-observability/expression-observability.provider.js.map +1 -0
  67. package/dist/external-hooks.js.map +1 -1
  68. package/dist/instance-settings-loader/instance-settings-loader.service.d.ts +5 -3
  69. package/dist/instance-settings-loader/instance-settings-loader.service.js +10 -6
  70. package/dist/instance-settings-loader/instance-settings-loader.service.js.map +1 -1
  71. package/dist/instance-settings-loader/loaders/log-streaming.instance-settings-loader.d.ts +12 -0
  72. package/dist/instance-settings-loader/loaders/log-streaming.instance-settings-loader.js +136 -0
  73. package/dist/instance-settings-loader/loaders/log-streaming.instance-settings-loader.js.map +1 -0
  74. package/dist/instance-settings-loader/loaders/sso.instance-settings-loader.d.ts +20 -0
  75. package/dist/instance-settings-loader/loaders/sso.instance-settings-loader.js +198 -0
  76. package/dist/instance-settings-loader/loaders/sso.instance-settings-loader.js.map +1 -0
  77. package/dist/middlewares/list-query/filter.d.ts +2 -3
  78. package/dist/middlewares/list-query/filter.js +3 -2
  79. package/dist/middlewares/list-query/filter.js.map +1 -1
  80. package/dist/middlewares/list-query/index.d.ts +2 -2
  81. package/dist/middlewares/list-query/index.js.map +1 -1
  82. package/dist/middlewares/list-query/pagination.js +8 -3
  83. package/dist/middlewares/list-query/pagination.js.map +1 -1
  84. package/dist/middlewares/list-query/select.js +3 -2
  85. package/dist/middlewares/list-query/select.js.map +1 -1
  86. package/dist/middlewares/list-query/sort-by.js +3 -2
  87. package/dist/middlewares/list-query/sort-by.js.map +1 -1
  88. package/dist/modules/chat-hub/chat-hub-workflow.service.js.map +1 -1
  89. package/dist/modules/chat-hub/chat-hub.types.d.ts +1 -1
  90. package/dist/modules/chat-hub/stream-capturer.js.map +1 -1
  91. package/dist/modules/community-packages/npm-utils.js +79 -3
  92. package/dist/modules/community-packages/npm-utils.js.map +1 -1
  93. package/dist/modules/data-table/data-table-column.repository.d.ts +2 -0
  94. package/dist/modules/data-table/data-table-column.repository.js +21 -5
  95. package/dist/modules/data-table/data-table-column.repository.js.map +1 -1
  96. package/dist/modules/data-table/data-table.service.d.ts +8 -2
  97. package/dist/modules/data-table/data-table.service.js +16 -2
  98. package/dist/modules/data-table/data-table.service.js.map +1 -1
  99. package/dist/modules/dynamic-credentials.ee/services/dynamic-credential.service.d.ts +2 -2
  100. package/dist/modules/dynamic-credentials.ee/services/dynamic-credential.service.js.map +1 -1
  101. package/dist/modules/dynamic-credentials.ee/utils.d.ts +2 -1
  102. package/dist/modules/dynamic-credentials.ee/utils.js.map +1 -1
  103. package/dist/modules/encryption-key-manager/encryption-bootstrap.service.d.ts +6 -0
  104. package/dist/modules/encryption-key-manager/encryption-bootstrap.service.js +28 -0
  105. package/dist/modules/encryption-key-manager/encryption-bootstrap.service.js.map +1 -0
  106. package/dist/modules/encryption-key-manager/encryption-key-manager.module.js +10 -1
  107. package/dist/modules/encryption-key-manager/encryption-key-manager.module.js.map +1 -1
  108. package/dist/modules/encryption-key-manager/encryption-key.controller.d.ts +8 -0
  109. package/dist/modules/encryption-key-manager/encryption-key.controller.js +62 -0
  110. package/dist/modules/encryption-key-manager/encryption-key.controller.js.map +1 -0
  111. package/dist/modules/encryption-key-manager/key-manager.service.d.ts +8 -5
  112. package/dist/modules/encryption-key-manager/key-manager.service.js +37 -10
  113. package/dist/modules/encryption-key-manager/key-manager.service.js.map +1 -1
  114. package/dist/modules/insights/database/entities/insights-by-period.js +8 -6
  115. package/dist/modules/insights/database/entities/insights-by-period.js.map +1 -1
  116. package/dist/modules/insights/database/entities/insights-raw.js +4 -3
  117. package/dist/modules/insights/database/entities/insights-raw.js.map +1 -1
  118. package/dist/modules/insights/database/entities/insights-shared.d.ts +6 -6
  119. package/dist/modules/insights/database/entities/insights-shared.js +3 -8
  120. package/dist/modules/insights/database/entities/insights-shared.js.map +1 -1
  121. package/dist/modules/instance-ai/entities/instance-ai-run-snapshot.entity.d.ts +2 -0
  122. package/dist/modules/instance-ai/entities/instance-ai-run-snapshot.entity.js +8 -0
  123. package/dist/modules/instance-ai/entities/instance-ai-run-snapshot.entity.js.map +1 -1
  124. package/dist/modules/instance-ai/eval/execution.service.js +4 -5
  125. package/dist/modules/instance-ai/eval/execution.service.js.map +1 -1
  126. package/dist/modules/instance-ai/eval/sub-agent-eval.service.d.ts +13 -0
  127. package/dist/modules/instance-ai/eval/sub-agent-eval.service.js +132 -0
  128. package/dist/modules/instance-ai/eval/sub-agent-eval.service.js.map +1 -0
  129. package/dist/modules/instance-ai/eval/sub-agent-roles.d.ts +7 -0
  130. package/dist/modules/instance-ai/eval/sub-agent-roles.js +21 -0
  131. package/dist/modules/instance-ai/eval/sub-agent-roles.js.map +1 -0
  132. package/dist/modules/instance-ai/eval/workflow-analysis.js +59 -51
  133. package/dist/modules/instance-ai/eval/workflow-analysis.js.map +1 -1
  134. package/dist/modules/instance-ai/instance-ai.adapter.service.d.ts +3 -2
  135. package/dist/modules/instance-ai/instance-ai.adapter.service.js +92 -9
  136. package/dist/modules/instance-ai/instance-ai.adapter.service.js.map +1 -1
  137. package/dist/modules/instance-ai/instance-ai.controller.d.ts +8 -2
  138. package/dist/modules/instance-ai/instance-ai.controller.js +36 -1
  139. package/dist/modules/instance-ai/instance-ai.controller.js.map +1 -1
  140. package/dist/modules/instance-ai/instance-ai.module.js +1 -1
  141. package/dist/modules/instance-ai/instance-ai.module.js.map +1 -1
  142. package/dist/modules/instance-ai/instance-ai.service.d.ts +14 -3
  143. package/dist/modules/instance-ai/instance-ai.service.js +266 -42
  144. package/dist/modules/instance-ai/instance-ai.service.js.map +1 -1
  145. package/dist/modules/instance-ai/storage/db-snapshot-storage.d.ts +12 -2
  146. package/dist/modules/instance-ai/storage/db-snapshot-storage.js +25 -3
  147. package/dist/modules/instance-ai/storage/db-snapshot-storage.js.map +1 -1
  148. package/dist/modules/instance-ai/web-research/cache.js.map +1 -1
  149. package/dist/modules/instance-registry/instance-registry.module.js +4 -1
  150. package/dist/modules/instance-registry/instance-registry.module.js.map +1 -1
  151. package/dist/modules/ldap.ee/helpers.ee.js +13 -0
  152. package/dist/modules/ldap.ee/helpers.ee.js.map +1 -1
  153. package/dist/modules/ldap.ee/ldap.service.ee.d.ts +1 -0
  154. package/dist/modules/ldap.ee/ldap.service.ee.js +33 -8
  155. package/dist/modules/ldap.ee/ldap.service.ee.js.map +1 -1
  156. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-webhook.ee.js.map +1 -1
  157. package/dist/modules/log-streaming.ee/log-streaming.controller.d.ts +4 -1
  158. package/dist/modules/log-streaming.ee/log-streaming.controller.js +13 -2
  159. package/dist/modules/log-streaming.ee/log-streaming.controller.js.map +1 -1
  160. package/dist/modules/mcp/mcp-api-key.service.d.ts +4 -3
  161. package/dist/modules/mcp/mcp-api-key.service.js +17 -24
  162. package/dist/modules/mcp/mcp-api-key.service.js.map +1 -1
  163. package/dist/modules/mcp/mcp-oauth-consent.service.js +2 -2
  164. package/dist/modules/mcp/mcp-oauth-consent.service.js.map +1 -1
  165. package/dist/modules/mcp/mcp-server-middleware.service.d.ts +2 -2
  166. package/dist/modules/mcp/mcp-server-middleware.service.js +3 -3
  167. package/dist/modules/mcp/mcp-server-middleware.service.js.map +1 -1
  168. package/dist/modules/mcp/mcp.service.d.ts +3 -1
  169. package/dist/modules/mcp/mcp.service.js +9 -6
  170. package/dist/modules/mcp/mcp.service.js.map +1 -1
  171. package/dist/modules/mcp/mcp.settings.controller.d.ts +3 -1
  172. package/dist/modules/mcp/mcp.settings.controller.js +15 -2
  173. package/dist/modules/mcp/mcp.settings.controller.js.map +1 -1
  174. package/dist/modules/mcp/mcp.types.d.ts +1 -0
  175. package/dist/modules/mcp/tools/execute-workflow.tool.d.ts +6 -6
  176. package/dist/modules/mcp/tools/publish-workflow.tool.d.ts +2 -1
  177. package/dist/modules/mcp/tools/publish-workflow.tool.js +3 -1
  178. package/dist/modules/mcp/tools/publish-workflow.tool.js.map +1 -1
  179. package/dist/modules/mcp/tools/unpublish-workflow.tool.d.ts +2 -1
  180. package/dist/modules/mcp/tools/unpublish-workflow.tool.js +3 -1
  181. package/dist/modules/mcp/tools/unpublish-workflow.tool.js.map +1 -1
  182. package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.js +1 -0
  183. package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.js.map +1 -1
  184. package/dist/modules/mcp/tools/workflow-builder/delete-workflow.tool.d.ts +3 -1
  185. package/dist/modules/mcp/tools/workflow-builder/delete-workflow.tool.js +5 -1
  186. package/dist/modules/mcp/tools/workflow-builder/delete-workflow.tool.js.map +1 -1
  187. package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.d.ts +2 -1
  188. package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.js +4 -1
  189. package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.js.map +1 -1
  190. package/dist/modules/otel/execution-level-tracer.d.ts +22 -0
  191. package/dist/modules/otel/execution-level-tracer.js +241 -0
  192. package/dist/modules/otel/execution-level-tracer.js.map +1 -0
  193. package/dist/modules/otel/execution-level-tracer.types.d.ts +41 -0
  194. package/dist/modules/otel/execution-level-tracer.types.js +3 -0
  195. package/dist/modules/otel/execution-level-tracer.types.js.map +1 -0
  196. package/dist/modules/otel/otel-lifecycle-handler.d.ts +17 -0
  197. package/dist/modules/otel/otel-lifecycle-handler.js +157 -0
  198. package/dist/modules/otel/otel-lifecycle-handler.js.map +1 -0
  199. package/dist/modules/otel/otel.config.d.ts +1 -0
  200. package/dist/modules/otel/otel.config.js +5 -0
  201. package/dist/modules/otel/otel.config.js.map +1 -1
  202. package/dist/modules/otel/otel.constants.d.ts +1 -0
  203. package/dist/modules/otel/otel.constants.js +1 -0
  204. package/dist/modules/otel/otel.constants.js.map +1 -1
  205. package/dist/modules/otel/otel.module.d.ts +2 -1
  206. package/dist/modules/otel/otel.module.js +12 -1
  207. package/dist/modules/otel/otel.module.js.map +1 -1
  208. package/dist/modules/otel/tracing-context.d.ts +13 -0
  209. package/dist/modules/otel/tracing-context.js +55 -0
  210. package/dist/modules/otel/tracing-context.js.map +1 -0
  211. package/dist/modules/provisioning.ee/provisioning.controller.ee.d.ts +5 -5
  212. package/dist/modules/provisioning.ee/provisioning.controller.ee.js +8 -8
  213. package/dist/modules/provisioning.ee/provisioning.controller.ee.js.map +1 -1
  214. package/dist/modules/provisioning.ee/provisioning.service.ee.d.ts +3 -2
  215. package/dist/modules/provisioning.ee/provisioning.service.ee.js +30 -15
  216. package/dist/modules/provisioning.ee/provisioning.service.ee.js.map +1 -1
  217. package/dist/modules/provisioning.ee/role-mapping-rule.service.ee.d.ts +2 -0
  218. package/dist/modules/provisioning.ee/role-mapping-rule.service.ee.js +18 -3
  219. package/dist/modules/provisioning.ee/role-mapping-rule.service.ee.js.map +1 -1
  220. package/dist/modules/quick-connect/quick-connect.config.js.map +1 -1
  221. package/dist/modules/sso-oidc/oidc.controller.ee.d.ts +3 -4
  222. package/dist/modules/sso-oidc/oidc.controller.ee.js +6 -6
  223. package/dist/modules/sso-oidc/oidc.controller.ee.js.map +1 -1
  224. package/dist/modules/sso-saml/saml-helpers.d.ts +1 -0
  225. package/dist/modules/sso-saml/saml-helpers.js +15 -1
  226. package/dist/modules/sso-saml/saml-helpers.js.map +1 -1
  227. package/dist/modules/sso-saml/saml.controller.ee.d.ts +3 -1
  228. package/dist/modules/sso-saml/saml.controller.ee.js +45 -14
  229. package/dist/modules/sso-saml/saml.controller.ee.js.map +1 -1
  230. package/dist/modules/sso-saml/saml.service.ee.d.ts +8 -3
  231. package/dist/modules/sso-saml/saml.service.ee.js +43 -18
  232. package/dist/modules/sso-saml/saml.service.ee.js.map +1 -1
  233. package/dist/modules/token-exchange/services/scoped-jwt.strategy.d.ts +3 -2
  234. package/dist/modules/token-exchange/services/scoped-jwt.strategy.js +17 -6
  235. package/dist/modules/token-exchange/services/scoped-jwt.strategy.js.map +1 -1
  236. package/dist/modules/token-exchange/services/trusted-key.service.d.ts +0 -1
  237. package/dist/modules/token-exchange/services/trusted-key.service.js +8 -9
  238. package/dist/modules/token-exchange/services/trusted-key.service.js.map +1 -1
  239. package/dist/oauth/oauth.service.d.ts +1 -0
  240. package/dist/oauth/oauth.service.js +12 -1
  241. package/dist/oauth/oauth.service.js.map +1 -1
  242. package/dist/public-api/index.js +0 -3
  243. package/dist/public-api/index.js.map +1 -1
  244. package/dist/public-api/types.d.ts +15 -1
  245. package/dist/public-api/v1/handlers/credentials/credentials.service.js +10 -2
  246. package/dist/public-api/v1/handlers/credentials/credentials.service.js.map +1 -1
  247. package/dist/public-api/v1/handlers/data-tables/data-tables.columns.handler.d.ts +21 -0
  248. package/dist/public-api/v1/handlers/data-tables/data-tables.columns.handler.js +85 -0
  249. package/dist/public-api/v1/handlers/data-tables/data-tables.columns.handler.js.map +1 -0
  250. package/dist/public-api/v1/handlers/data-tables/data-tables.handler.js +10 -10
  251. package/dist/public-api/v1/handlers/data-tables/data-tables.handler.js.map +1 -1
  252. package/dist/public-api/v1/handlers/data-tables/data-tables.rows.handler.js +7 -18
  253. package/dist/public-api/v1/handlers/data-tables/data-tables.rows.handler.js.map +1 -1
  254. package/dist/public-api/v1/handlers/data-tables/data-tables.service.d.ts +0 -1
  255. package/dist/public-api/v1/handlers/data-tables/data-tables.service.js +0 -13
  256. package/dist/public-api/v1/handlers/data-tables/data-tables.service.js.map +1 -1
  257. package/dist/public-api/v1/handlers/folders/folders.handler.d.ts +29 -0
  258. package/dist/public-api/v1/handlers/folders/folders.handler.js +112 -0
  259. package/dist/public-api/v1/handlers/folders/folders.handler.js.map +1 -0
  260. package/dist/public-api/v1/handlers/users/users.handler.ee.js +2 -12
  261. package/dist/public-api/v1/handlers/users/users.handler.ee.js.map +1 -1
  262. package/dist/public-api/v1/openapi.yml +494 -0
  263. package/dist/public-api/v1/shared/handler.types.d.ts +3 -0
  264. package/dist/{modules/otel/handlers/interfaces.js → public-api/v1/shared/handler.types.js} +1 -1
  265. package/dist/public-api/v1/shared/handler.types.js.map +1 -0
  266. package/dist/public-api/v1/shared/middlewares/global.middleware.d.ts +3 -1
  267. package/dist/public-api/v1/shared/middlewares/global.middleware.js.map +1 -1
  268. package/dist/public-api/v1/shared/services/utils.service.d.ts +3 -0
  269. package/dist/public-api/v1/shared/services/utils.service.js +18 -0
  270. package/dist/public-api/v1/shared/services/utils.service.js.map +1 -0
  271. package/dist/push/index.d.ts +1 -1
  272. package/dist/push/index.js +11 -1
  273. package/dist/push/index.js.map +1 -1
  274. package/dist/push/push-helpers.d.ts +6 -0
  275. package/dist/push/push-helpers.js +20 -0
  276. package/dist/push/push-helpers.js.map +1 -0
  277. package/dist/requests.d.ts +2 -0
  278. package/dist/requests.js +5 -0
  279. package/dist/requests.js.map +1 -1
  280. package/dist/scaling/job-processor.js +7 -2
  281. package/dist/scaling/job-processor.js.map +1 -1
  282. package/dist/scaling/multi-main-setup.ee.js +1 -1
  283. package/dist/scaling/multi-main-setup.ee.js.map +1 -1
  284. package/dist/server.js +4 -0
  285. package/dist/server.js.map +1 -1
  286. package/dist/services/ai-gateway.service.d.ts +4 -1
  287. package/dist/services/ai-gateway.service.js +17 -2
  288. package/dist/services/ai-gateway.service.js.map +1 -1
  289. package/dist/services/api-key-auth.strategy.d.ts +3 -2
  290. package/dist/services/api-key-auth.strategy.js +24 -13
  291. package/dist/services/api-key-auth.strategy.js.map +1 -1
  292. package/dist/services/auth-strategy.registry.d.ts +3 -2
  293. package/dist/services/auth-strategy.registry.js +12 -0
  294. package/dist/services/auth-strategy.registry.js.map +1 -1
  295. package/dist/services/auth-strategy.types.d.ts +7 -1
  296. package/dist/services/dynamic-node-parameters.service.js +23 -8
  297. package/dist/services/dynamic-node-parameters.service.js.map +1 -1
  298. package/dist/services/folder.service.d.ts +3 -2
  299. package/dist/services/folder.service.js +4 -2
  300. package/dist/services/folder.service.js.map +1 -1
  301. package/dist/services/frontend.service.d.ts +1 -0
  302. package/dist/services/frontend.service.js +9 -1
  303. package/dist/services/frontend.service.js.map +1 -1
  304. package/dist/services/instance-registry-proxy.service.d.ts +11 -0
  305. package/dist/services/instance-registry-proxy.service.js +33 -0
  306. package/dist/services/instance-registry-proxy.service.js.map +1 -0
  307. package/dist/services/last-active-at.service.d.ts +1 -2
  308. package/dist/services/last-active-at.service.js.map +1 -1
  309. package/dist/services/rate-limit.service.js.map +1 -1
  310. package/dist/services/redis-client.service.js +1 -1
  311. package/dist/services/redis-client.service.js.map +1 -1
  312. package/dist/services/user.service.d.ts +4 -1
  313. package/dist/services/user.service.js +26 -2
  314. package/dist/services/user.service.js.map +1 -1
  315. package/dist/task-runners/task-managers/task-requester.js +1 -1
  316. package/dist/task-runners/task-managers/task-requester.js.map +1 -1
  317. package/dist/task-runners/task-runner-module.js.map +1 -1
  318. package/dist/utils/inverter.d.ts +1 -0
  319. package/dist/utils/inverter.js +11 -0
  320. package/dist/utils/inverter.js.map +1 -0
  321. package/dist/webhooks/live-webhooks.d.ts +3 -2
  322. package/dist/webhooks/live-webhooks.js +8 -3
  323. package/dist/webhooks/live-webhooks.js.map +1 -1
  324. package/dist/webhooks/node-type-matcher.d.ts +3 -0
  325. package/dist/webhooks/node-type-matcher.js +7 -0
  326. package/dist/webhooks/node-type-matcher.js.map +1 -0
  327. package/dist/webhooks/test-webhooks.d.ts +5 -3
  328. package/dist/webhooks/test-webhooks.js +14 -5
  329. package/dist/webhooks/test-webhooks.js.map +1 -1
  330. package/dist/webhooks/waiting-webhooks.d.ts +4 -1
  331. package/dist/webhooks/waiting-webhooks.js +17 -2
  332. package/dist/webhooks/waiting-webhooks.js.map +1 -1
  333. package/dist/webhooks/webhook-helpers.js +10 -0
  334. package/dist/webhooks/webhook-helpers.js.map +1 -1
  335. package/dist/webhooks/webhook-request-handler.d.ts +3 -2
  336. package/dist/webhooks/webhook-request-handler.js +8 -6
  337. package/dist/webhooks/webhook-request-handler.js.map +1 -1
  338. package/dist/webhooks/webhook.service.js +2 -2
  339. package/dist/webhooks/webhook.service.js.map +1 -1
  340. package/dist/webhooks/webhook.types.d.ts +3 -1
  341. package/dist/workflow-execute-additional-data.d.ts +6 -2
  342. package/dist/workflow-execute-additional-data.js +3 -1
  343. package/dist/workflow-execute-additional-data.js.map +1 -1
  344. package/dist/workflow-runner.js.map +1 -1
  345. package/dist/workflows/workflow-validation.service.js +3 -0
  346. package/dist/workflows/workflow-validation.service.js.map +1 -1
  347. package/dist/workflows/workflow.service.d.ts +1 -0
  348. package/dist/workflows/workflow.service.js +6 -1
  349. package/dist/workflows/workflow.service.js.map +1 -1
  350. package/dist/workflows/workflows.controller.d.ts +2 -2
  351. package/package.json +34 -33
  352. package/dist/instance-settings-loader/loaders/oidc.instance-settings-loader.d.ts +0 -13
  353. package/dist/instance-settings-loader/loaders/oidc.instance-settings-loader.js +0 -116
  354. package/dist/instance-settings-loader/loaders/oidc.instance-settings-loader.js.map +0 -1
  355. package/dist/modules/otel/handlers/interfaces.d.ts +0 -5
  356. package/dist/modules/otel/handlers/interfaces.js.map +0 -1
  357. package/dist/modules/otel/handlers/node-end.handler.d.ts +0 -8
  358. package/dist/modules/otel/handlers/node-end.handler.js +0 -71
  359. package/dist/modules/otel/handlers/node-end.handler.js.map +0 -1
  360. package/dist/modules/otel/handlers/node-start.handler.d.ts +0 -7
  361. package/dist/modules/otel/handlers/node-start.handler.js +0 -37
  362. package/dist/modules/otel/handlers/node-start.handler.js.map +0 -1
  363. package/dist/modules/otel/handlers/workflow-end.handler.d.ts +0 -8
  364. package/dist/modules/otel/handlers/workflow-end.handler.js +0 -73
  365. package/dist/modules/otel/handlers/workflow-end.handler.js.map +0 -1
  366. package/dist/modules/otel/handlers/workflow-start.handler.d.ts +0 -7
  367. package/dist/modules/otel/handlers/workflow-start.handler.js +0 -30
  368. package/dist/modules/otel/handlers/workflow-start.handler.js.map +0 -1
  369. package/dist/modules/otel/n8n-instrumentation.d.ts +0 -21
  370. package/dist/modules/otel/n8n-instrumentation.js +0 -103
  371. package/dist/modules/otel/n8n-instrumentation.js.map +0 -1
  372. package/dist/modules/otel/span-registry.d.ts +0 -14
  373. package/dist/modules/otel/span-registry.js +0 -58
  374. package/dist/modules/otel/span-registry.js.map +0 -1
@@ -41,6 +41,8 @@ tags:
41
41
  description: API capability discovery
42
42
  - name: Insights
43
43
  description: Operations about insights
44
+ - name: Folders
45
+ description: Operations about folders
44
46
  externalDocs:
45
47
  description: n8n API documentation
46
48
  url: https://docs.n8n.io/api/
@@ -1809,6 +1811,126 @@ paths:
1809
1811
  $ref: '#/components/responses/notFound'
1810
1812
  security:
1811
1813
  - ApiKeyAuth: []
1814
+ /data-tables/{dataTableId}/columns:
1815
+ get:
1816
+ x-eov-operation-id: listDataTableColumns
1817
+ x-eov-operation-handler: v1/handlers/data-tables/data-tables.columns.handler
1818
+ tags:
1819
+ - DataTable
1820
+ summary: List columns of a data table
1821
+ description: Retrieve all columns for a specific data table.
1822
+ operationId: list-data-table-columns
1823
+ parameters:
1824
+ - $ref: '#/components/parameters/dataTableId'
1825
+ responses:
1826
+ '200':
1827
+ description: Successfully retrieved columns
1828
+ content:
1829
+ application/json:
1830
+ schema:
1831
+ type: array
1832
+ items:
1833
+ $ref: '#/components/schemas/dataTableColumn'
1834
+ '401':
1835
+ $ref: '#/components/responses/unauthorized'
1836
+ '404':
1837
+ $ref: '#/components/responses/notFound'
1838
+ security:
1839
+ - ApiKeyAuth: []
1840
+ post:
1841
+ x-eov-operation-id: createDataTableColumn
1842
+ x-eov-operation-handler: v1/handlers/data-tables/data-tables.columns.handler
1843
+ tags:
1844
+ - DataTable
1845
+ summary: Add a column to a data table
1846
+ description: Add a new column to an existing data table.
1847
+ operationId: create-data-table-column
1848
+ parameters:
1849
+ - $ref: '#/components/parameters/dataTableId'
1850
+ requestBody:
1851
+ required: true
1852
+ content:
1853
+ application/json:
1854
+ schema:
1855
+ $ref: '#/components/schemas/createColumnRequest'
1856
+ example:
1857
+ name: email
1858
+ type: string
1859
+ responses:
1860
+ '201':
1861
+ description: Column created successfully
1862
+ content:
1863
+ application/json:
1864
+ schema:
1865
+ $ref: '#/components/schemas/dataTableColumn'
1866
+ '400':
1867
+ $ref: '#/components/responses/badRequest'
1868
+ '401':
1869
+ $ref: '#/components/responses/unauthorized'
1870
+ '404':
1871
+ $ref: '#/components/responses/notFound'
1872
+ '409':
1873
+ $ref: '#/components/responses/conflict'
1874
+ security:
1875
+ - ApiKeyAuth: []
1876
+ /data-tables/{dataTableId}/columns/{columnId}:
1877
+ delete:
1878
+ x-eov-operation-id: deleteDataTableColumn
1879
+ x-eov-operation-handler: v1/handlers/data-tables/data-tables.columns.handler
1880
+ tags:
1881
+ - DataTable
1882
+ summary: Delete a column
1883
+ description: Remove a column from a data table. This will also delete all data in the column.
1884
+ operationId: delete-data-table-column
1885
+ parameters:
1886
+ - $ref: '#/components/parameters/dataTableId'
1887
+ - $ref: '#/components/parameters/columnId'
1888
+ responses:
1889
+ '204':
1890
+ description: Column deleted successfully
1891
+ '401':
1892
+ $ref: '#/components/responses/unauthorized'
1893
+ '404':
1894
+ $ref: '#/components/responses/notFound'
1895
+ security:
1896
+ - ApiKeyAuth: []
1897
+ patch:
1898
+ x-eov-operation-id: updateDataTableColumn
1899
+ x-eov-operation-handler: v1/handlers/data-tables/data-tables.columns.handler
1900
+ tags:
1901
+ - DataTable
1902
+ summary: Update a column
1903
+ description: Rename and/or reorder a column in a data table.
1904
+ operationId: update-data-table-column
1905
+ parameters:
1906
+ - $ref: '#/components/parameters/dataTableId'
1907
+ - $ref: '#/components/parameters/columnId'
1908
+ requestBody:
1909
+ required: true
1910
+ content:
1911
+ application/json:
1912
+ schema:
1913
+ $ref: '#/components/schemas/updateColumnRequest'
1914
+ example:
1915
+ name: email
1916
+ index: 1
1917
+ responses:
1918
+ '200':
1919
+ description: Column updated successfully
1920
+ content:
1921
+ application/json:
1922
+ schema:
1923
+ $ref: '#/components/schemas/dataTableColumn'
1924
+ '400':
1925
+ $ref: '#/components/responses/badRequest'
1926
+ '401':
1927
+ $ref: '#/components/responses/unauthorized'
1928
+ '404':
1929
+ $ref: '#/components/responses/notFound'
1930
+ '409':
1931
+ $ref: '#/components/responses/conflict'
1932
+ security:
1933
+ - ApiKeyAuth: []
1812
1934
  /projects:
1813
1935
  post:
1814
1936
  x-eov-operation-id: createProject
@@ -2307,6 +2429,256 @@ paths:
2307
2429
  $ref: '#/components/responses/unauthorized'
2308
2430
  '403':
2309
2431
  $ref: '#/components/responses/forbidden'
2432
+ /projects/{projectId}/folders:
2433
+ post:
2434
+ x-eov-operation-id: createFolder
2435
+ x-eov-operation-handler: v1/handlers/folders/folders.handler
2436
+ tags:
2437
+ - Folders
2438
+ summary: Create a folder
2439
+ description: Create a folder within a project.
2440
+ parameters:
2441
+ - name: projectId
2442
+ in: path
2443
+ description: The ID of the project.
2444
+ required: true
2445
+ schema:
2446
+ type: string
2447
+ requestBody:
2448
+ description: Payload for folder to create.
2449
+ content:
2450
+ application/json:
2451
+ schema:
2452
+ $ref: '#/components/schemas/folder.create'
2453
+ required: true
2454
+ responses:
2455
+ '201':
2456
+ description: Operation successful.
2457
+ content:
2458
+ application/json:
2459
+ schema:
2460
+ $ref: '#/components/schemas/folder'
2461
+ '400':
2462
+ $ref: '#/components/responses/badRequest'
2463
+ '401':
2464
+ $ref: '#/components/responses/unauthorized'
2465
+ '403':
2466
+ $ref: '#/components/responses/forbidden'
2467
+ '404':
2468
+ $ref: '#/components/responses/notFound'
2469
+ get:
2470
+ x-eov-operation-id: getFolders
2471
+ x-eov-operation-handler: v1/handlers/folders/folders.handler
2472
+ tags:
2473
+ - Folders
2474
+ summary: Retrieve folders
2475
+ description: Retrieve folders within a project. Supports filtering, sorting, field selection, and pagination.
2476
+ parameters:
2477
+ - name: projectId
2478
+ in: path
2479
+ description: The ID of the project.
2480
+ required: true
2481
+ schema:
2482
+ type: string
2483
+ - name: filter
2484
+ in: query
2485
+ required: false
2486
+ description: JSON-encoded filter object. Supported fields — parentFolderId, name, tags (array of tag names), excludeFolderIdAndDescendants.
2487
+ schema:
2488
+ type: string
2489
+ example: '{"parentFolderId":"abc123","name":"My Folder"}'
2490
+ - name: select
2491
+ in: query
2492
+ required: false
2493
+ description: JSON-encoded array of fields to include. Valid fields — id, name, createdAt, updatedAt, project, tags, parentFolder, workflowCount, subFolderCount, path.
2494
+ schema:
2495
+ type: string
2496
+ example: '["id","name","tags","workflowCount"]'
2497
+ - name: sortBy
2498
+ in: query
2499
+ required: false
2500
+ description: Sort order for results.
2501
+ schema:
2502
+ type: string
2503
+ enum:
2504
+ - name:asc
2505
+ - name:desc
2506
+ - createdAt:asc
2507
+ - createdAt:desc
2508
+ - updatedAt:asc
2509
+ - updatedAt:desc
2510
+ - name: skip
2511
+ in: query
2512
+ required: false
2513
+ description: Number of items to skip for pagination. Defaults to 0.
2514
+ schema:
2515
+ type: string
2516
+ - name: take
2517
+ in: query
2518
+ required: false
2519
+ description: Number of items to return. Defaults to 10.
2520
+ schema:
2521
+ type: string
2522
+ responses:
2523
+ '200':
2524
+ description: Operation successful.
2525
+ content:
2526
+ application/json:
2527
+ schema:
2528
+ type: object
2529
+ properties:
2530
+ count:
2531
+ type: integer
2532
+ description: Total number of folders matching the query.
2533
+ data:
2534
+ type: array
2535
+ items:
2536
+ $ref: '#/components/schemas/folder'
2537
+ '400':
2538
+ $ref: '#/components/responses/badRequest'
2539
+ '401':
2540
+ $ref: '#/components/responses/unauthorized'
2541
+ '403':
2542
+ $ref: '#/components/responses/forbidden'
2543
+ '404':
2544
+ $ref: '#/components/responses/notFound'
2545
+ /projects/{projectId}/folders/{folderId}:
2546
+ delete:
2547
+ x-eov-operation-id: deleteFolder
2548
+ x-eov-operation-handler: v1/handlers/folders/folders.handler
2549
+ tags:
2550
+ - Folders
2551
+ summary: Delete a folder
2552
+ description: Delete a folder within a project. When `transferToFolderId` is provided, workflows and sub-folders are moved to the target folder before deletion. When omitted, workflows are moved to the project root and archived, and child folders are deleted.
2553
+ parameters:
2554
+ - name: projectId
2555
+ in: path
2556
+ description: The ID of the project.
2557
+ required: true
2558
+ schema:
2559
+ type: string
2560
+ - name: folderId
2561
+ in: path
2562
+ description: The ID of the folder.
2563
+ required: true
2564
+ schema:
2565
+ type: string
2566
+ - name: transferToFolderId
2567
+ in: query
2568
+ description: Optional target folder ID to move workflows and sub-folders into before deleting.
2569
+ required: false
2570
+ schema:
2571
+ type: string
2572
+ responses:
2573
+ '204':
2574
+ description: Operation successful.
2575
+ '400':
2576
+ $ref: '#/components/responses/badRequest'
2577
+ '401':
2578
+ $ref: '#/components/responses/unauthorized'
2579
+ '403':
2580
+ $ref: '#/components/responses/forbidden'
2581
+ '404':
2582
+ $ref: '#/components/responses/notFound'
2583
+ get:
2584
+ x-eov-operation-id: getFolder
2585
+ x-eov-operation-handler: v1/handlers/folders/folders.handler
2586
+ tags:
2587
+ - Folders
2588
+ summary: Get folder details
2589
+ description: Get folder details including sub-folder and workflow counts.
2590
+ parameters:
2591
+ - name: projectId
2592
+ in: path
2593
+ description: The ID of the project.
2594
+ required: true
2595
+ schema:
2596
+ type: string
2597
+ - name: folderId
2598
+ in: path
2599
+ description: The ID of the folder.
2600
+ required: true
2601
+ schema:
2602
+ type: string
2603
+ responses:
2604
+ '200':
2605
+ description: Operation successful.
2606
+ content:
2607
+ application/json:
2608
+ schema:
2609
+ type: object
2610
+ additionalProperties: false
2611
+ properties:
2612
+ id:
2613
+ type: string
2614
+ readOnly: true
2615
+ name:
2616
+ type: string
2617
+ parentFolderId:
2618
+ type: string
2619
+ nullable: true
2620
+ createdAt:
2621
+ type: string
2622
+ format: date-time
2623
+ readOnly: true
2624
+ updatedAt:
2625
+ type: string
2626
+ format: date-time
2627
+ readOnly: true
2628
+ totalSubFolders:
2629
+ type: integer
2630
+ description: Total number of sub-folders (recursive).
2631
+ totalWorkflows:
2632
+ type: integer
2633
+ description: Total number of workflows (recursive).
2634
+ '401':
2635
+ $ref: '#/components/responses/unauthorized'
2636
+ '403':
2637
+ $ref: '#/components/responses/forbidden'
2638
+ '404':
2639
+ $ref: '#/components/responses/notFound'
2640
+ patch:
2641
+ x-eov-operation-id: updateFolder
2642
+ x-eov-operation-handler: v1/handlers/folders/folders.handler
2643
+ tags:
2644
+ - Folders
2645
+ summary: Update a folder
2646
+ description: Update folder name or parent folder.
2647
+ parameters:
2648
+ - name: projectId
2649
+ in: path
2650
+ description: The ID of the project.
2651
+ required: true
2652
+ schema:
2653
+ type: string
2654
+ - name: folderId
2655
+ in: path
2656
+ description: The ID of the folder.
2657
+ required: true
2658
+ schema:
2659
+ type: string
2660
+ requestBody:
2661
+ description: Payload for folder update.
2662
+ content:
2663
+ application/json:
2664
+ schema:
2665
+ $ref: '#/components/schemas/folder.update'
2666
+ required: true
2667
+ responses:
2668
+ '200':
2669
+ description: Operation successful.
2670
+ content:
2671
+ application/json:
2672
+ schema:
2673
+ $ref: '#/components/schemas/folder'
2674
+ '400':
2675
+ $ref: '#/components/responses/badRequest'
2676
+ '401':
2677
+ $ref: '#/components/responses/unauthorized'
2678
+ '403':
2679
+ $ref: '#/components/responses/forbidden'
2680
+ '404':
2681
+ $ref: '#/components/responses/notFound'
2310
2682
  components:
2311
2683
  schemas:
2312
2684
  audit:
@@ -3705,6 +4077,76 @@ components:
3705
4077
  required:
3706
4078
  - filter
3707
4079
  - data
4080
+ dataTableColumn:
4081
+ type: object
4082
+ properties:
4083
+ id:
4084
+ type: string
4085
+ description: Column ID
4086
+ name:
4087
+ type: string
4088
+ description: Column name
4089
+ dataTableId:
4090
+ type: string
4091
+ description: ID of the data table this column belongs to
4092
+ type:
4093
+ type: string
4094
+ enum:
4095
+ - string
4096
+ - number
4097
+ - boolean
4098
+ - date
4099
+ description: Column data type
4100
+ index:
4101
+ type: integer
4102
+ description: Column position
4103
+ required:
4104
+ - id
4105
+ - name
4106
+ - dataTableId
4107
+ - type
4108
+ - index
4109
+ dataTableColumnName:
4110
+ type: string
4111
+ description: Column name. Must start with a letter; only letters, digits, and underscores after that; maximum 63 characters.
4112
+ minLength: 1
4113
+ maxLength: 63
4114
+ pattern: ^[a-zA-Z][a-zA-Z0-9_]*$
4115
+ createColumnRequest:
4116
+ type: object
4117
+ properties:
4118
+ name:
4119
+ $ref: '#/components/schemas/dataTableColumnName'
4120
+ type:
4121
+ type: string
4122
+ enum:
4123
+ - string
4124
+ - number
4125
+ - boolean
4126
+ - date
4127
+ description: Column data type
4128
+ index:
4129
+ type: integer
4130
+ minimum: 0
4131
+ description: Column position (optional, appended to end if omitted)
4132
+ required:
4133
+ - name
4134
+ - type
4135
+ updateColumnRequest:
4136
+ type: object
4137
+ properties:
4138
+ name:
4139
+ $ref: '#/components/schemas/dataTableColumnName'
4140
+ index:
4141
+ type: integer
4142
+ minimum: 0
4143
+ description: New zero-based position for the column
4144
+ additionalProperties: false
4145
+ anyOf:
4146
+ - required:
4147
+ - name
4148
+ - required:
4149
+ - index
3708
4150
  projectList:
3709
4151
  type: object
3710
4152
  properties:
@@ -3918,6 +4360,50 @@ components:
3918
4360
  type: string
3919
4361
  enum:
3920
4362
  - millisecond
4363
+ folder:
4364
+ type: object
4365
+ additionalProperties: false
4366
+ properties:
4367
+ id:
4368
+ type: string
4369
+ readOnly: true
4370
+ name:
4371
+ type: string
4372
+ example: My Folder
4373
+ parentFolderId:
4374
+ type: string
4375
+ nullable: true
4376
+ createdAt:
4377
+ type: string
4378
+ format: date-time
4379
+ readOnly: true
4380
+ updatedAt:
4381
+ type: string
4382
+ format: date-time
4383
+ readOnly: true
4384
+ folder.create:
4385
+ type: object
4386
+ additionalProperties: false
4387
+ required:
4388
+ - name
4389
+ properties:
4390
+ name:
4391
+ type: string
4392
+ example: My Folder
4393
+ parentFolderId:
4394
+ type: string
4395
+ example: abc123
4396
+ folder.update:
4397
+ type: object
4398
+ additionalProperties: false
4399
+ minProperties: 1
4400
+ properties:
4401
+ name:
4402
+ type: string
4403
+ example: Renamed Folder
4404
+ parentFolderId:
4405
+ type: string
4406
+ example: abc123
3921
4407
  error:
3922
4408
  required:
3923
4409
  - message
@@ -4131,6 +4617,14 @@ components:
4131
4617
  schema:
4132
4618
  type: string
4133
4619
  format: nanoid
4620
+ columnId:
4621
+ name: columnId
4622
+ in: path
4623
+ description: The ID of the column
4624
+ required: true
4625
+ schema:
4626
+ type: string
4627
+ format: nanoid
4134
4628
  Cursor:
4135
4629
  $ref: '#/components/parameters/cursor'
4136
4630
  Limit:
@@ -0,0 +1,3 @@
1
+ import type { AuthenticatedRequest } from '@n8n/db';
2
+ import type { Response } from 'express';
3
+ export type PublicAPIHandler<TParams extends Record<string, string>> = (req: AuthenticatedRequest<TParams>, res: Response) => Promise<Response | undefined>;
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=interfaces.js.map
3
+ //# sourceMappingURL=handler.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.types.js","sourceRoot":"","sources":["../../../../src/public-api/v1/shared/handler.types.ts"],"names":[],"mappings":""}
@@ -2,6 +2,7 @@ import type { BooleanLicenseFeature } from '@n8n/constants';
2
2
  import type { AuthenticatedRequest } from '@n8n/db';
3
3
  import type { ApiKeyScope, Scope } from '@n8n/permissions';
4
4
  import type express from 'express';
5
+ import type { NextFunction, Request, Response } from 'express';
5
6
  import type { PaginatedRequest } from '../../../types';
6
7
  export type ProjectScopeResource = 'workflow' | 'credential' | 'dataTable';
7
8
  export declare const globalScope: (scopes: Scope | Scope[]) => (req: AuthenticatedRequest<{
@@ -13,9 +14,10 @@ export declare const projectScope: (scopes: Scope | Scope[], resource: ProjectSc
13
14
  dataTableId?: string;
14
15
  }>, res: express.Response, next: express.NextFunction) => Promise<express.Response | void>;
15
16
  export declare const validCursor: (req: PaginatedRequest, res: express.Response, next: express.NextFunction) => express.Response | void;
16
- export type ScopeTaggedMiddleware = ((...args: unknown[]) => unknown) & {
17
+ export type ScopeTaggedMiddleware = Middleware & {
17
18
  __apiKeyScope: ApiKeyScope;
18
19
  };
20
+ export type Middleware = (req: Request, res: Response, next: NextFunction) => unknown;
19
21
  export declare const publicApiScope: (apiKeyScope: ApiKeyScope) => ScopeTaggedMiddleware;
20
22
  export declare const apiKeyHasScopeWithGlobalScopeFallback: (config: {
21
23
  scope: ApiKeyScope & Scope;
@@ -1 +1 @@
1
- {"version":3,"file":"global.middleware.js","sourceRoot":"","sources":["../../../../../src/public-api/v1/shared/middlewares/global.middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"global.middleware.js","sourceRoot":"","sources":["../../../../../src/public-api/v1/shared/middlewares/global.middleware.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type User } from '@n8n/db';
2
+ import type { Scope } from '@n8n/permissions';
3
+ export declare function assertProjectScope(user: User, projectId: string, scopes: Scope[]): Promise<void>;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertProjectScope = assertProjectScope;
4
+ const db_1 = require("@n8n/db");
5
+ const di_1 = require("@n8n/di");
6
+ const forbidden_error_1 = require("../../../../errors/response-errors/forbidden.error");
7
+ const not_found_error_1 = require("../../../../errors/response-errors/not-found.error");
8
+ const project_service_ee_1 = require("../../../../services/project.service.ee");
9
+ async function assertProjectScope(user, projectId, scopes) {
10
+ const exists = await di_1.Container.get(db_1.ProjectRepository).findOneBy({ id: projectId });
11
+ if (!exists) {
12
+ throw new not_found_error_1.NotFoundError(`Project with ID "${projectId}" not found`);
13
+ }
14
+ const project = await di_1.Container.get(project_service_ee_1.ProjectService).getProjectWithScope(user, projectId, scopes);
15
+ if (!project)
16
+ throw new forbidden_error_1.ForbiddenError();
17
+ }
18
+ //# sourceMappingURL=utils.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.service.js","sourceRoot":"","sources":["../../../../../src/public-api/v1/shared/services/utils.service.ts"],"names":[],"mappings":";;AAQA,gDAYC;AApBD,gCAAuD;AACvD,gCAAoC;AAGpC,8EAA0E;AAC1E,8EAAyE;AACzE,sEAA+D;AAExD,KAAK,UAAU,kBAAkB,CACvC,IAAU,EACV,SAAiB,EACjB,MAAe;IAEf,MAAM,MAAM,GAAG,MAAM,cAAS,CAAC,GAAG,CAAC,sBAAiB,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IACnF,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,MAAM,IAAI,+BAAa,CAAC,oBAAoB,SAAS,aAAa,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,cAAS,CAAC,GAAG,CAAC,mCAAc,CAAC,CAAC,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACjG,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,gCAAc,EAAE,CAAC;AAC1C,CAAC"}
@@ -9,7 +9,7 @@ import { Publisher } from '../scaling/pubsub/publisher.service';
9
9
  import { TypedEmitter } from '../typed-emitter';
10
10
  import { PushConfig } from './push.config';
11
11
  import { SSEPush } from './sse.push';
12
- import type { OnPushMessage, PushResponse, SSEPushRequest, WebSocketPushRequest } from './types';
12
+ import { type OnPushMessage, type PushResponse, type SSEPushRequest, type WebSocketPushRequest } from './types';
13
13
  import { WebSocketPush } from './websocket.push';
14
14
  type PushEvents = {
15
15
  editorUiConnected: string;
@@ -29,6 +29,8 @@ const origin_validator_1 = require("./origin-validator");
29
29
  const push_config_1 = require("./push.config");
30
30
  const sse_push_1 = require("./sse.push");
31
31
  const websocket_push_1 = require("./websocket.push");
32
+ const push_helpers_1 = require("./push-helpers");
33
+ const internal_server_error_1 = require("../errors/response-errors/internal-server.error");
32
34
  const MAX_PAYLOAD_SIZE_BYTES = 5 * 1024 * 1024;
33
35
  let Push = class Push extends typed_emitter_1.TypedEmitter {
34
36
  constructor(config, instanceSettings, logger, authService, publisher) {
@@ -68,7 +70,15 @@ let Push = class Push extends typed_emitter_1.TypedEmitter {
68
70
  }
69
71
  }
70
72
  setupPushHandler(restEndpoint, app) {
71
- app.use(`/${restEndpoint}/push`, this.authService.createAuthMiddleware({ allowSkipMFA: false }), (req, res) => this.handleRequest(req, res));
73
+ app.use(`/${restEndpoint}/push`, this.authService.createAuthMiddleware({ allowSkipMFA: false }), (req, res) => {
74
+ if (!(0, push_helpers_1.isWebSocketPushRequest)(req) && !(0, push_helpers_1.isSSEPushRequest)(req)) {
75
+ throw new bad_request_error_1.BadRequestError('Request is not a PushRequest');
76
+ }
77
+ if (!(0, push_helpers_1.isPushResponse)(res)) {
78
+ throw new internal_server_error_1.InternalServerError('Malformed response object');
79
+ }
80
+ return this.handleRequest(req, res);
81
+ });
72
82
  }
73
83
  handleRequest(req, res) {
74
84
  const { ws, query: { pushRef }, user, headers, } = req;