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
@@ -52,6 +52,7 @@ const db_1 = require("@n8n/db");
52
52
  const decorators_1 = require("@n8n/decorators");
53
53
  const di_1 = require("@n8n/di");
54
54
  const axios_1 = __importDefault(require("axios"));
55
+ const crypto_1 = require("crypto");
55
56
  const n8n_core_1 = require("n8n-core");
56
57
  const n8n_workflow_1 = require("n8n-workflow");
57
58
  const auth_error_1 = require("../../errors/response-errors/auth.error");
@@ -73,7 +74,7 @@ let SamlService = class SamlService {
73
74
  loginLabel: (0, sso_helpers_1.getSamlLoginLabel)(),
74
75
  };
75
76
  }
76
- constructor(logger, urlService, validator, userRepository, settingsRepository, instanceSettings, provisioningService) {
77
+ constructor(logger, urlService, validator, userRepository, settingsRepository, instanceSettings, provisioningService, cipher) {
77
78
  this.logger = logger;
78
79
  this.urlService = urlService;
79
80
  this.validator = validator;
@@ -81,6 +82,7 @@ let SamlService = class SamlService {
81
82
  this.settingsRepository = settingsRepository;
82
83
  this.instanceSettings = instanceSettings;
83
84
  this.provisioningService = provisioningService;
85
+ this.cipher = cipher;
84
86
  this._samlPreferences = {
85
87
  mapping: {
86
88
  email: 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress',
@@ -94,6 +96,8 @@ let SamlService = class SamlService {
94
96
  loginBinding: 'redirect',
95
97
  acsBinding: 'post',
96
98
  authnRequestsSigned: false,
99
+ signingPrivateKey: undefined,
100
+ signingCertificate: undefined,
97
101
  loginEnabled: false,
98
102
  loginLabel: 'SAML',
99
103
  wantAssertionsSigned: true,
@@ -112,6 +116,74 @@ let SamlService = class SamlService {
112
116
  isSignedSamlRequestsEnabled() {
113
117
  return process.env.N8N_ENV_FEAT_SIGNED_SAML_REQUESTS === 'true';
114
118
  }
119
+ getDecryptedSigningPrivateKey() {
120
+ if (!this.isSignedSamlRequestsEnabled())
121
+ return undefined;
122
+ if (!this._samlPreferences.signingPrivateKey)
123
+ return undefined;
124
+ try {
125
+ return this.cipher.decrypt(this._samlPreferences.signingPrivateKey);
126
+ }
127
+ catch {
128
+ throw new bad_request_error_1.BadRequestError('Failed to decrypt SAML signing private key. The key may be corrupted.');
129
+ }
130
+ }
131
+ isValidPemPrivateKey(pem) {
132
+ return /^-----BEGIN (?:RSA |EC )?PRIVATE KEY-----[\s\S]+-----END (?:RSA |EC )?PRIVATE KEY-----/.test(pem.trim());
133
+ }
134
+ isValidPemCertificate(pem) {
135
+ return /^-----BEGIN CERTIFICATE-----[\s\S]+-----END CERTIFICATE-----/.test(pem.trim());
136
+ }
137
+ validateKeyPairMatch(privateKeyPem, certificatePem) {
138
+ try {
139
+ const pubKeyFromPrivate = (0, crypto_1.createPublicKey)(privateKeyPem);
140
+ const cert = new crypto_1.X509Certificate(certificatePem);
141
+ const pubKeyFromCert = cert.publicKey;
142
+ return pubKeyFromPrivate
143
+ .export({ type: 'spki', format: 'der' })
144
+ .equals(pubKeyFromCert.export({ type: 'spki', format: 'der' }));
145
+ }
146
+ catch {
147
+ return false;
148
+ }
149
+ }
150
+ validateSigningKeyConfiguration(prefs) {
151
+ const isClearingKey = prefs.signingPrivateKey === '';
152
+ const isClearingCert = prefs.signingCertificate === '';
153
+ const isNewKey = !!prefs.signingPrivateKey && prefs.signingPrivateKey !== n8n_workflow_1.CREDENTIAL_BLANKING_VALUE;
154
+ const isNewCert = !!prefs.signingCertificate;
155
+ const hasNewSigningFields = isNewKey || isNewCert;
156
+ if (hasNewSigningFields && !this.isSignedSamlRequestsEnabled()) {
157
+ throw new bad_request_error_1.BadRequestError('SAML request signing is not enabled. Set N8N_ENV_FEAT_SIGNED_SAML_REQUESTS=true to enable this feature.');
158
+ }
159
+ if (!this.isSignedSamlRequestsEnabled())
160
+ return;
161
+ if (isNewKey && !this.isValidPemPrivateKey(prefs.signingPrivateKey)) {
162
+ throw new bad_request_error_1.BadRequestError('Invalid signing private key format. Must be a PEM-encoded private key.');
163
+ }
164
+ if (isNewCert && !this.isValidPemCertificate(prefs.signingCertificate)) {
165
+ throw new bad_request_error_1.BadRequestError('Invalid signing certificate format. Must be a PEM-encoded certificate.');
166
+ }
167
+ const willHaveAuthnRequestsSigned = prefs.authnRequestsSigned ?? this._samlPreferences.authnRequestsSigned;
168
+ if (willHaveAuthnRequestsSigned) {
169
+ const effectiveKey = isClearingKey
170
+ ? undefined
171
+ : isNewKey
172
+ ? prefs.signingPrivateKey
173
+ : this.getDecryptedSigningPrivateKey();
174
+ const effectiveCert = isClearingCert
175
+ ? undefined
176
+ : isNewCert
177
+ ? prefs.signingCertificate
178
+ : this._samlPreferences.signingCertificate;
179
+ if (!effectiveKey || !effectiveCert) {
180
+ throw new bad_request_error_1.BadRequestError('Both signingPrivateKey and signingCertificate are required when authnRequestsSigned is enabled.');
181
+ }
182
+ if (!this.validateKeyPairMatch(effectiveKey, effectiveCert)) {
183
+ throw new bad_request_error_1.BadRequestError('The signing private key and certificate do not match. Please provide a matching key/certificate pair.');
184
+ }
185
+ }
186
+ }
115
187
  async init() {
116
188
  try {
117
189
  await this.loadFromDbAndApplySamlPreferences(false);
@@ -283,8 +355,17 @@ let SamlService = class SamlService {
283
355
  }
284
356
  async setSamlPreferences(prefs, tryFallback = false, broadcastReload = true) {
285
357
  await this.loadSamlify();
358
+ this.validateSigningKeyConfiguration(prefs);
286
359
  const previousMetadataUrl = this._samlPreferences.metadataUrl;
287
360
  await this.loadPreferencesWithoutValidation(prefs);
361
+ await this.applyLoadedPreferences(prefs, previousMetadataUrl, tryFallback);
362
+ const result = await this.saveSamlPreferencesToDb();
363
+ if (broadcastReload) {
364
+ await this.broadcastReloadSAMLConfigurationCommand();
365
+ }
366
+ return result;
367
+ }
368
+ async applyLoadedPreferences(prefs, previousMetadataUrl, tryFallback = true) {
288
369
  if (prefs.metadataUrl) {
289
370
  try {
290
371
  const fetchedMetadata = await this.fetchMetadataFromUrl();
@@ -321,11 +402,6 @@ let SamlService = class SamlService {
321
402
  }
322
403
  }
323
404
  this.getIdentityProviderInstance(true);
324
- const result = await this.saveSamlPreferencesToDb();
325
- if (broadcastReload) {
326
- await this.broadcastReloadSAMLConfigurationCommand();
327
- }
328
- return result;
329
405
  }
330
406
  async loadPreferencesWithoutValidation(prefs) {
331
407
  this._samlPreferences.loginBinding = prefs.loginBinding ?? this._samlPreferences.loginBinding;
@@ -341,6 +417,25 @@ let SamlService = class SamlService {
341
417
  prefs.wantAssertionsSigned ?? this._samlPreferences.wantAssertionsSigned;
342
418
  this._samlPreferences.wantMessageSigned =
343
419
  prefs.wantMessageSigned ?? this._samlPreferences.wantMessageSigned;
420
+ if (prefs.signingCertificate === '') {
421
+ this._samlPreferences.signingCertificate = undefined;
422
+ }
423
+ else {
424
+ this._samlPreferences.signingCertificate =
425
+ prefs.signingCertificate ?? this._samlPreferences.signingCertificate;
426
+ }
427
+ if (prefs.signingPrivateKey !== undefined &&
428
+ prefs.signingPrivateKey !== n8n_workflow_1.CREDENTIAL_BLANKING_VALUE) {
429
+ if (prefs.signingPrivateKey === '') {
430
+ this._samlPreferences.signingPrivateKey = undefined;
431
+ }
432
+ else if (this.isValidPemPrivateKey(prefs.signingPrivateKey)) {
433
+ this._samlPreferences.signingPrivateKey = this.cipher.encrypt(prefs.signingPrivateKey);
434
+ }
435
+ else {
436
+ this._samlPreferences.signingPrivateKey = prefs.signingPrivateKey;
437
+ }
438
+ }
344
439
  if (prefs.metadataUrl) {
345
440
  this._samlPreferences.metadataUrl = prefs.metadataUrl;
346
441
  }
@@ -359,7 +454,13 @@ let SamlService = class SamlService {
359
454
  const prefs = (0, n8n_workflow_1.jsonParse)(samlPreferences.value);
360
455
  if (prefs) {
361
456
  if (apply) {
362
- await this.setSamlPreferences(prefs, true, broadcastReload);
457
+ await this.loadSamlify();
458
+ const previousMetadataUrl = this._samlPreferences.metadataUrl;
459
+ await this.loadPreferencesWithoutValidation(prefs);
460
+ await this.applyLoadedPreferences(prefs, previousMetadataUrl);
461
+ if (broadcastReload) {
462
+ await this.broadcastReloadSAMLConfigurationCommand();
463
+ }
363
464
  }
364
465
  else {
365
466
  await this.loadPreferencesWithoutValidation(prefs);
@@ -466,6 +567,7 @@ exports.SamlService = SamlService = __decorate([
466
567
  db_1.UserRepository,
467
568
  db_1.SettingsRepository,
468
569
  n8n_core_1.InstanceSettings,
469
- provisioning_service_ee_1.ProvisioningService])
570
+ provisioning_service_ee_1.ProvisioningService,
571
+ n8n_core_1.Cipher])
470
572
  ], SamlService);
471
573
  //# sourceMappingURL=saml.service.ee.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"saml.service.ee.js","sourceRoot":"","sources":["../../../src/modules/sso-saml/saml.service.ee.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"saml.service.ee.js","sourceRoot":"","sources":["../../../src/modules/sso-saml/saml.service.ee.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { DependenciesBatchResponse, DependencyCountsBatchResponse, DependencyResourceType } from '@n8n/api-types';
2
+ import { CredentialsRepository, ProjectRelationRepository, WorkflowDependencyRepository, WorkflowRepository } from '@n8n/db';
3
+ import type { User } from '@n8n/db';
4
+ import { CredentialsFinderService } from '../../credentials/credentials-finder.service';
5
+ import { DataTableRepository } from '../../modules/data-table/data-table.repository';
6
+ import { RoleService } from '../../services/role.service';
7
+ import { WorkflowFinderService } from '../../workflows/workflow-finder.service';
8
+ export declare class WorkflowDependencyQueryService {
9
+ private readonly dependencyRepository;
10
+ private readonly credentialsRepository;
11
+ private readonly workflowRepository;
12
+ private readonly dataTableRepository;
13
+ private readonly workflowFinderService;
14
+ private readonly credentialsFinderService;
15
+ private readonly projectRelationRepository;
16
+ private readonly roleService;
17
+ constructor(dependencyRepository: WorkflowDependencyRepository, credentialsRepository: CredentialsRepository, workflowRepository: WorkflowRepository, dataTableRepository: DataTableRepository, workflowFinderService: WorkflowFinderService, credentialsFinderService: CredentialsFinderService, projectRelationRepository: ProjectRelationRepository, roleService: RoleService);
18
+ getDependencyCounts(resourceIds: string[], resourceType: DependencyResourceType, user: User): Promise<DependencyCountsBatchResponse>;
19
+ getResourceDependencies(resourceIds: string[], resourceType: DependencyResourceType, user: User): Promise<DependenciesBatchResponse>;
20
+ private loadDepsForResources;
21
+ private buildDepMaps;
22
+ private buildEnrichedResult;
23
+ private filterByAccess;
24
+ private filterDataTableIdsByAccess;
25
+ }
@@ -0,0 +1,220 @@
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.WorkflowDependencyQueryService = void 0;
13
+ const db_1 = require("@n8n/db");
14
+ const di_1 = require("@n8n/di");
15
+ const permissions_1 = require("@n8n/permissions");
16
+ const typeorm_1 = require("@n8n/typeorm");
17
+ const credentials_finder_service_1 = require("../../credentials/credentials-finder.service");
18
+ const data_table_repository_1 = require("../../modules/data-table/data-table.repository");
19
+ const role_service_1 = require("../../services/role.service");
20
+ const workflow_finder_service_1 = require("../../workflows/workflow-finder.service");
21
+ let WorkflowDependencyQueryService = class WorkflowDependencyQueryService {
22
+ constructor(dependencyRepository, credentialsRepository, workflowRepository, dataTableRepository, workflowFinderService, credentialsFinderService, projectRelationRepository, roleService) {
23
+ this.dependencyRepository = dependencyRepository;
24
+ this.credentialsRepository = credentialsRepository;
25
+ this.workflowRepository = workflowRepository;
26
+ this.dataTableRepository = dataTableRepository;
27
+ this.workflowFinderService = workflowFinderService;
28
+ this.credentialsFinderService = credentialsFinderService;
29
+ this.projectRelationRepository = projectRelationRepository;
30
+ this.roleService = roleService;
31
+ }
32
+ async getDependencyCounts(resourceIds, resourceType, user) {
33
+ const loaded = await this.loadDepsForResources(resourceIds, resourceType, user);
34
+ if (!loaded)
35
+ return {};
36
+ const { accessibleInputIds, maps } = loaded;
37
+ const result = {};
38
+ for (const id of accessibleInputIds) {
39
+ result[id] = {
40
+ credentialId: maps.credMap.get(id)?.size ?? 0,
41
+ dataTableId: maps.dtMap.get(id)?.size ?? 0,
42
+ workflowCall: maps.subMap.get(id)?.size ?? 0,
43
+ workflowParent: maps.parentMap.get(id)?.size ?? 0,
44
+ };
45
+ }
46
+ return result;
47
+ }
48
+ async getResourceDependencies(resourceIds, resourceType, user) {
49
+ const loaded = await this.loadDepsForResources(resourceIds, resourceType, user);
50
+ if (!loaded)
51
+ return {};
52
+ const { accessibleInputIds, maps } = loaded;
53
+ const [accessibleWfIds, accessibleCredIds, accessibleDtIds] = await Promise.all([
54
+ this.filterByAccess([...maps.allWfIds], 'workflow', user),
55
+ this.filterByAccess([...maps.allCredIds], 'credential', user),
56
+ this.filterByAccess([...maps.allDtIds], 'dataTable', user),
57
+ ]);
58
+ const [credentials, workflows, dataTables] = await Promise.all([
59
+ accessibleCredIds.length > 0
60
+ ? this.credentialsRepository.find({
61
+ where: { id: (0, typeorm_1.In)(accessibleCredIds) },
62
+ select: ['id', 'name'],
63
+ })
64
+ : [],
65
+ accessibleWfIds.length > 0
66
+ ? this.workflowRepository.find({
67
+ where: { id: (0, typeorm_1.In)(accessibleWfIds) },
68
+ select: ['id', 'name'],
69
+ })
70
+ : [],
71
+ accessibleDtIds.length > 0
72
+ ? this.dataTableRepository.find({
73
+ where: { id: (0, typeorm_1.In)(accessibleDtIds) },
74
+ select: ['id', 'name', 'projectId'],
75
+ })
76
+ : [],
77
+ ]);
78
+ const wfNames = new Map();
79
+ const credNames = new Map();
80
+ const dtNames = new Map();
81
+ for (const c of credentials)
82
+ credNames.set(c.id, c.name ?? c.id);
83
+ for (const w of workflows)
84
+ wfNames.set(w.id, w.name ?? w.id);
85
+ for (const dt of dataTables)
86
+ dtNames.set(dt.id, { name: dt.name ?? dt.id, projectId: dt.projectId });
87
+ return this.buildEnrichedResult(accessibleInputIds, maps, {
88
+ wfNames,
89
+ credNames,
90
+ dtNames,
91
+ });
92
+ }
93
+ async loadDepsForResources(resourceIds, resourceType, user) {
94
+ const accessibleInputIds = await this.filterByAccess(resourceIds, resourceType, user);
95
+ if (accessibleInputIds.length === 0)
96
+ return null;
97
+ const rawDeps = await this.dependencyRepository.find({
98
+ where: [
99
+ {
100
+ workflowId: (0, typeorm_1.In)(accessibleInputIds),
101
+ dependencyType: (0, typeorm_1.In)(['credentialId', 'dataTableId', 'workflowCall']),
102
+ },
103
+ { dependencyKey: (0, typeorm_1.In)(accessibleInputIds) },
104
+ ],
105
+ select: ['workflowId', 'dependencyType', 'dependencyKey'],
106
+ });
107
+ if (rawDeps.length === 0)
108
+ return null;
109
+ return { accessibleInputIds, maps: this.buildDepMaps(rawDeps) };
110
+ }
111
+ buildDepMaps(rawDeps) {
112
+ const credMap = new Map();
113
+ const dtMap = new Map();
114
+ const subMap = new Map();
115
+ const parentMap = new Map();
116
+ const allCredIds = new Set();
117
+ const allWfIds = new Set();
118
+ const allDtIds = new Set();
119
+ for (const dep of rawDeps) {
120
+ allWfIds.add(dep.workflowId);
121
+ addToSet(parentMap, dep.dependencyKey, dep.workflowId);
122
+ switch (dep.dependencyType) {
123
+ case 'credentialId':
124
+ addToSet(credMap, dep.workflowId, dep.dependencyKey);
125
+ allCredIds.add(dep.dependencyKey);
126
+ break;
127
+ case 'dataTableId':
128
+ addToSet(dtMap, dep.workflowId, dep.dependencyKey);
129
+ allDtIds.add(dep.dependencyKey);
130
+ break;
131
+ case 'workflowCall':
132
+ addToSet(subMap, dep.workflowId, dep.dependencyKey);
133
+ allWfIds.add(dep.dependencyKey);
134
+ break;
135
+ }
136
+ }
137
+ return { credMap, dtMap, subMap, parentMap, allCredIds, allWfIds, allDtIds };
138
+ }
139
+ buildEnrichedResult(resourceIds, maps, accessMaps) {
140
+ const result = {};
141
+ for (const resourceId of resourceIds) {
142
+ const dependencies = [];
143
+ let inaccessibleCount = 0;
144
+ const resolve = (ids, nameMap, type) => {
145
+ for (const id of ids ?? []) {
146
+ const name = nameMap.get(id);
147
+ if (name !== undefined) {
148
+ dependencies.push({ id, name, type });
149
+ }
150
+ else {
151
+ inaccessibleCount++;
152
+ }
153
+ }
154
+ };
155
+ resolve(maps.subMap.get(resourceId), accessMaps.wfNames, 'workflowCall');
156
+ resolve(maps.parentMap.get(resourceId), accessMaps.wfNames, 'workflowParent');
157
+ resolve(maps.credMap.get(resourceId), accessMaps.credNames, 'credentialId');
158
+ for (const id of maps.dtMap.get(resourceId) ?? []) {
159
+ const dt = accessMaps.dtNames.get(id);
160
+ if (dt) {
161
+ dependencies.push({ id, name: dt.name, type: 'dataTableId', projectId: dt.projectId });
162
+ }
163
+ else {
164
+ inaccessibleCount++;
165
+ }
166
+ }
167
+ result[resourceId] = { dependencies, inaccessibleCount };
168
+ }
169
+ return result;
170
+ }
171
+ async filterByAccess(ids, resourceType, user) {
172
+ if (ids.length === 0)
173
+ return [];
174
+ switch (resourceType) {
175
+ case 'workflow': {
176
+ const accessible = await this.workflowFinderService.findWorkflowIdsWithScopeForUser(ids, user, ['workflow:read']);
177
+ return ids.filter((id) => accessible.has(id));
178
+ }
179
+ case 'credential': {
180
+ const accessible = await this.credentialsFinderService.findCredentialIdsWithScopeForUser(ids, user, ['credential:read']);
181
+ return ids.filter((id) => accessible.has(id));
182
+ }
183
+ case 'dataTable': {
184
+ return await this.filterDataTableIdsByAccess(ids, user);
185
+ }
186
+ }
187
+ }
188
+ async filterDataTableIdsByAccess(ids, user) {
189
+ if ((0, permissions_1.hasGlobalScope)(user, 'dataTable:listProject'))
190
+ return ids;
191
+ const dataTables = await this.dataTableRepository.find({
192
+ where: { id: (0, typeorm_1.In)(ids) },
193
+ select: ['id', 'projectId'],
194
+ });
195
+ const roles = await this.roleService.rolesWithScope('project', ['dataTable:listProject']);
196
+ const accessibleProjectIds = new Set(await this.projectRelationRepository.getAccessibleProjectsByRoles(user.id, roles));
197
+ return dataTables.filter((dt) => accessibleProjectIds.has(dt.projectId)).map((dt) => dt.id);
198
+ }
199
+ };
200
+ exports.WorkflowDependencyQueryService = WorkflowDependencyQueryService;
201
+ exports.WorkflowDependencyQueryService = WorkflowDependencyQueryService = __decorate([
202
+ (0, di_1.Service)(),
203
+ __metadata("design:paramtypes", [db_1.WorkflowDependencyRepository,
204
+ db_1.CredentialsRepository,
205
+ db_1.WorkflowRepository,
206
+ data_table_repository_1.DataTableRepository,
207
+ workflow_finder_service_1.WorkflowFinderService,
208
+ credentials_finder_service_1.CredentialsFinderService,
209
+ db_1.ProjectRelationRepository,
210
+ role_service_1.RoleService])
211
+ ], WorkflowDependencyQueryService);
212
+ function addToSet(map, key, val) {
213
+ let set = map.get(key);
214
+ if (!set) {
215
+ set = new Set();
216
+ map.set(key, set);
217
+ }
218
+ set.add(val);
219
+ }
220
+ //# sourceMappingURL=workflow-dependency-query.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-dependency-query.service.js","sourceRoot":"","sources":["../../../src/modules/workflow-index/workflow-dependency-query.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { GetResourceDependenciesDto, GetResourceDependencyCountsDto } from '@n8n/api-types';
2
+ import { WorkflowsConfig } from '@n8n/config';
3
+ import { AuthenticatedRequest } from '@n8n/db';
4
+ import { WorkflowDependencyQueryService } from './workflow-dependency-query.service';
5
+ export declare class WorkflowDependencyController {
6
+ private readonly workflowDependencyQueryService;
7
+ private readonly workflowsConfig;
8
+ constructor(workflowDependencyQueryService: WorkflowDependencyQueryService, workflowsConfig: WorkflowsConfig);
9
+ getResourceDependencyCounts(req: AuthenticatedRequest, _res: unknown, body: GetResourceDependencyCountsDto): Promise<import("@n8n/api-types").DependencyCountsBatchResponse>;
10
+ getResourceDependencies(req: AuthenticatedRequest, _res: unknown, body: GetResourceDependenciesDto): Promise<import("@n8n/api-types").DependenciesBatchResponse>;
11
+ private assertIndexingEnabled;
12
+ }
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.WorkflowDependencyController = void 0;
16
+ const api_types_1 = require("@n8n/api-types");
17
+ const config_1 = require("@n8n/config");
18
+ const decorators_1 = require("@n8n/decorators");
19
+ const service_unavailable_error_1 = require("../../errors/response-errors/service-unavailable.error");
20
+ const workflow_dependency_query_service_1 = require("./workflow-dependency-query.service");
21
+ let WorkflowDependencyController = class WorkflowDependencyController {
22
+ constructor(workflowDependencyQueryService, workflowsConfig) {
23
+ this.workflowDependencyQueryService = workflowDependencyQueryService;
24
+ this.workflowsConfig = workflowsConfig;
25
+ }
26
+ async getResourceDependencyCounts(req, _res, body) {
27
+ this.assertIndexingEnabled();
28
+ return await this.workflowDependencyQueryService.getDependencyCounts(body.resourceIds, body.resourceType, req.user);
29
+ }
30
+ async getResourceDependencies(req, _res, body) {
31
+ this.assertIndexingEnabled();
32
+ return await this.workflowDependencyQueryService.getResourceDependencies(body.resourceIds, body.resourceType, req.user);
33
+ }
34
+ assertIndexingEnabled() {
35
+ if (!this.workflowsConfig.indexingEnabled) {
36
+ throw new service_unavailable_error_1.ServiceUnavailableError('Workflow dependency indexing is not enabled');
37
+ }
38
+ }
39
+ };
40
+ exports.WorkflowDependencyController = WorkflowDependencyController;
41
+ __decorate([
42
+ (0, decorators_1.Post)('/counts'),
43
+ __param(2, decorators_1.Body),
44
+ __metadata("design:type", Function),
45
+ __metadata("design:paramtypes", [Object, Object, api_types_1.GetResourceDependencyCountsDto]),
46
+ __metadata("design:returntype", Promise)
47
+ ], WorkflowDependencyController.prototype, "getResourceDependencyCounts", null);
48
+ __decorate([
49
+ (0, decorators_1.Post)('/details'),
50
+ __param(2, decorators_1.Body),
51
+ __metadata("design:type", Function),
52
+ __metadata("design:paramtypes", [Object, Object, api_types_1.GetResourceDependenciesDto]),
53
+ __metadata("design:returntype", Promise)
54
+ ], WorkflowDependencyController.prototype, "getResourceDependencies", null);
55
+ exports.WorkflowDependencyController = WorkflowDependencyController = __decorate([
56
+ (0, decorators_1.RestController)('/workflow-dependencies'),
57
+ __metadata("design:paramtypes", [workflow_dependency_query_service_1.WorkflowDependencyQueryService,
58
+ config_1.WorkflowsConfig])
59
+ ], WorkflowDependencyController);
60
+ //# sourceMappingURL=workflow-dependency.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-dependency.controller.js","sourceRoot":"","sources":["../../../src/modules/workflow-index/workflow-dependency.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,8CAA4F;AAC5F,wCAA8C;AAE9C,gDAA6D;AAE7D,kGAA6F;AAE7F,2FAAqF;AAG9E,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;IACxC,YACkB,8BAA8D,EAC9D,eAAgC;QADhC,mCAA8B,GAA9B,8BAA8B,CAAgC;QAC9D,oBAAe,GAAf,eAAe,CAAiB;IAC/C,CAAC;IAGE,AAAN,KAAK,CAAC,2BAA2B,CAChC,GAAyB,EACzB,IAAa,EACP,IAAoC;QAE1C,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE7B,OAAO,MAAM,IAAI,CAAC,8BAA8B,CAAC,mBAAmB,CACnE,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,YAAY,EACjB,GAAG,CAAC,IAAI,CACR,CAAC;IACH,CAAC;IAGK,AAAN,KAAK,CAAC,uBAAuB,CAC5B,GAAyB,EACzB,IAAa,EACP,IAAgC;QAEtC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE7B,OAAO,MAAM,IAAI,CAAC,8BAA8B,CAAC,uBAAuB,CACvE,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,YAAY,EACjB,GAAG,CAAC,IAAI,CACR,CAAC;IACH,CAAC;IAEO,qBAAqB;QAC5B,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;YAC3C,MAAM,IAAI,mDAAuB,CAAC,6CAA6C,CAAC,CAAC;QAClF,CAAC;IACF,CAAC;CACD,CAAA;AAzCY,oEAA4B;AAOlC;IADL,IAAA,iBAAI,EAAC,SAAS,CAAC;IAId,WAAA,iBAAI,CAAA;;qDAAO,0CAA8B;;+EAS1C;AAGK;IADL,IAAA,iBAAI,EAAC,UAAU,CAAC;IAIf,WAAA,iBAAI,CAAA;;qDAAO,sCAA0B;;2EAStC;uCAlCW,4BAA4B;IADxC,IAAA,2BAAc,EAAC,wBAAwB,CAAC;qCAGU,kEAA8B;QAC7C,wBAAe;GAHtC,4BAA4B,CAyCxC"}
@@ -1,9 +1,6 @@
1
1
  import type { Response } from 'express';
2
2
  import type { AuditRequest } from '../../../../public-api/types';
3
3
  declare const _default: {
4
- generateAudit: (((req: import("@n8n/db").AuthenticatedRequest<{
5
- id?: string;
6
- dataTableId?: string;
7
- }>, res: Response, next: import("express").NextFunction) => Promise<Response | void>) | ((req: import("express").Request, res: Response, next: import("express").NextFunction) => Promise<void>) | ((req: AuditRequest.Generate, res: Response) => Promise<Response>))[];
4
+ generateAudit: (import("../../shared/middlewares/global.middleware").ScopeTaggedMiddleware | ((req: AuditRequest.Generate, res: Response) => Promise<Response>))[];
8
5
  };
9
6
  export = _default;