n8n-core 2.18.2 → 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 (46) hide show
  1. package/dist/binary-data/object-store/object-store.service.ee.js +27 -5
  2. package/dist/binary-data/object-store/object-store.service.ee.js.map +1 -1
  3. package/dist/build.tsbuildinfo +1 -1
  4. package/dist/encryption/aes-256-cbc.d.ts +6 -0
  5. package/dist/encryption/aes-256-cbc.js +48 -0
  6. package/dist/encryption/aes-256-cbc.js.map +1 -0
  7. package/dist/encryption/aes-256-gcm.d.ts +7 -0
  8. package/dist/encryption/aes-256-gcm.js +72 -0
  9. package/dist/encryption/aes-256-gcm.js.map +1 -0
  10. package/dist/encryption/cipher.d.ts +14 -2
  11. package/dist/encryption/cipher.js +76 -30
  12. package/dist/encryption/cipher.js.map +1 -1
  13. package/dist/encryption/encryption-key-proxy.d.ts +18 -0
  14. package/dist/encryption/encryption-key-proxy.js +39 -0
  15. package/dist/encryption/encryption-key-proxy.js.map +1 -0
  16. package/dist/encryption/index.d.ts +5 -0
  17. package/dist/encryption/index.js +7 -1
  18. package/dist/encryption/index.js.map +1 -1
  19. package/dist/encryption/interface.d.ts +5 -0
  20. package/dist/encryption/interface.js +3 -0
  21. package/dist/encryption/interface.js.map +1 -0
  22. package/dist/execution-engine/active-workflows.js +3 -1
  23. package/dist/execution-engine/active-workflows.js.map +1 -1
  24. package/dist/execution-engine/eval-mock-helpers.d.ts +13 -1
  25. package/dist/execution-engine/eval-mock-helpers.js +36 -6
  26. package/dist/execution-engine/eval-mock-helpers.js.map +1 -1
  27. package/dist/execution-engine/execution-lifecycle-hooks.d.ts +1 -1
  28. package/dist/execution-engine/node-execution-context/base-execute-context.d.ts +1 -1
  29. package/dist/execution-engine/node-execution-context/node-execution-context.d.ts +2 -2
  30. package/dist/execution-engine/node-execution-context/node-execution-context.js +5 -2
  31. package/dist/execution-engine/node-execution-context/node-execution-context.js.map +1 -1
  32. package/dist/execution-engine/node-execution-context/utils/outbound-user-agent.d.ts +4 -0
  33. package/dist/execution-engine/node-execution-context/utils/outbound-user-agent.js +40 -0
  34. package/dist/execution-engine/node-execution-context/utils/outbound-user-agent.js.map +1 -0
  35. package/dist/execution-engine/node-execution-context/utils/request-helper-functions.js +13 -8
  36. package/dist/execution-engine/node-execution-context/utils/request-helper-functions.js.map +1 -1
  37. package/dist/execution-engine/node-execution-context/utils/scheduling-helper-functions.js.map +1 -1
  38. package/dist/execution-engine/routing-node.js +19 -8
  39. package/dist/execution-engine/routing-node.js.map +1 -1
  40. package/dist/execution-engine/scheduled-task-manager.d.ts +1 -1
  41. package/dist/execution-engine/scheduled-task-manager.js +9 -3
  42. package/dist/execution-engine/scheduled-task-manager.js.map +1 -1
  43. package/dist/utils/assertions.d.ts +1 -0
  44. package/dist/utils/assertions.js +4 -0
  45. package/dist/utils/assertions.js.map +1 -1
  46. package/package.json +11 -11
