@atom8n/n8n 2.4.6 → 2.5.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 (201) hide show
  1. package/dist/build.tsbuildinfo +1 -1
  2. package/dist/commands/execute-batch.d.ts +2 -2
  3. package/dist/commands/import/credentials.d.ts +2 -2
  4. package/dist/commands/import/workflow.d.ts +2 -2
  5. package/dist/commands/ldap/reset.d.ts +2 -2
  6. package/dist/events/relays/workflow-failure-notification.event-relay.d.ts +13 -0
  7. package/dist/events/relays/workflow-failure-notification.event-relay.js +77 -0
  8. package/dist/executions/execution-data/types.d.ts +17 -0
  9. package/dist/executions/execution-data/types.js +2 -0
  10. package/dist/executions/failed-run-factory.d.ts +4 -0
  11. package/dist/executions/failed-run-factory.js +71 -0
  12. package/dist/interfaces.d.ts +1 -1
  13. package/dist/license.js +1 -1
  14. package/dist/middlewares/webview-frame-options.d.ts +2 -0
  15. package/dist/middlewares/webview-frame-options.js +22 -0
  16. package/dist/modules/chat-hub/chat-hub-extractor.d.ts +22 -0
  17. package/dist/modules/chat-hub/chat-hub-extractor.js +63 -0
  18. package/dist/modules/dynamic-credentials.ee/credential-resolvers/storage/dynamic-credential-user-entry-storage.d.ts +11 -0
  19. package/dist/modules/dynamic-credentials.ee/credential-resolvers/storage/dynamic-credential-user-entry-storage.js +58 -0
  20. package/dist/modules/dynamic-credentials.ee/database/entities/dynamic-credential-user-entry.d.ts +12 -0
  21. package/dist/modules/dynamic-credentials.ee/database/entities/dynamic-credential-user-entry.js +64 -0
  22. package/dist/modules/dynamic-credentials.ee/database/repositories/dynamic-credential-user-entry.repository.d.ts +5 -0
  23. package/dist/modules/dynamic-credentials.ee/database/repositories/dynamic-credential-user-entry.repository.js +25 -0
  24. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.config.d.ts +5 -0
  25. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.config.js +36 -0
  26. package/dist/modules/dynamic-credentials.ee/services/dynamic-credential-cors.service.d.ts +12 -0
  27. package/dist/modules/dynamic-credentials.ee/services/dynamic-credential-cors.service.js +69 -0
  28. package/dist/modules/dynamic-credentials.ee/services/resolver-config-expression.service.d.ts +7 -0
  29. package/dist/modules/dynamic-credentials.ee/services/resolver-config-expression.service.js +46 -0
  30. package/dist/modules/insights/database/entities/insights-metadata.js +1 -1
  31. package/dist/modules/insights/database/repositories/insights-by-period-query.helper.js +4 -1
  32. package/dist/modules/insights/database/repositories/insights-by-period.repository.d.ts +1 -1
  33. package/dist/modules/insights/insights.module.d.ts +1 -1
  34. package/dist/modules/insights/insights.service.d.ts +1 -1
  35. package/dist/modules/log-streaming.ee/database/entities/event-destination.entity.d.ts +6 -0
  36. package/dist/modules/log-streaming.ee/database/entities/event-destination.entity.js +28 -0
  37. package/dist/modules/log-streaming.ee/database/entities/index.d.ts +1 -0
  38. package/dist/modules/log-streaming.ee/database/entities/index.js +5 -0
  39. package/dist/modules/log-streaming.ee/database/repositories/event-destination.repository.d.ts +5 -0
  40. package/dist/modules/log-streaming.ee/database/repositories/event-destination.repository.js +25 -0
  41. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-from-db.d.ts +4 -0
  42. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-from-db.js +24 -0
  43. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-sentry.ee.d.ts +17 -0
  44. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-sentry.ee.js +131 -0
  45. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-syslog.ee.d.ts +22 -0
  46. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-syslog.ee.js +116 -0
  47. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-webhook.ee.d.ts +35 -0
  48. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-webhook.ee.js +328 -0
  49. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination.ee.d.ts +28 -0
  50. package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination.ee.js +74 -0
  51. package/dist/modules/log-streaming.ee/log-streaming-destination.service.d.ts +32 -0
  52. package/dist/modules/log-streaming.ee/log-streaming-destination.service.js +175 -0
  53. package/dist/modules/log-streaming.ee/log-streaming.controller.d.ts +15 -0
  54. package/dist/modules/log-streaming.ee/log-streaming.controller.js +149 -0
  55. package/dist/modules/log-streaming.ee/log-streaming.module.d.ts +5 -0
  56. package/dist/modules/log-streaming.ee/log-streaming.module.js +66 -0
  57. package/dist/modules/mcp/tools/execute-workflow.tool.d.ts +6 -6
  58. package/dist/modules/source-control.ee/constants.d.ts +17 -0
  59. package/dist/modules/source-control.ee/constants.js +22 -0
  60. package/dist/modules/source-control.ee/middleware/source-control-enabled-middleware.ee.d.ts +2 -0
  61. package/dist/modules/source-control.ee/middleware/source-control-enabled-middleware.ee.js +18 -0
  62. package/dist/modules/source-control.ee/source-control-export.service.ee.d.ts +37 -0
  63. package/dist/modules/source-control.ee/source-control-export.service.ee.js +426 -0
  64. package/dist/modules/source-control.ee/source-control-git.service.ee.d.ts +59 -0
  65. package/dist/modules/source-control.ee/source-control-git.service.ee.js +427 -0
  66. package/dist/modules/source-control.ee/source-control-helper.ee.d.ts +49 -0
  67. package/dist/modules/source-control.ee/source-control-helper.ee.js +241 -0
  68. package/dist/modules/source-control.ee/source-control-import.service.ee.d.ts +110 -0
  69. package/dist/modules/source-control.ee/source-control-import.service.ee.js +957 -0
  70. package/dist/modules/source-control.ee/source-control-preferences.service.ee.d.ts +46 -0
  71. package/dist/modules/source-control.ee/source-control-preferences.service.ee.js +309 -0
  72. package/dist/modules/source-control.ee/source-control-resource-helper.d.ts +4 -0
  73. package/dist/modules/source-control.ee/source-control-resource-helper.js +20 -0
  74. package/dist/modules/source-control.ee/source-control-scoped.service.d.ts +17 -0
  75. package/dist/modules/source-control.ee/source-control-scoped.service.js +134 -0
  76. package/dist/modules/source-control.ee/source-control-status.service.ee.d.ts +90 -0
  77. package/dist/modules/source-control.ee/source-control-status.service.ee.js +596 -0
  78. package/dist/modules/source-control.ee/source-control.config.d.ts +3 -0
  79. package/dist/modules/source-control.ee/source-control.config.js +26 -0
  80. package/dist/modules/source-control.ee/source-control.controller.ee.d.ts +157 -0
  81. package/dist/modules/source-control.ee/source-control.controller.ee.js +347 -0
  82. package/dist/modules/source-control.ee/source-control.module.d.ts +4 -0
  83. package/dist/modules/source-control.ee/source-control.module.js +59 -0
  84. package/dist/modules/source-control.ee/source-control.service.ee.d.ts +125 -0
  85. package/dist/modules/source-control.ee/source-control.service.ee.js +466 -0
  86. package/dist/modules/source-control.ee/types/export-result.d.ts +10 -0
  87. package/dist/modules/source-control.ee/types/export-result.js +2 -0
  88. package/dist/modules/source-control.ee/types/exportable-credential.d.ts +14 -0
  89. package/dist/modules/source-control.ee/types/exportable-credential.js +2 -0
  90. package/dist/modules/source-control.ee/types/exportable-folders.d.ts +11 -0
  91. package/dist/modules/source-control.ee/types/exportable-folders.js +2 -0
  92. package/dist/modules/source-control.ee/types/exportable-project.d.ts +17 -0
  93. package/dist/modules/source-control.ee/types/exportable-project.js +2 -0
  94. package/dist/modules/source-control.ee/types/exportable-tags.d.ts +5 -0
  95. package/dist/modules/source-control.ee/types/exportable-tags.js +2 -0
  96. package/dist/modules/source-control.ee/types/exportable-variable.d.ts +7 -0
  97. package/dist/modules/source-control.ee/types/exportable-variable.js +2 -0
  98. package/dist/modules/source-control.ee/types/exportable-workflow.d.ts +14 -0
  99. package/dist/modules/source-control.ee/types/exportable-workflow.js +2 -0
  100. package/dist/modules/source-control.ee/types/import-result.d.ts +20 -0
  101. package/dist/modules/source-control.ee/types/import-result.js +2 -0
  102. package/dist/modules/source-control.ee/types/key-pair-type.d.ts +1 -0
  103. package/dist/modules/source-control.ee/types/key-pair-type.js +2 -0
  104. package/dist/modules/source-control.ee/types/key-pair.d.ts +4 -0
  105. package/dist/modules/source-control.ee/types/key-pair.js +2 -0
  106. package/dist/modules/source-control.ee/types/requests.d.ts +21 -0
  107. package/dist/modules/source-control.ee/types/requests.js +2 -0
  108. package/dist/modules/source-control.ee/types/resource-owner.d.ts +17 -0
  109. package/dist/modules/source-control.ee/types/resource-owner.js +2 -0
  110. package/dist/modules/source-control.ee/types/source-control-commit.d.ts +3 -0
  111. package/dist/modules/source-control.ee/types/source-control-commit.js +20 -0
  112. package/dist/modules/source-control.ee/types/source-control-context.d.ts +7 -0
  113. package/dist/modules/source-control.ee/types/source-control-context.js +16 -0
  114. package/dist/modules/source-control.ee/types/source-control-disconnect.d.ts +3 -0
  115. package/dist/modules/source-control.ee/types/source-control-disconnect.js +21 -0
  116. package/dist/modules/source-control.ee/types/source-control-generate-key-pair.d.ts +4 -0
  117. package/dist/modules/source-control.ee/types/source-control-generate-key-pair.js +21 -0
  118. package/dist/modules/source-control.ee/types/source-control-get-status.d.ts +10 -0
  119. package/dist/modules/source-control.ee/types/source-control-get-status.js +42 -0
  120. package/dist/modules/source-control.ee/types/source-control-preferences.d.ts +17 -0
  121. package/dist/modules/source-control.ee/types/source-control-preferences.js +88 -0
  122. package/dist/modules/source-control.ee/types/source-control-push.d.ts +3 -0
  123. package/dist/modules/source-control.ee/types/source-control-push.js +21 -0
  124. package/dist/modules/source-control.ee/types/source-control-set-branch.d.ts +3 -0
  125. package/dist/modules/source-control.ee/types/source-control-set-branch.js +20 -0
  126. package/dist/modules/source-control.ee/types/source-control-set-read-only.d.ts +3 -0
  127. package/dist/modules/source-control.ee/types/source-control-set-read-only.js +20 -0
  128. package/dist/modules/source-control.ee/types/source-control-stage.d.ts +5 -0
  129. package/dist/modules/source-control.ee/types/source-control-stage.js +31 -0
  130. package/dist/modules/source-control.ee/types/source-control-workflow-version-id.d.ts +12 -0
  131. package/dist/modules/source-control.ee/types/source-control-workflow-version-id.js +2 -0
  132. package/dist/modules/sso-oidc/constants.d.ts +3 -0
  133. package/dist/modules/sso-oidc/constants.js +6 -0
  134. package/dist/modules/sso-oidc/oidc.controller.ee.d.ts +23 -0
  135. package/dist/modules/sso-oidc/oidc.controller.ee.js +123 -0
  136. package/dist/modules/sso-oidc/oidc.service.ee.d.ts +56 -0
  137. package/dist/modules/sso-oidc/oidc.service.ee.js +468 -0
  138. package/dist/modules/sso-oidc/sso-oidc.module.d.ts +4 -0
  139. package/dist/modules/sso-oidc/sso-oidc.module.js +55 -0
  140. package/dist/modules/sso-saml/constants.d.ts +3 -0
  141. package/dist/modules/sso-saml/constants.js +6 -0
  142. package/dist/modules/sso-saml/errors/invalid-saml-metadata-url.error.d.ts +4 -0
  143. package/dist/modules/sso-saml/errors/invalid-saml-metadata-url.error.js +10 -0
  144. package/dist/modules/sso-saml/errors/invalid-saml-metadata.error.d.ts +4 -0
  145. package/dist/modules/sso-saml/errors/invalid-saml-metadata.error.js +10 -0
  146. package/dist/modules/sso-saml/middleware/saml-enabled-middleware.d.ts +3 -0
  147. package/dist/modules/sso-saml/middleware/saml-enabled-middleware.js +22 -0
  148. package/dist/modules/sso-saml/saml-helpers.d.ts +19 -0
  149. package/dist/modules/sso-saml/saml-helpers.js +129 -0
  150. package/dist/modules/sso-saml/saml-validator.d.ts +16 -0
  151. package/dist/modules/sso-saml/saml-validator.js +129 -0
  152. package/dist/modules/sso-saml/saml.controller.ee.d.ts +50 -0
  153. package/dist/modules/sso-saml/saml.controller.ee.js +227 -0
  154. package/dist/modules/sso-saml/saml.service.ee.d.ts +52 -0
  155. package/dist/modules/sso-saml/saml.service.ee.js +462 -0
  156. package/dist/modules/sso-saml/schema/metadata-exchange.xsd.d.ts +2 -0
  157. package/dist/modules/sso-saml/schema/metadata-exchange.xsd.js +118 -0
  158. package/dist/modules/sso-saml/schema/oasis-200401-wss-wssecurity-secext-1.0.xsd.d.ts +2 -0
  159. package/dist/modules/sso-saml/schema/oasis-200401-wss-wssecurity-secext-1.0.xsd.js +201 -0
  160. package/dist/modules/sso-saml/schema/oasis-200401-wss-wssecurity-utility-1.0.xsd.d.ts +2 -0
  161. package/dist/modules/sso-saml/schema/oasis-200401-wss-wssecurity-utility-1.0.xsd.js +114 -0
  162. package/dist/modules/sso-saml/schema/saml-schema-assertion-2.0.xsd.d.ts +2 -0
  163. package/dist/modules/sso-saml/schema/saml-schema-assertion-2.0.xsd.js +289 -0
  164. package/dist/modules/sso-saml/schema/saml-schema-metadata-2.0.xsd.d.ts +2 -0
  165. package/dist/modules/sso-saml/schema/saml-schema-metadata-2.0.xsd.js +344 -0
  166. package/dist/modules/sso-saml/schema/saml-schema-protocol-2.0.xsd.d.ts +2 -0
  167. package/dist/modules/sso-saml/schema/saml-schema-protocol-2.0.xsd.js +308 -0
  168. package/dist/modules/sso-saml/schema/ws-addr.xsd.d.ts +2 -0
  169. package/dist/modules/sso-saml/schema/ws-addr.xsd.js +143 -0
  170. package/dist/modules/sso-saml/schema/ws-authorization.xsd.d.ts +2 -0
  171. package/dist/modules/sso-saml/schema/ws-authorization.xsd.js +151 -0
  172. package/dist/modules/sso-saml/schema/ws-federation.xsd.d.ts +2 -0
  173. package/dist/modules/sso-saml/schema/ws-federation.xsd.js +476 -0
  174. package/dist/modules/sso-saml/schema/ws-securitypolicy-1.2.xsd.d.ts +2 -0
  175. package/dist/modules/sso-saml/schema/ws-securitypolicy-1.2.xsd.js +1211 -0
  176. package/dist/modules/sso-saml/schema/xenc-schema.xsd.d.ts +2 -0
  177. package/dist/modules/sso-saml/schema/xenc-schema.xsd.js +151 -0
  178. package/dist/modules/sso-saml/schema/xml.xsd.d.ts +2 -0
  179. package/dist/modules/sso-saml/schema/xml.xsd.js +123 -0
  180. package/dist/modules/sso-saml/schema/xmldsig-core-schema.xsd.d.ts +2 -0
  181. package/dist/modules/sso-saml/schema/xmldsig-core-schema.xsd.js +324 -0
  182. package/dist/modules/sso-saml/service-provider.ee.d.ts +6 -0
  183. package/dist/modules/sso-saml/service-provider.ee.js +44 -0
  184. package/dist/modules/sso-saml/sso-saml.module.d.ts +4 -0
  185. package/dist/modules/sso-saml/sso-saml.module.js +55 -0
  186. package/dist/modules/sso-saml/types.d.ts +4 -0
  187. package/dist/modules/sso-saml/types.js +2 -0
  188. package/dist/modules/sso-saml/views/init-sso-post.d.ts +2 -0
  189. package/dist/modules/sso-saml/views/init-sso-post.js +16 -0
  190. package/dist/push/index.d.ts +1 -1
  191. package/dist/services/cors-service.d.ts +7 -0
  192. package/dist/services/cors-service.js +50 -0
  193. package/dist/services/static-auth-service.d.ts +4 -0
  194. package/dist/services/static-auth-service.js +29 -0
  195. package/dist/user-management/email/templates/workflow-failure.handlebars +211 -0
  196. package/dist/utils/cors.util.d.ts +2 -0
  197. package/dist/utils/cors.util.js +17 -0
  198. package/dist/webhooks/waiting-forms.js +3 -3
  199. package/dist/webhooks/waiting-webhooks.js +2 -0
  200. package/dist/workflows/workflows.controller.d.ts +2 -2
  201. package/package.json +21 -21
