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.
- package/dist/binary-data/object-store/object-store.service.ee.js +27 -5
- package/dist/binary-data/object-store/object-store.service.ee.js.map +1 -1
- package/dist/build.tsbuildinfo +1 -1
- package/dist/encryption/aes-256-cbc.d.ts +6 -0
- package/dist/encryption/aes-256-cbc.js +48 -0
- package/dist/encryption/aes-256-cbc.js.map +1 -0
- package/dist/encryption/aes-256-gcm.d.ts +7 -0
- package/dist/encryption/aes-256-gcm.js +72 -0
- package/dist/encryption/aes-256-gcm.js.map +1 -0
- package/dist/encryption/cipher.d.ts +14 -2
- package/dist/encryption/cipher.js +76 -30
- package/dist/encryption/cipher.js.map +1 -1
- package/dist/encryption/encryption-key-proxy.d.ts +18 -0
- package/dist/encryption/encryption-key-proxy.js +39 -0
- package/dist/encryption/encryption-key-proxy.js.map +1 -0
- package/dist/encryption/index.d.ts +5 -0
- package/dist/encryption/index.js +7 -1
- package/dist/encryption/index.js.map +1 -1
- package/dist/encryption/interface.d.ts +5 -0
- package/dist/encryption/interface.js +3 -0
- package/dist/encryption/interface.js.map +1 -0
- package/dist/execution-engine/active-workflows.js +3 -1
- package/dist/execution-engine/active-workflows.js.map +1 -1
- package/dist/execution-engine/eval-mock-helpers.d.ts +13 -1
- package/dist/execution-engine/eval-mock-helpers.js +36 -6
- package/dist/execution-engine/eval-mock-helpers.js.map +1 -1
- package/dist/execution-engine/execution-lifecycle-hooks.d.ts +1 -1
- package/dist/execution-engine/node-execution-context/base-execute-context.d.ts +1 -1
- package/dist/execution-engine/node-execution-context/node-execution-context.d.ts +2 -2
- package/dist/execution-engine/node-execution-context/node-execution-context.js +5 -2
- package/dist/execution-engine/node-execution-context/node-execution-context.js.map +1 -1
- package/dist/execution-engine/node-execution-context/utils/outbound-user-agent.d.ts +4 -0
- package/dist/execution-engine/node-execution-context/utils/outbound-user-agent.js +40 -0
- package/dist/execution-engine/node-execution-context/utils/outbound-user-agent.js.map +1 -0
- package/dist/execution-engine/node-execution-context/utils/request-helper-functions.js +13 -8
- package/dist/execution-engine/node-execution-context/utils/request-helper-functions.js.map +1 -1
- package/dist/execution-engine/node-execution-context/utils/scheduling-helper-functions.js.map +1 -1
- package/dist/execution-engine/routing-node.js +19 -8
- package/dist/execution-engine/routing-node.js.map +1 -1
- package/dist/execution-engine/scheduled-task-manager.d.ts +1 -1
- package/dist/execution-engine/scheduled-task-manager.js +9 -3
- package/dist/execution-engine/scheduled-task-manager.js.map +1 -1
- package/dist/utils/assertions.d.ts +1 -0
- package/dist/utils/assertions.js +4 -0
- package/dist/utils/assertions.js.map +1 -1
- package/package.json +11 -11
|
@@ -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,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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
23
|
-
const
|
|
24
|
-
|
|
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
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
.
|
|
48
|
-
|
|
49
|
-
|
|
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":";;;;;;;;;;;;AAAA,gCAAkC;
|
|
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';
|
package/dist/encryption/index.js
CHANGED
|
@@ -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 @@
|
|
|
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,
|
|
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 (
|
|
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
|
|
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
|
-
|
|
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":";;
|
|
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
|
|
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" | "
|
|
13
|
+
source: "webhook" | "cli" | "error" | "integrated" | "internal" | "manual" | "retry" | "trigger" | "evaluation" | "chat";
|
|
14
14
|
triggerNode?: {
|
|
15
15
|
name: string;
|
|
16
16
|
type: string;
|