@@ -0,0 +1,6 @@
1
+ import { CipherWrapper } from './interface';
2
+ export declare class CipherAes256CBC implements CipherWrapper {
3
+ encrypt(data: string, key: string): string;
4
+ decrypt(data: string, key: string): string;
5
+ private getKeyAndIv;
6
+ }
@@ -0,0 +1,48 @@
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.CipherAes256CBC = void 0;
10
+ const di_1 = require("@n8n/di");
11
+ const crypto_1 = require("crypto");
12
+ const RANDOM_BYTES = Buffer.from('53616c7465645f5f', 'hex');
13
+ let CipherAes256CBC = class CipherAes256CBC {
14
+ encrypt(data, key) {
15
+ const salt = (0, crypto_1.randomBytes)(8);
16
+ const [derivedKey, iv] = this.getKeyAndIv(salt, key);
17
+ const cipher = (0, crypto_1.createCipheriv)('aes-256-cbc', derivedKey, iv);
18
+ const encrypted = cipher.update(data);
19
+ return Buffer.concat([RANDOM_BYTES, salt, encrypted, cipher.final()]).toString('base64');
20
+ }
21
+ decrypt(data, key) {
22
+ const input = Buffer.from(data, 'base64');
23
+ if (input.length < 16)
24
+ return '';
25
+ const salt = input.subarray(8, 16);
26
+ const [derivedKey, iv] = this.getKeyAndIv(salt, key);
27
+ const contents = input.subarray(16);
28
+ const decipher = (0, crypto_1.createDecipheriv)('aes-256-cbc', derivedKey, iv);
29
+ return Buffer.concat([decipher.update(contents), decipher.final()]).toString('utf-8');
30
+ }
31
+ getKeyAndIv(salt, key) {
32
+ const password = Buffer.concat([Buffer.from(key, 'binary'), salt]);
33
+ const hash1 = (0, crypto_1.createHash)('md5').update(password).digest();
34
+ const hash2 = (0, crypto_1.createHash)('md5')
35
+ .update(Buffer.concat([hash1, password]))
36
+ .digest();
37
+ const iv = (0, crypto_1.createHash)('md5')
38
+ .update(Buffer.concat([hash2, password]))
39
+ .digest();
40
+ const derivedKey = Buffer.concat([hash1, hash2]);
41
+ return [derivedKey, iv];
42
+ }
43
+ };
44
+ exports.CipherAes256CBC = CipherAes256CBC;
45
+ exports.CipherAes256CBC = CipherAes256CBC = __decorate([
46
+ (0, di_1.Service)()
47
+ ], CipherAes256CBC);
48
+ //# sourceMappingURL=aes-256-cbc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aes-256-cbc.js","sourceRoot":"","sources":["../../src/encryption/aes-256-cbc.ts"],"names":[],"mappings":";;;;;;;;;AAAA,gCAAkC;AAClC,mCAAmF;AAInF,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;AAGrD,IAAM,eAAe,GAArB,MAAM,eAAe;IAC3B,OAAO,CAAC,IAAY,EAAE,GAAW;QAChC,MAAM,IAAI,GAAG,IAAA,oBAAW,EAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,IAAA,uBAAc,EAAC,aAAa,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QAC7D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC1F,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,GAAW;QAChC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1C,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE;YAAE,OAAO,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAA,yBAAgB,EAAC,aAAa,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QACjE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACvF,CAAC;IAEO,WAAW,CAAC,IAAY,EAAE,GAAW;QAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,IAAA,mBAAU,EAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1D,MAAM,KAAK,GAAG,IAAA,mBAAU,EAAC,KAAK,CAAC;aAC7B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;aACxC,MAAM,EAAE,CAAC;QACX,MAAM,EAAE,GAAG,IAAA,mBAAU,EAAC,KAAK,CAAC;aAC1B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;aACxC,MAAM,EAAE,CAAC;QACX,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACjD,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACzB,CAAC;CACD,CAAA;AA/BY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,YAAO,GAAE;GACG,eAAe,CA+B3B"}
@@ -0,0 +1,7 @@
1
+ import { CipherWrapper } from './interface';
2
+ export declare class CipherAes256GCM implements CipherWrapper {
3
+ encrypt(data: string, key: string): string;
4
+ decrypt(data: string, key: string): string;
5
+ private toKeyBuf;
6
+ private deriveKeyAndIv;
7
+ }
@@ -0,0 +1,72 @@
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.CipherAes256GCM = void 0;
10
+ const di_1 = require("@n8n/di");
11
+ const crypto_1 = require("crypto");
12
+ const n8n_workflow_1 = require("n8n-workflow");
13
+ const FORMAT_VERSION = 0x01;
14
+ const HKDF_INFO = 'n8n-encryption-v1';
15
+ const KEY_LENGTH_BYTES = 32;
16
+ const SALT_LENGTH_BYTES = 32;
17
+ const IV_LENGTH_BYTES = 12;
18
+ const AUTH_TAG_LENGTH_BYTES = 16;
19
+ const HKDF_OUTPUT_LENGTH_BYTES = KEY_LENGTH_BYTES + IV_LENGTH_BYTES;
20
+ const VERSION_OFFSET = 0;
21
+ const SALT_OFFSET = VERSION_OFFSET + 1;
22
+ const AUTH_TAG_OFFSET = SALT_OFFSET + SALT_LENGTH_BYTES;
23
+ const CIPHERTEXT_OFFSET = AUTH_TAG_OFFSET + AUTH_TAG_LENGTH_BYTES;
24
+ const MIN_CIPHERTEXT_LENGTH_BYTES = CIPHERTEXT_OFFSET;
25
+ let CipherAes256GCM = class CipherAes256GCM {
26
+ encrypt(data, key) {
27
+ const keyBuf = this.toKeyBuf(key);
28
+ const salt = (0, crypto_1.randomBytes)(SALT_LENGTH_BYTES);
29
+ const [derivedKey, iv] = this.deriveKeyAndIv(keyBuf, salt);
30
+ const cipher = (0, crypto_1.createCipheriv)('aes-256-gcm', derivedKey, iv);
31
+ const encrypted = Buffer.concat([cipher.update(data, 'utf8'), cipher.final()]);
32
+ const authTag = cipher.getAuthTag();
33
+ const version = Buffer.from([FORMAT_VERSION]);
34
+ return Buffer.concat([version, salt, authTag, encrypted]).toString('base64');
35
+ }
36
+ decrypt(data, key) {
37
+ const keyBuf = this.toKeyBuf(key);
38
+ const buf = Buffer.from(data, 'base64');
39
+ if (buf.length < MIN_CIPHERTEXT_LENGTH_BYTES) {
40
+ throw new n8n_workflow_1.UnexpectedError('GCM ciphertext too short');
41
+ }
42
+ const version = buf[VERSION_OFFSET];
43
+ if (version !== FORMAT_VERSION) {
44
+ throw new n8n_workflow_1.UnexpectedError(`Unsupported GCM ciphertext version: ${version}`);
45
+ }
46
+ const salt = buf.subarray(SALT_OFFSET, AUTH_TAG_OFFSET);
47
+ const authTag = buf.subarray(AUTH_TAG_OFFSET, CIPHERTEXT_OFFSET);
48
+ const ciphertext = buf.subarray(CIPHERTEXT_OFFSET);
49
+ const [derivedKey, iv] = this.deriveKeyAndIv(keyBuf, salt);
50
+ const decipher = (0, crypto_1.createDecipheriv)('aes-256-gcm', derivedKey, iv, {
51
+ authTagLength: AUTH_TAG_LENGTH_BYTES,
52
+ });
53
+ decipher.setAuthTag(authTag);
54
+ return Buffer.concat([decipher.update(ciphertext), decipher.final()]).toString('utf8');
55
+ }
56
+ toKeyBuf(key) {
57
+ const buf = Buffer.from(key, 'hex');
58
+ if (buf.length !== KEY_LENGTH_BYTES) {
59
+ throw new n8n_workflow_1.UnexpectedError('GCM key must be exactly 32 bytes (64 hex characters)');
60
+ }
61
+ return buf;
62
+ }
63
+ deriveKeyAndIv(keyBuf, salt) {
64
+ const derived = Buffer.from((0, crypto_1.hkdfSync)('sha256', keyBuf, salt, HKDF_INFO, HKDF_OUTPUT_LENGTH_BYTES));
65
+ return [derived.subarray(0, KEY_LENGTH_BYTES), derived.subarray(KEY_LENGTH_BYTES)];
66
+ }
67
+ };
68
+ exports.CipherAes256GCM = CipherAes256GCM;
69
+ exports.CipherAes256GCM = CipherAes256GCM = __decorate([
70
+ (0, di_1.Service)()
71
+ ], CipherAes256GCM);
72
+ //# sourceMappingURL=aes-256-gcm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aes-256-gcm.js","sourceRoot":"","sources":["../../src/encryption/aes-256-gcm.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,20 @@
1
1
  import { InstanceSettings } from '../instance-settings';