@@ -20,8 +20,8 @@ declare const flagsSchema: z.ZodObject<{
20
20
  concurrency: number;
21
21
  retries: number;
22
22
  output?: string | undefined;
23
- ids?: string | undefined;
24
23
  compare?: string | undefined;
24
+ ids?: string | undefined;
25
25
  snapshot?: string | undefined;
26
26
  shallow?: boolean | undefined;
27
27
  githubWorkflow?: boolean | undefined;
@@ -31,8 +31,8 @@ declare const flagsSchema: z.ZodObject<{
31
31
  debug?: boolean | undefined;
32
32
  output?: string | undefined;
33
33
  concurrency?: number | undefined;
34
- ids?: string | undefined;
35
34
  compare?: string | undefined;
35
+ ids?: string | undefined;
36
36
  snapshot?: string | undefined;
37
37
  shallow?: boolean | undefined;
38
38
  githubWorkflow?: boolean | undefined;
@@ -8,12 +8,12 @@ declare const flagsSchema: z.ZodObject<{
8
8
  }, "strip", z.ZodTypeAny, {
9
9
  separate: boolean;
10
10
  input?: string | undefined;
11
- userId?: string | undefined;
12
11
  projectId?: string | undefined;
12
+ userId?: string | undefined;
13
13
  }, {
14
14
  input?: string | undefined;
15
- userId?: string | undefined;
16
15
  projectId?: string | undefined;
16
+ userId?: string | undefined;
17
17
  separate?: boolean | undefined;
18
18
  }>;
19
19
  export declare class ImportCredentialsCommand extends BaseCommand<z.infer<typeof flagsSchema>> {
@@ -8,12 +8,12 @@ declare const flagsSchema: z.ZodObject<{
8
8
  }, "strip", z.ZodTypeAny, {
9
9
  separate: boolean;
10
10
  input?: string | undefined;
11
- userId?: string | undefined;
12
11
  projectId?: string | undefined;
12
+ userId?: string | undefined;
13
13
  }, {
14
14
  input?: string | undefined;
15
- userId?: string | undefined;
16
15
  projectId?: string | undefined;
16
+ userId?: string | undefined;
17
17
  separate?: boolean | undefined;
18
18
  }>;
19
19
  export declare class ImportWorkflowsCommand extends BaseCommand<z.infer<typeof flagsSchema>> {
@@ -5,12 +5,12 @@ declare const flagsSchema: z.ZodObject<{
5
5
  projectId: z.ZodOptional<z.ZodString>;
6
6
  deleteWorkflowsAndCredentials: z.ZodOptional<z.ZodBoolean>;
7
7
  }, "strip", z.ZodTypeAny, {
8
- userId?: string | undefined;
9
8
  projectId?: string | undefined;
9
+ userId?: string | undefined;
10
10
  deleteWorkflowsAndCredentials?: boolean | undefined;
11
11
  }, {
12
- userId?: string | undefined;
13
12
  projectId?: string | undefined;
13
+ userId?: string | undefined;
14
14
  deleteWorkflowsAndCredentials?: boolean | undefined;
15
15
  }>;
16
16
  export declare class Reset extends BaseCommand<z.infer<typeof flagsSchema>> {
@@ -0,0 +1,13 @@
1
+ import { Logger } from '@n8n/backend-common';
2
+ import { UserRepository } from '@n8n/db';
3
+ import { EventService } from '../../events/event.service';
4
+ import { EventRelay } from '../../events/relays/event-relay';
5
+ import { UserManagementMailer } from '../../user-management/email';
6
+ export declare class WorkflowFailureNotificationEventRelay extends EventRelay {
7
+ private readonly mailer;
8
+ private readonly userRepository;
9
+ private readonly logger;
10
+ constructor(eventService: EventService, mailer: UserManagementMailer, userRepository: UserRepository, logger: Logger);
11
+ init(): void;
12
+ private onFirstProductionWorkflowFailed;
13
+ }
@@ -0,0 +1,77 @@
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.WorkflowFailureNotificationEventRelay = void 0;
13
+ const backend_common_1 = require("@n8n/backend-common");
14
+ const db_1 = require("@n8n/db");
15
+ const di_1 = require("@n8n/di");
16
+ const event_service_1 = require("../../events/event.service");
17
+ const event_relay_1 = require("../../events/relays/event-relay");
18
+ const email_1 = require("../../user-management/email");
19
+ let WorkflowFailureNotificationEventRelay = class WorkflowFailureNotificationEventRelay extends event_relay_1.EventRelay {
20
+ constructor(eventService, mailer, userRepository, logger) {
21
+ super(eventService);
22
+ this.mailer = mailer;
23
+ this.userRepository = userRepository;
24
+ this.logger = logger;
25
+ }
26
+ init() {
27
+ this.setupListeners({
28
+ 'instance-first-production-workflow-failed': async (event) => await this.onFirstProductionWorkflowFailed(event),
29
+ });
30
+ }
31
+ async onFirstProductionWorkflowFailed(event) {
32
+ const { workflowId, workflowName, userId } = event;
33
+ if (!this.mailer.isEmailSetUp) {
34
+ this.logger.debug('Skipping first production failure email - SMTP not configured', {
35
+ workflowId,
36
+ userId,
37
+ });
38
+ return;
39
+ }
40
+ try {
41
+ const user = await this.userRepository.findOneBy({ id: userId });
42
+ if (!user || !user.email) {
43
+ this.logger.warn('Cannot send first production failure email - user not found or no email', {
44
+ workflowId,
45
+ userId,
46
+ });
47
+ return;
48
+ }
49
+ await this.mailer.workflowFailure({
50
+ email: user.email,
51
+ firstName: user.firstName,
52
+ workflowId,
53
+ workflowName,
54
+ });
55
+ this.logger.info('Sent first production failure email', {
56
+ workflowId,
57
+ userId,
58
+ email: user.email,
59
+ });
60
+ }
61
+ catch (error) {
62
+ this.logger.error('Failed to send first production failure email', {
63
+ workflowId,
64
+ userId,
65
+ error: error instanceof Error ? error.message : String(error),
66
+ });
67
+ }
68
+ }
69
+ };
70
+ exports.WorkflowFailureNotificationEventRelay = WorkflowFailureNotificationEventRelay;
71
+ exports.WorkflowFailureNotificationEventRelay = WorkflowFailureNotificationEventRelay = __decorate([
72
+ (0, di_1.Service)(),
73
+ __metadata("design:paramtypes", [event_service_1.EventService,
74
+ email_1.UserManagementMailer,
75
+ db_1.UserRepository,
76
+ backend_common_1.Logger])
77
+ ], WorkflowFailureNotificationEventRelay);
@@ -0,0 +1,17 @@
1
+ import type { IWorkflowBase } from 'n8n-workflow';
2
+ type ExecutionRef = {
3
+ workflowId: string;
4
+ executionId: string;
5
+ };
6
+ type ExecutionDataPayload = {
7
+ data: string;
8
+ workflowData: IWorkflowBase;
9
+ workflowVersionId: string | null;
10
+ };
11
+ export interface ExecutionDataManager {
12
+ init?(): Promise<void>;
13
+ write(ref: ExecutionRef, payload: ExecutionDataPayload): Promise<void>;
14
+ read(ref: ExecutionRef): Promise<ExecutionDataPayload>;
15
+ delete(ref: ExecutionRef | ExecutionRef[]): Promise<void>;
16
+ }
17
+ export {};
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,4 @@
1
+ import { type ExecutionError, type INode, type IRun, type WorkflowExecuteMode } from 'n8n-workflow';
2
+ export declare class FailedRunFactory {
3
+ generateFailedExecutionFromError(mode: WorkflowExecuteMode, error: ExecutionError, node: INode | undefined, startTime?: number): IRun;
4
+ }
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.FailedRunFactory = void 0;
10
+ const di_1 = require("@n8n/di");
11
+ const n8n_workflow_1 = require("n8n-workflow");
12
+ let FailedRunFactory = class FailedRunFactory {
13
+ generateFailedExecutionFromError(mode, error, node, startTime = Date.now()) {
14
+ const executionError = {
15
+ ...error,
16
+ message: error.message,
17
+ stack: error.stack,
18
+ };
19
+ const returnData = {
20
+ data: (0, n8n_workflow_1.createRunExecutionData)({
21
+ resultData: {
22
+ error: executionError,
23
+ runData: {},
24
+ },
25
+ }),
26
+ finished: false,
27
+ mode,
28
+ startedAt: new Date(),
29
+ stoppedAt: new Date(),
30
+ status: 'error',
31
+ };
32
+ if (node) {
33
+ returnData.data.startData = {
34
+ destinationNode: {
35
+ nodeName: node.name,
36
+ mode: 'inclusive',
37
+ },
38
+ runNodeFilter: [node.name],
39
+ };
40
+ returnData.data.resultData.lastNodeExecuted = node.name;
41
+ returnData.data.resultData.runData[node.name] = [
42
+ {
43
+ startTime,
44
+ executionIndex: 0,
45
+ executionTime: 0,
46
+ executionStatus: 'error',
47
+ error: executionError,
48
+ source: [],
49
+ },
50
+ ];
51
+ returnData.data.executionData = {
52
+ contextData: {},
53
+ metadata: {},
54
+ waitingExecution: {},
55
+ waitingExecutionSource: {},
56
+ nodeExecutionStack: [
57
+ {
58
+ node,
59
+ data: {},
60
+ source: null,
61
+ },
62
+ ],
63
+ };
64
+ }
65
+ return returnData;
66
+ }
67
+ };
68
+ exports.FailedRunFactory = FailedRunFactory;
69
+ exports.FailedRunFactory = FailedRunFactory = __decorate([
70
+ (0, di_1.Service)()
71
+ ], FailedRunFactory);
@@ -7,7 +7,7 @@ import type { ActiveWorkflowManager } from './active-workflow-manager';
7
7
  import type { ExternalHooks } from './external-hooks';
8
8
  import type WebSocket from 'ws';
9
9
  export interface ExtendedWebSocket extends WebSocket {
10
- isAlive?: boolean;
10
+ isAlive: boolean;
11
11
  }
12
12
  export interface ICredentialsTypeData {
13
13
  [key: string]: CredentialLoadingDetails;
package/dist/license.js CHANGED
@@ -236,7 +236,7 @@ let License = class License {
236
236
  return this.isLicensed(constants_1.LICENSE_FEATURES.DYNAMIC_CREDENTIALS);
237
237
  }
238
238
  isSharingEnabled() {
239
- return this.isLicensed(constants_1.LICENSE_FEATURES.SHARING);
239
+ return false;
240
240
  }
241
241
  isLogStreamingEnabled() {
242
242
  return this.isLicensed(constants_1.LICENSE_FEATURES.LOG_STREAMING);
@@ -0,0 +1,2 @@
1
+ import type { RequestHandler } from 'express';
2
+ export declare const webviewFrameOptionsMiddleware: RequestHandler;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.webviewFrameOptionsMiddleware = void 0;
4
+ const webviewFrameOptionsMiddleware = (req, res, next) => {
5
+ const origin = req.headers.origin;
6
+ const referer = req.headers.referer;
7
+ const isVSCodeWebview = origin?.startsWith('vscode-webview://') ||
8
+ referer?.includes('vscode-webview://') ||
9
+ req.headers['x-vscode-webview'] === 'true';
10
+ if (isVSCodeWebview) {
11
+ const originalSetHeader = res.setHeader.bind(res);
12
+ res.setHeader = function (name, value) {
13
+ if (name.toLowerCase() === 'x-frame-options') {
14
+ return this;
15
+ }
16
+ return originalSetHeader(name, value);
17
+ };
18
+ res.removeHeader('X-Frame-Options');
19
+ }
20
+ next();
21
+ };
22
+ exports.webviewFrameOptionsMiddleware = webviewFrameOptionsMiddleware;
@@ -0,0 +1,22 @@
1
+ import { Logger } from '@n8n/backend-common';
2
+ import { ContextEstablishmentOptions, ContextEstablishmentResult, HookDescription, IContextEstablishmentHook } from '@n8n/decorators';
3
+ import { z } from 'zod';
4
+ declare const ChatHubTriggerItemSchema: z.ZodObject<{
5
+ authToken: z.ZodString;
6
+ browserId: z.ZodOptional<z.ZodString>;
7
+ }, "strip", z.ZodTypeAny, {
8
+ authToken: string;
9
+ browserId?: string | undefined;
10
+ }, {
11
+ authToken: string;
12
+ browserId?: string | undefined;
13
+ }>;
14
+ export type ChatHubTriggerItem = z.output<typeof ChatHubTriggerItemSchema>;
15
+ export declare class ChatHubExtractor implements IContextEstablishmentHook {
16
+ private readonly logger;
17
+ constructor(logger: Logger);
18
+ hookDescription: HookDescription;
19
+ isApplicableToTriggerNode(_nodeType: string): boolean;
20
+ execute(options: ContextEstablishmentOptions): Promise<ContextEstablishmentResult>;
21
+ }
22
+ export {};
@@ -0,0 +1,63 @@
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.ChatHubExtractor = void 0;
13
+ const backend_common_1 = require("@n8n/backend-common");
14
+ const decorators_1 = require("@n8n/decorators");
15
+ const zod_1 = require("zod");
16
+ const ChatHubTriggerItemSchema = zod_1.z.object({
17
+ authToken: zod_1.z.string(),
18
+ browserId: zod_1.z.string().optional(),
19
+ });
20
+ let ChatHubExtractor = class ChatHubExtractor {
21
+ constructor(logger) {
22
+ this.logger = logger;
23
+ this.hookDescription = {
24
+ name: 'ChatHubExtractor',
25
+ displayName: 'Chat Hub Extractor',
26
+ options: [],
27
+ };
28
+ }
29
+ isApplicableToTriggerNode(_nodeType) {
30
+ return false;
31
+ }
32
+ async execute(options) {
33
+ if (!options.triggerItems || options.triggerItems.length === 0) {
34
+ this.logger.debug('No trigger items found, skipping ChatHubExtractor hook.');
35
+ return {};
36
+ }
37
+ const [triggerItem] = options.triggerItems;
38
+ const chatHubInformation = ChatHubTriggerItemSchema.safeParse(triggerItem.json);
39
+ delete triggerItem.json.authToken;
40
+ delete triggerItem.json.browserId;
41
+ if (chatHubInformation.success) {
42
+ return {
43
+ triggerItems: options.triggerItems,
44
+ contextUpdate: {
45
+ credentials: {
46
+ version: 1,
47
+ identity: chatHubInformation.data.authToken,
48
+ metadata: {
49
+ source: 'chat-hub-injected',
50
+ browserId: chatHubInformation.data.browserId ?? null,
51
+ },
52
+ },
53
+ },
54
+ };
55
+ }
56
+ return {};
57
+ }
58
+ };
59
+ exports.ChatHubExtractor = ChatHubExtractor;
60
+ exports.ChatHubExtractor = ChatHubExtractor = __decorate([
61
+ (0, decorators_1.ContextEstablishmentHook)(),
62
+ __metadata("design:paramtypes", [backend_common_1.Logger])
63
+ ], ChatHubExtractor);
@@ -0,0 +1,11 @@
1
+ import { CredentialResolverHandle } from '@n8n/decorators';
2
+ import { ICredentialEntriesStorage } from './storage-interface';
3
+ import { DynamicCredentialUserEntryRepository } from '../../database/repositories/dynamic-credential-user-entry.repository';
4
+ export declare class DynamicCredentialUserEntryStorage implements ICredentialEntriesStorage {
5
+ private readonly dynamicCredentialUserEntryRepository;
6
+ constructor(dynamicCredentialUserEntryRepository: DynamicCredentialUserEntryRepository);
7
+ getCredentialData(credentialId: string, userId: string, resolverId: string, _: Record<string, unknown>): Promise<string | null>;
8
+ setCredentialData(credentialId: string, userId: string, resolverId: string, data: string, _: Record<string, unknown>): Promise<void>;
9
+ deleteCredentialData(credentialId: string, userId: string, resolverId: string, _: Record<string, unknown>): Promise<void>;
10
+ deleteAllCredentialData(handle: CredentialResolverHandle): Promise<void>;
11
+ }
@@ -0,0 +1,58 @@
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.DynamicCredentialUserEntryStorage = void 0;
13
+ const di_1 = require("@n8n/di");
14
+ const dynamic_credential_user_entry_1 = require("../../database/entities/dynamic-credential-user-entry");
15
+ const dynamic_credential_user_entry_repository_1 = require("../../database/repositories/dynamic-credential-user-entry.repository");
16
+ let DynamicCredentialUserEntryStorage = class DynamicCredentialUserEntryStorage {
17
+ constructor(dynamicCredentialUserEntryRepository) {
18
+ this.dynamicCredentialUserEntryRepository = dynamicCredentialUserEntryRepository;
19
+ }
20
+ async getCredentialData(credentialId, userId, resolverId, _) {
21
+ const entry = await this.dynamicCredentialUserEntryRepository.findOne({
22
+ where: {
23
+ credentialId,
24
+ userId,
25
+ resolverId,
26
+ },
27
+ });
28
+ return entry?.data ?? null;
29
+ }
30
+ async setCredentialData(credentialId, userId, resolverId, data, _) {
31
+ let entry = await this.dynamicCredentialUserEntryRepository.findOne({
32
+ where: { credentialId, userId, resolverId },
33
+ });
34
+ if (!entry) {
35
+ entry = new dynamic_credential_user_entry_1.DynamicCredentialUserEntry();
36
+ entry.credentialId = credentialId;
37
+ entry.userId = userId;
38
+ entry.resolverId = resolverId;
39
+ }
40
+ entry.data = data;
41
+ await this.dynamicCredentialUserEntryRepository.save(entry);
42
+ }
43
+ async deleteCredentialData(credentialId, userId, resolverId, _) {
44
+ await this.dynamicCredentialUserEntryRepository.delete({
45
+ credentialId,
46
+ userId,
47
+ resolverId,
48
+ });
49
+ }
50
+ async deleteAllCredentialData(handle) {
51
+ await this.dynamicCredentialUserEntryRepository.delete({ resolverId: handle.resolverId });
52
+ }
53
+ };
54
+ exports.DynamicCredentialUserEntryStorage = DynamicCredentialUserEntryStorage;
55
+ exports.DynamicCredentialUserEntryStorage = DynamicCredentialUserEntryStorage = __decorate([
56
+ (0, di_1.Service)(),
57
+ __metadata("design:paramtypes", [dynamic_credential_user_entry_repository_1.DynamicCredentialUserEntryRepository])
58
+ ], DynamicCredentialUserEntryStorage);
@@ -0,0 +1,12 @@
1
+ import { CredentialsEntity, User, WithTimestamps } from '@n8n/db';
2
+ import { DynamicCredentialResolver } from './credential-resolver';
3
+ export declare class DynamicCredentialUserEntry extends WithTimestamps {
4
+ constructor();
5
+ credentialId: string;
6
+ userId: string;
7
+ resolverId: string;
8
+ data: string;
9
+ credential: CredentialsEntity;
10
+ user: User;
11
+ resolver: DynamicCredentialResolver;
12
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.DynamicCredentialUserEntry = void 0;
13
+ const db_1 = require("@n8n/db");
14
+ const typeorm_1 = require("@n8n/typeorm");
15
+ const credential_resolver_1 = require("./credential-resolver");
16
+ let DynamicCredentialUserEntry = class DynamicCredentialUserEntry extends db_1.WithTimestamps {
17
+ constructor() {
18
+ super();
19
+ }
20
+ };
21
+ exports.DynamicCredentialUserEntry = DynamicCredentialUserEntry;
22
+ __decorate([
23
+ (0, typeorm_1.PrimaryColumn)({
24
+ name: 'credentialId',
25
+ }),
26
+ __metadata("design:type", String)
27
+ ], DynamicCredentialUserEntry.prototype, "credentialId", void 0);
28
+ __decorate([
29
+ (0, typeorm_1.PrimaryColumn)({
30
+ name: 'userId',
31
+ }),
32
+ __metadata("design:type", String)
33
+ ], DynamicCredentialUserEntry.prototype, "userId", void 0);
34
+ __decorate([
35
+ (0, typeorm_1.PrimaryColumn)({
36
+ name: 'resolverId',
37
+ }),
38
+ __metadata("design:type", String)
39
+ ], DynamicCredentialUserEntry.prototype, "resolverId", void 0);
40
+ __decorate([
41
+ (0, typeorm_1.Column)('text'),
42
+ __metadata("design:type", String)
43
+ ], DynamicCredentialUserEntry.prototype, "data", void 0);
44
+ __decorate([
45
+ (0, typeorm_1.ManyToOne)(() => db_1.CredentialsEntity, { onDelete: 'CASCADE' }),
46
+ (0, typeorm_1.JoinColumn)({ name: 'credentialId' }),
47
+ __metadata("design:type", db_1.CredentialsEntity)
48
+ ], DynamicCredentialUserEntry.prototype, "credential", void 0);
49
+ __decorate([
50
+ (0, typeorm_1.ManyToOne)(() => db_1.User, { onDelete: 'CASCADE' }),
51
+ (0, typeorm_1.JoinColumn)({ name: 'userId' }),
52
+ __metadata("design:type", db_1.User)
53
+ ], DynamicCredentialUserEntry.prototype, "user", void 0);
54
+ __decorate([
55
+ (0, typeorm_1.ManyToOne)(() => credential_resolver_1.DynamicCredentialResolver, { onDelete: 'CASCADE' }),
56
+ (0, typeorm_1.JoinColumn)({ name: 'resolverId' }),
57
+ __metadata("design:type", credential_resolver_1.DynamicCredentialResolver)
58
+ ], DynamicCredentialUserEntry.prototype, "resolver", void 0);
59
+ exports.DynamicCredentialUserEntry = DynamicCredentialUserEntry = __decorate([
60
+ (0, typeorm_1.Entity)({
61
+ name: 'dynamic_credential_user_entry',
62
+ }),
63
+ __metadata("design:paramtypes", [])
64
+ ], DynamicCredentialUserEntry);
@@ -0,0 +1,5 @@
1
+ import { DataSource, Repository } from '@n8n/typeorm';
2
+ import { DynamicCredentialUserEntry } from '../entities/dynamic-credential-user-entry';
3
+ export declare class DynamicCredentialUserEntryRepository extends Repository<DynamicCredentialUserEntry> {
4
+ constructor(dataSource: DataSource);
5
+ }
@@ -0,0 +1,25 @@
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.DynamicCredentialUserEntryRepository = void 0;
13
+ const di_1 = require("@n8n/di");
14
+ const typeorm_1 = require("@n8n/typeorm");
15
+ const dynamic_credential_user_entry_1 = require("../entities/dynamic-credential-user-entry");
16
+ let DynamicCredentialUserEntryRepository = class DynamicCredentialUserEntryRepository extends typeorm_1.Repository {
17
+ constructor(dataSource) {
18
+ super(dynamic_credential_user_entry_1.DynamicCredentialUserEntry, dataSource.manager);
19
+ }
20
+ };
21
+ exports.DynamicCredentialUserEntryRepository = DynamicCredentialUserEntryRepository;
22
+ exports.DynamicCredentialUserEntryRepository = DynamicCredentialUserEntryRepository = __decorate([
23
+ (0, di_1.Service)(),
24
+ __metadata("design:paramtypes", [typeorm_1.DataSource])
25
+ ], DynamicCredentialUserEntryRepository);
@@ -0,0 +1,5 @@
1
+ export declare class DynamicCredentialsConfig {
2
+ corsOrigin: string;
3
+ corsAllowCredentials: boolean;
4
+ endpointAuthToken: string;
5
+ }
@@ -0,0 +1,36 @@
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.DynamicCredentialsConfig = void 0;
13
+ const config_1 = require("@n8n/config");
14
+ let DynamicCredentialsConfig = class DynamicCredentialsConfig {
15
+ constructor() {
16
+ this.corsOrigin = '';
17
+ this.corsAllowCredentials = false;
18
+ this.endpointAuthToken = '';
19
+ }
20
+ };
21
+ exports.DynamicCredentialsConfig = DynamicCredentialsConfig;
22
+ __decorate([
23
+ (0, config_1.Env)('N8N_DYNAMIC_CREDENTIALS_CORS_ORIGIN'),
24
+ __metadata("design:type", String)
25
+ ], DynamicCredentialsConfig.prototype, "corsOrigin", void 0);
26
+ __decorate([
27
+ (0, config_1.Env)('N8N_DYNAMIC_CREDENTIALS_CORS_ALLOW_CREDENTIALS'),
28
+ __metadata("design:type", Boolean)
29
+ ], DynamicCredentialsConfig.prototype, "corsAllowCredentials", void 0);
30
+ __decorate([
31
+ (0, config_1.Env)('N8N_DYNAMIC_CREDENTIALS_ENDPOINT_AUTH_TOKEN'),
32
+ __metadata("design:type", String)
33
+ ], DynamicCredentialsConfig.prototype, "endpointAuthToken", void 0);
34
+ exports.DynamicCredentialsConfig = DynamicCredentialsConfig = __decorate([
35
+ config_1.Config
36
+ ], DynamicCredentialsConfig);
@@ -0,0 +1,12 @@
1
+ import { CorsService } from '../../../services/cors-service';
2
+ import type { Method } from '@n8n/decorators';
3
+ import type { Request, Response } from 'express';
4
+ import { DynamicCredentialsConfig } from '../dynamic-credentials.config';
5
+ export declare class DynamicCredentialCorsService {
6
+ private readonly corsService;
7
+ private readonly dynamicCredentialConfig;
8
+ private readonly defaultOptions;
9
+ constructor(corsService: CorsService, dynamicCredentialConfig: DynamicCredentialsConfig);
10
+ preflightHandler(req: Request, res: Response, allowedMethods: Method[]): void;
11
+ applyCorsHeadersIfEnabled(req: Request, res: Response, allowedMethods: Method[]): boolean;
12
+ }