2
+ import { CipherAes256CBC } from './aes-256-cbc';
3
+ import { CipherAes256GCM } from './aes-256-gcm';
4
+ import { EncryptionKeyProxy } from './encryption-key-proxy';
5
+ import { CipherAlgorithm } from './interface';
2
6
  export declare class Cipher {
3
7
  private readonly instanceSettings;
4
- constructor(instanceSettings: InstanceSettings);
8
+ private readonly cipherAES256GCM;
9
+ private readonly cipherAES256CBC;
10
+ private readonly encryptionKeyProxy;
11
+ constructor(instanceSettings: InstanceSettings, cipherAES256GCM: CipherAes256GCM, cipherAES256CBC: CipherAes256CBC, encryptionKeyProxy: EncryptionKeyProxy);
5
12
  encrypt(data: string | object, customEncryptionKey?: string): string;
6
13
  decrypt(data: string, customEncryptionKey?: string): string;
7
- private getKeyAndIv;
14
+ encryptV2(data: string | object, customEncryptionKey?: string): Promise<string>;
15
+ decryptV2(data: string, customEncryptionKey?: string): Promise<string>;
16
+ encryptWithInstanceKey(data: string | object): string;
17
+ decryptWithInstanceKey(data: string): string;
18
+ encryptWithKey(data: string, key: string, algorithm: CipherAlgorithm): string;
19
+ decryptWithKey(data: string, key: string, algorithm: CipherAlgorithm): string;
8
20
  }
@@ -11,47 +11,93 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.Cipher = void 0;
13
13
  const di_1 = require("@n8n/di");
14
- const crypto_1 = require("crypto");
15
14
  const instance_settings_1 = require("../instance-settings");
16
- const RANDOM_BYTES = Buffer.from('53616c7465645f5f', 'hex');
15
+ const assertions_1 = require("../utils/assertions");
16
+ const aes_256_cbc_1 = require("./aes-256-cbc");
17
+ const aes_256_gcm_1 = require("./aes-256-gcm");
18
+ const encryption_key_proxy_1 = require("./encryption-key-proxy");
17
19
  let Cipher = class Cipher {
18
- constructor(instanceSettings) {
20
+ constructor(instanceSettings, cipherAES256GCM, cipherAES256CBC, encryptionKeyProxy) {
19
21
  this.instanceSettings = instanceSettings;
22
+ this.cipherAES256GCM = cipherAES256GCM;
23
+ this.cipherAES256CBC = cipherAES256CBC;
24
+ this.encryptionKeyProxy = encryptionKeyProxy;
20
25
  }
21
26
  encrypt(data, customEncryptionKey) {
22
- const salt = (0, crypto_1.randomBytes)(8);
23
- const [key, iv] = this.getKeyAndIv(salt, customEncryptionKey);
24
- const cipher = (0, crypto_1.createCipheriv)('aes-256-cbc', key, iv);
25
- const encrypted = cipher.update(typeof data === 'string' ? data : JSON.stringify(data));
26
- return Buffer.concat([RANDOM_BYTES, salt, encrypted, cipher.final()]).toString('base64');
27
+ const key = customEncryptionKey ?? this.instanceSettings.encryptionKey;
28
+ const plaintext = typeof data === 'string' ? data : JSON.stringify(data);
29
+ return this.encryptWithKey(plaintext, key, 'aes-256-cbc');
27
30
  }
28
31
  decrypt(data, customEncryptionKey) {
29
- const input = Buffer.from(data, 'base64');
30
- if (input.length < 16)
31
- return '';
32
- const salt = input.subarray(8, 16);
33
- const [key, iv] = this.getKeyAndIv(salt, customEncryptionKey);
34
- const contents = input.subarray(16);
35
- const decipher = (0, crypto_1.createDecipheriv)('aes-256-cbc', key, iv);
36
- return Buffer.concat([decipher.update(contents), decipher.final()]).toString('utf-8');
37
- }
38
- getKeyAndIv(salt, customEncryptionKey) {
39
- const encryptionKey = customEncryptionKey ?? this.instanceSettings.encryptionKey;
40
- const password = Buffer.concat([Buffer.from(encryptionKey, 'binary'), salt]);
41
- const hash1 = (0, crypto_1.createHash)('md5').update(password).digest();
42
- const hash2 = (0, crypto_1.createHash)('md5')
43
- .update(Buffer.concat([hash1, password]))
44
- .digest();
45
- const iv = (0, crypto_1.createHash)('md5')
46
- .update(Buffer.concat([hash2, password]))
47
- .digest();
48
- const key = Buffer.concat([hash1, hash2]);
49
- return [key, iv];
32
+ const key = customEncryptionKey ?? this.instanceSettings.encryptionKey;
33
+ return this.decryptWithKey(data, key, 'aes-256-cbc');
34
+ }
35
+ async encryptV2(data, customEncryptionKey) {
36
+ const plaintext = typeof data === 'string' ? data : JSON.stringify(data);
37
+ if (!customEncryptionKey &&
38
+ this.encryptionKeyProxy.isConfigured() &&
39
+ process.env.N8N_ENV_FEAT_ENCRYPTION_KEY_ROTATION === 'true') {
40
+ const keyInfo = await this.encryptionKeyProxy.getActiveKey();
41
+ const plaintextKey = this.decryptWithInstanceKey(keyInfo.value);
42
+ const ciphertext = this.encryptWithKey(plaintext, plaintextKey, keyInfo.algorithm);
43
+ return `${keyInfo.id}:${ciphertext}`;
44
+ }
45
+ const key = customEncryptionKey ?? this.instanceSettings.encryptionKey;
46
+ return this.encryptWithKey(plaintext, key, 'aes-256-cbc');
47
+ }
48
+ async decryptV2(data, customEncryptionKey) {
49
+ if (!customEncryptionKey &&
50
+ this.encryptionKeyProxy.isConfigured() &&
51
+ process.env.N8N_ENV_FEAT_ENCRYPTION_KEY_ROTATION === 'true') {
52
+ const colonIdx = data.indexOf(':');
53
+ if (colonIdx !== -1) {
54
+ const keyId = data.slice(0, colonIdx);
55
+ const ciphertext = data.slice(colonIdx + 1);
56
+ const keyInfo = await this.encryptionKeyProxy.getKeyById(keyId);
57
+ if (!keyInfo)
58
+ throw new Error(`Encryption key not found: ${keyId}`);
59
+ const plaintextKey = this.decryptWithInstanceKey(keyInfo.value);
60
+ return this.decryptWithKey(ciphertext, plaintextKey, keyInfo.algorithm);
61
+ }
62
+ const keyInfo = await this.encryptionKeyProxy.getLegacyKey();
63
+ const plaintextKey = this.decryptWithInstanceKey(keyInfo.value);
64
+ return this.decryptWithKey(data, plaintextKey, keyInfo.algorithm);
65
+ }
66
+ const key = customEncryptionKey ?? this.instanceSettings.encryptionKey;
67
+ return this.decryptWithKey(data, key, 'aes-256-cbc');
68
+ }
69
+ encryptWithInstanceKey(data) {
70
+ const plaintext = typeof data === 'string' ? data : JSON.stringify(data);
71
+ return this.encryptWithKey(plaintext, this.instanceSettings.encryptionKey, 'aes-256-cbc');
72
+ }
73
+ decryptWithInstanceKey(data) {
74
+ return this.decryptWithKey(data, this.instanceSettings.encryptionKey, 'aes-256-cbc');
75
+ }
76
+ encryptWithKey(data, key, algorithm) {
77
+ switch (algorithm) {
78
+ case 'aes-256-cbc':
79
+ return this.cipherAES256CBC.encrypt(data, key);
80
+ case 'aes-256-gcm':
81
+ return this.cipherAES256GCM.encrypt(data, key);
82
+ }
83
+ (0, assertions_1.assertUnreachable)(algorithm);
84
+ }
85
+ decryptWithKey(data, key, algorithm) {
86
+ switch (algorithm) {
87
+ case 'aes-256-cbc':
88
+ return this.cipherAES256CBC.decrypt(data, key);
89
+ case 'aes-256-gcm':
90
+ return this.cipherAES256GCM.decrypt(data, key);
91
+ }
92
+ (0, assertions_1.assertUnreachable)(algorithm);
50
93
  }
51
94
  };
52
95
  exports.Cipher = Cipher;
53
96
  exports.Cipher = Cipher = __decorate([
54
97
  (0, di_1.Service)(),
55
- __metadata("design:paramtypes", [instance_settings_1.InstanceSettings])
98
+ __metadata("design:paramtypes", [instance_settings_1.InstanceSettings,
99
+ aes_256_gcm_1.CipherAes256GCM,
100
+ aes_256_cbc_1.CipherAes256CBC,
101
+ encryption_key_proxy_1.EncryptionKeyProxy])
56
102
  ], Cipher);
57
103
  //# sourceMappingURL=cipher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cipher.js","sourceRoot":"","sources":["../../src/encryption/cipher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cipher.js","sourceRoot":"","sources":["../../src/encryption/cipher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export type KeyInfo = {
2
+ id: string;
3
+ value: string;
4
+ algorithm: string;
5
+ };
6
+ export interface IEncryptionKeyProvider {
7
+ getActiveKey(): Promise<KeyInfo>;
8
+ getKeyById(id: string): Promise<KeyInfo | null>;
9
+ getLegacyKey(): Promise<KeyInfo>;
10
+ }
11
+ export declare class EncryptionKeyProxy {
12
+ private provider;
13
+ setProvider(provider: IEncryptionKeyProvider | undefined): void;
14
+ isConfigured(): boolean;
15
+ getActiveKey(): Promise<KeyInfo>;
16
+ getKeyById(id: string): Promise<KeyInfo | null>;
17
+ getLegacyKey(): Promise<KeyInfo>;
18
+ }
@@ -0,0 +1,39 @@
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.EncryptionKeyProxy = void 0;
10
+ const di_1 = require("@n8n/di");
11
+ const n8n_workflow_1 = require("n8n-workflow");
12
+ let EncryptionKeyProxy = class EncryptionKeyProxy {
13
+ setProvider(provider) {
14
+ this.provider = provider;
15
+ }
16
+ isConfigured() {
17
+ return this.provider !== undefined;
18
+ }
19
+ async getActiveKey() {
20
+ if (!this.provider)
21
+ throw new n8n_workflow_1.UnexpectedError('Encryption key provider is not configured');
22
+ return await this.provider.getActiveKey();
23
+ }
24
+ async getKeyById(id) {
25
+ if (!this.provider)
26
+ throw new n8n_workflow_1.UnexpectedError('Encryption key provider is not configured');
27
+ return await this.provider.getKeyById(id);
28
+ }
29
+ async getLegacyKey() {
30
+ if (!this.provider)
31
+ throw new n8n_workflow_1.UnexpectedError('Encryption key provider is not configured');
32
+ return await this.provider.getLegacyKey();
33
+ }
34
+ };
35
+ exports.EncryptionKeyProxy = EncryptionKeyProxy;
36
+ exports.EncryptionKeyProxy = EncryptionKeyProxy = __decorate([
37
+ (0, di_1.Service)()
38
+ ], EncryptionKeyProxy);
39
+ //# sourceMappingURL=encryption-key-proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryption-key-proxy.js","sourceRoot":"","sources":["../../src/encryption/encryption-key-proxy.ts"],"names":[],"mappings":";;;;;;;;;AAAA,gCAAkC;AAClC,+CAA+C;AAoBxC,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAG9B,WAAW,CAAC,QAA4C;QACvD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,CAAC;IAED,YAAY;QACX,OAAO,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,YAAY;QACjB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,8BAAe,CAAC,2CAA2C,CAAC,CAAC;QAC3F,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU;QAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,8BAAe,CAAC,2CAA2C,CAAC,CAAC;QAC3F,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,YAAY;QACjB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,8BAAe,CAAC,2CAA2C,CAAC,CAAC;QAC3F,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;IAC3C,CAAC;CACD,CAAA;AAzBY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,YAAO,GAAE;GACG,kBAAkB,CAyB9B"}
@@ -1 +1,6 @@
1
1
  export { Cipher } from './cipher';
2
+ export { CipherAes256GCM } from './aes-256-gcm';
3
+ export { CipherAes256CBC } from './aes-256-cbc';
4
+ export type { CipherAlgorithm } from './interface';
5
+ export { EncryptionKeyProxy } from './encryption-key-proxy';
6
+ export type { KeyInfo, IEncryptionKeyProvider } from './encryption-key-proxy';
@@ -1,6 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Cipher = void 0;
3
+ exports.EncryptionKeyProxy = exports.CipherAes256CBC = exports.CipherAes256GCM = exports.Cipher = void 0;
4
4
  var cipher_1 = require("./cipher");
5
5
  Object.defineProperty(exports, "Cipher", { enumerable: true, get: function () { return cipher_1.Cipher; } });
6
+ var aes_256_gcm_1 = require("./aes-256-gcm");
7
+ Object.defineProperty(exports, "CipherAes256GCM", { enumerable: true, get: function () { return aes_256_gcm_1.CipherAes256GCM; } });
8
+ var aes_256_cbc_1 = require("./aes-256-cbc");
9
+ Object.defineProperty(exports, "CipherAes256CBC", { enumerable: true, get: function () { return aes_256_cbc_1.CipherAes256CBC; } });
10
+ var encryption_key_proxy_1 = require("./encryption-key-proxy");
11
+ Object.defineProperty(exports, "EncryptionKeyProxy", { enumerable: true, get: function () { return encryption_key_proxy_1.EncryptionKeyProxy; } });
6
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/encryption/index.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAAzB,gGAAA,MAAM,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/encryption/index.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,6CAAgD;AAAvC,8GAAA,eAAe,OAAA;AACxB,6CAAgD;AAAvC,8GAAA,eAAe,OAAA;AAExB,+DAA4D;AAAnD,0HAAA,kBAAkB,OAAA"}
@@ -0,0 +1,5 @@
1
+ export type CipherAlgorithm = 'aes-256-cbc' | 'aes-256-gcm';
2
+ export interface CipherWrapper {
3
+ encrypt(data: string, key: string): string;
4
+ decrypt(data: string, key: string): string;
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/encryption/interface.ts"],"names":[],"mappings":""}
@@ -83,7 +83,9 @@ let ActiveWorkflows = class ActiveWorkflows {
83
83
  nodeId: node.id,
84
84
  expression,
85
85
  };
86
- this.scheduledTaskManager.registerCron(ctx, executeTrigger);
86
+ this.scheduledTaskManager.registerCron(ctx, () => {
87
+ void executeTrigger();
88
+ });
87
89
  }
88
90
  }
89
91
  async remove(workflowId) {
@@ -1 +1 @@
1
- {"version":3,"file":"active-workflows.js","sourceRoot":"","sources":["../../src/execution-engine/active-workflows.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"active-workflows.js","sourceRoot":"","sources":["../../src/execution-engine/active-workflows.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,24 @@
1
1
  import type { IHttpRequestOptions, INode, INodeProperties, IRequestOptions } from 'n8n-workflow';
2
+ import { Readable } from 'node:stream';
2
3
  import type { EvalLlmMockHandler, EvalMockHttpResponse } from './index';
3
4
  export declare function isSecretCredentialProperty(prop: INodeProperties): boolean;
4
5
  export declare function buildEvalMockCredentials(properties: INodeProperties[]): Record<string, unknown>;
5
- export declare function serializeMockToHttpResponse(mock: EvalMockHttpResponse): {
6
+ export declare function serializeMockToHttpResponse(mock: EvalMockHttpResponse, requestOptions?: IHttpRequestOptions): {
7
+ body: Readable;
8
+ headers: Record<string, string>;
9
+ statusCode: number;
10
+ statusMessage: string;
11
+ } | {
6
12
  body: Buffer<any>;
7
13
  headers: Record<string, string>;
8
14
  statusCode: number;
9
15
  statusMessage: string;
16
+ } | {
17
+ body: unknown;
18
+ __bodyResolved: boolean;
19
+ headers: Record<string, string>;
20
+ statusCode: number;
21
+ statusMessage: string;
10
22
  };
11
23
  export declare function normalizeLegacyRequest(uriOrObject: string | IRequestOptions, options?: IRequestOptions): IHttpRequestOptions;
12
24
  export declare function callEvalMockHandler(handler: EvalLlmMockHandler, requestOptions: IHttpRequestOptions, node: INode, returnFullResponse?: boolean, httpLibrary?: 'axios' | 'legacy'): Promise<unknown>;
@@ -5,6 +5,7 @@ exports.buildEvalMockCredentials = buildEvalMockCredentials;
5
5
  exports.serializeMockToHttpResponse = serializeMockToHttpResponse;
6
6
  exports.normalizeLegacyRequest = normalizeLegacyRequest;
7
7
  exports.callEvalMockHandler = callEvalMockHandler;
8
+ const node_stream_1 = require("node:stream");
8
9
  const EVAL_MOCK_RSA_KEY = '-----BEGIN RSA PRIVATE KEY-----\n' +
9
10
  'MIIEpAIBAAKCAQEA0Z3VS5JJcds3xfn/ygWep4PAtGoRBh2hHiwxBgNlHOVMSMk7\n' +
10
11
  'R1ueXBOwqmLMSsGCnl1kV2QLFG6mnMBOxJBbXGLuzJsFMDPCnZGfnJBfcCnxGYCE\n' +
@@ -39,7 +40,11 @@ function toPlaceholder(name) {
39
40
  function buildEvalMockCredentials(properties) {
40
41
  const mockCredentials = {};
41
42
  for (const prop of properties) {
42
- if (isSecretCredentialProperty(prop)) {
43
+ if (prop.type === 'json') {
44
+ mockCredentials[prop.name] =
45
+ typeof prop.default === 'string' && prop.default.trim() ? prop.default : '{}';
46
+ }
47
+ else if (isSecretCredentialProperty(prop)) {
43
48
  mockCredentials[prop.name] = toPlaceholder(prop.name);
44
49
  }
45
50
  else {
@@ -54,11 +59,36 @@ function buildEvalMockCredentials(properties) {
54
59
  mockCredentials.privateKey = EVAL_MOCK_RSA_KEY;
55
60
  return mockCredentials;
56
61
  }
57
- function serializeMockToHttpResponse(mock) {
58
- const body = mock.body instanceof Buffer
62
+ function serializeMockToHttpResponse(mock, requestOptions) {
63
+ const common = {
64
+ headers: mock.headers,
65
+ statusCode: mock.statusCode,
66
+ statusMessage: 'OK',
67
+ };
68
+ const bytes = () => mock.body instanceof Buffer
59
69
  ? mock.body
60
- : Buffer.from(typeof mock.body === 'string' ? mock.body : JSON.stringify(mock.body));
61
- return { body, headers: mock.headers, statusCode: mock.statusCode, statusMessage: 'OK' };
70
+ : Buffer.from(typeof mock.body === 'string' ? mock.body : JSON.stringify(mock.body ?? ''));
71
+ switch (requestOptions?.encoding) {
72
+ case 'stream':
73
+ return { ...common, body: node_stream_1.Readable.from(bytes()) };
74
+ case 'arraybuffer':
75
+ case 'blob':
76
+ return { ...common, body: bytes() };
77
+ case 'text':
78
+ return {
79
+ ...common,
80
+ body: mock.body instanceof Buffer
81
+ ? mock.body.toString()
82
+ : typeof mock.body === 'string'
83
+ ? mock.body
84
+ : JSON.stringify(mock.body ?? ''),
85
+ __bodyResolved: true,
86
+ };
87
+ }
88
+ if (mock.body instanceof Buffer) {
89
+ return { ...common, body: mock.body };
90
+ }
91
+ return { ...common, body: mock.body, __bodyResolved: true };
62
92
  }
63
93
  function normalizeLegacyRequest(uriOrObject, options) {
64
94
  if (typeof uriOrObject === 'string') {
@@ -85,7 +115,7 @@ async function callEvalMockHandler(handler, requestOptions, node, returnFullResp
85
115
  if (response.statusCode >= 400) {
86
116
  throwHttpError(response, httpLibrary);
87
117
  }
88
- return returnFullResponse ? serializeMockToHttpResponse(response) : response.body;
118
+ return returnFullResponse ? serializeMockToHttpResponse(response, requestOptions) : response.body;
89
119
  }
90
120
  function throwHttpError(response, library) {
91
121
  const message = `Request failed with status code ${response.statusCode}`;
@@ -1 +1 @@
1
- {"version":3,"file":"eval-mock-helpers.js","sourceRoot":"","sources":["../../src/execution-engine/eval-mock-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eval-mock-helpers.js","sourceRoot":"","sources":["../../src/execution-engine/eval-mock-helpers.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ export type ExecutionLifecycleHookHandlers = {
3
3
  nodeExecuteBefore: Array<(this: ExecutionLifecycleHooks, nodeName: string, data: ITaskStartedData) => Promise<void> | void>;
4
4
  nodeExecuteAfter: Array<(this: ExecutionLifecycleHooks, nodeName: string, data: ITaskData, executionData: IRunExecutionData) => Promise<void> | void>;
5
5
  workflowExecuteBefore: Array<(this: ExecutionLifecycleHooks, workflow: Workflow, data?: IRunExecutionData) => Promise<void> | void>;
6
- workflowExecuteResume: Array<(this: ExecutionLifecycleHooks, workflow: Workflow, data?: IRunExecutionData) => Promise<void> | void>;
6
+ workflowExecuteResume: Array<(this: ExecutionLifecycleHooks, workflow: Workflow, data: IRunExecutionData) => Promise<void> | void>;
7
7
  workflowExecuteAfter: Array<(this: ExecutionLifecycleHooks, data: IRun, newStaticData: IDataObject) => Promise<void> | void>;
8
8
  sendResponse: Array<(this: ExecutionLifecycleHooks, response: IExecuteResponsePromiseData) => Promise<void> | void>;
9
9
  sendChunk: Array<(this: ExecutionLifecycleHooks, chunk: StructuredChunk) => Promise<void> | void>;
@@ -10,7 +10,7 @@ export declare class BaseExecuteContext extends NodeExecutionContext {
10
10
  getExecutionContext(): {
11
11
  version: 1;
12
12
  establishedAt: number;
13
- source: "webhook" | "error" | "cli" | "integrated" | "internal" | "manual" | "retry" | "trigger" | "evaluation" | "chat";
13
+ source: "webhook" | "cli" | "error" | "integrated" | "internal" | "manual" | "retry" | "trigger" | "evaluation" | "chat";
14
14
  triggerNode?: {
15
15
  name: string;
16
16
  type: string;