n8n-core 1.87.0 → 1.88.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.
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
import type { SSHCredentials } from 'n8n-workflow';
|
|
2
2
|
import { Client } from 'ssh2';
|
|
3
|
+
declare class SSHClientsConfig {
|
|
4
|
+
idleTimeout: number;
|
|
5
|
+
}
|
|
3
6
|
export declare class SSHClientsManager {
|
|
7
|
+
private readonly config;
|
|
4
8
|
readonly clients: Map<string, {
|
|
5
9
|
client: Client;
|
|
6
10
|
lastUsed: Date;
|
|
7
11
|
}>;
|
|
8
|
-
constructor();
|
|
12
|
+
constructor(config: SSHClientsConfig);
|
|
9
13
|
getClient(credentials: SSHCredentials): Promise<Client>;
|
|
10
14
|
onShutdown(): void;
|
|
11
15
|
cleanupStaleConnections(): void;
|
|
12
16
|
}
|
|
17
|
+
export {};
|
|
@@ -10,11 +10,25 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.SSHClientsManager = void 0;
|
|
13
|
+
const config_1 = require("@n8n/config");
|
|
13
14
|
const di_1 = require("@n8n/di");
|
|
14
15
|
const node_crypto_1 = require("node:crypto");
|
|
15
16
|
const ssh2_1 = require("ssh2");
|
|
16
|
-
let
|
|
17
|
+
let SSHClientsConfig = class SSHClientsConfig {
|
|
17
18
|
constructor() {
|
|
19
|
+
this.idleTimeout = 5 * 60;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
__decorate([
|
|
23
|
+
(0, config_1.Env)('N8N_SSH_TUNNEL_IDLE_TIMEOUT'),
|
|
24
|
+
__metadata("design:type", Number)
|
|
25
|
+
], SSHClientsConfig.prototype, "idleTimeout", void 0);
|
|
26
|
+
SSHClientsConfig = __decorate([
|
|
27
|
+
config_1.Config
|
|
28
|
+
], SSHClientsConfig);
|
|
29
|
+
let SSHClientsManager = class SSHClientsManager {
|
|
30
|
+
constructor(config) {
|
|
31
|
+
this.config = config;
|
|
18
32
|
this.clients = new Map();
|
|
19
33
|
process.on('exit', () => this.onShutdown());
|
|
20
34
|
if (process.env.NODE_ENV === 'test')
|
|
@@ -66,7 +80,7 @@ let SSHClientsManager = class SSHClientsManager {
|
|
|
66
80
|
return;
|
|
67
81
|
const now = Date.now();
|
|
68
82
|
for (const [hash, { client, lastUsed }] of clients.entries()) {
|
|
69
|
-
if (now - lastUsed.getTime() >
|
|
83
|
+
if (now - lastUsed.getTime() > this.config.idleTimeout * 1000) {
|
|
70
84
|
client.end();
|
|
71
85
|
clients.delete(hash);
|
|
72
86
|
}
|
|
@@ -76,6 +90,6 @@ let SSHClientsManager = class SSHClientsManager {
|
|
|
76
90
|
exports.SSHClientsManager = SSHClientsManager;
|
|
77
91
|
exports.SSHClientsManager = SSHClientsManager = __decorate([
|
|
78
92
|
(0, di_1.Service)(),
|
|
79
|
-
__metadata("design:paramtypes", [])
|
|
93
|
+
__metadata("design:paramtypes", [SSHClientsConfig])
|
|
80
94
|
], SSHClientsManager);
|
|
81
95
|
//# sourceMappingURL=ssh-clients-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssh-clients-manager.js","sourceRoot":"","sources":["../../src/execution-engine/ssh-clients-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gCAAkC;AAElC,6CAAyC;AACzC,+BAAkD;
|
|
1
|
+
{"version":3,"file":"ssh-clients-manager.js","sourceRoot":"","sources":["../../src/execution-engine/ssh-clients-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAA0C;AAC1C,gCAAkC;AAElC,6CAAyC;AACzC,+BAAkD;AAGlD,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAAtB;QAGC,gBAAW,GAAW,CAAC,GAAG,EAAE,CAAC;IAC9B,CAAC;CAAA,CAAA;AADA;IADC,IAAA,YAAG,EAAC,6BAA6B,CAAC;;qDACN;AAHxB,gBAAgB;IADrB,eAAM;GACD,gBAAgB,CAIrB;AAGM,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAG7B,YAA6B,MAAwB;QAAxB,WAAM,GAAN,MAAM,CAAkB;QAF5C,YAAO,GAAG,IAAI,GAAG,EAA8C,CAAC;QAIxE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAE5C,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM;YAAE,OAAO;QAG5C,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,WAA2B;QAC1C,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;QACvE,MAAM,SAAS,GAAkB;YAChC,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,OAAO;YACjB,GAAG,CAAC,mBAAmB,KAAK,UAAU;gBACrC,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,WAAW,EAAE;gBACvC,CAAC,CAAC;oBACA,UAAU,EAAE,WAAW,CAAC,UAAU;oBAClC,UAAU,EAAE,WAAW,CAAC,UAAU,IAAI,SAAS;iBAC/C,CAAC;SACJ,CAAC;QAEF,MAAM,UAAU,GAAG,IAAA,wBAAU,EAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEzF,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,QAAQ,EAAE,CAAC;YACd,QAAQ,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;YAC/B,OAAO,QAAQ,CAAC,MAAM,CAAC;QACxB,CAAC;QAED,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC5C,MAAM,SAAS,GAAG,IAAI,aAAM,EAAE,CAAC;YAC/B,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;gBAC5B,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC/B,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC/D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE;oBAC5B,MAAM,EAAE,SAAS;oBACjB,QAAQ,EAAE,IAAI,IAAI,EAAE;iBACpB,CAAC,CAAC;gBACH,OAAO,CAAC,SAAS,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC;YACH,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,UAAU;QACT,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAChD,MAAM,CAAC,GAAG,EAAE,CAAC;QACd,CAAC;IACF,CAAC;IAED,uBAAuB;QACtB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACzB,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO;QAE/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YAC9D,IAAI,GAAG,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,EAAE,CAAC;gBAC/D,MAAM,CAAC,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;QACF,CAAC;IACF,CAAC;CACD,CAAA;AArEY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,YAAO,GAAE;qCAI4B,gBAAgB;GAHzC,iBAAiB,CAqE7B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n-core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.88.0",
|
|
4
4
|
"description": "Core functionality of n8n",
|
|
5
5
|
"main": "dist/index",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -52,10 +52,10 @@
|
|
|
52
52
|
"winston": "3.14.2",
|
|
53
53
|
"xml2js": "0.6.2",
|
|
54
54
|
"zod": "3.24.1",
|
|
55
|
-
"@n8n/config": "1.35.0",
|
|
56
|
-
"@n8n/di": "0.4.0",
|
|
57
55
|
"@n8n/client-oauth2": "0.23.0",
|
|
58
|
-
"n8n
|
|
56
|
+
"@n8n/config": "1.36.0",
|
|
57
|
+
"@n8n/di": "0.4.0",
|
|
58
|
+
"n8n-workflow": "1.87.0"
|
|
59
59
|
},
|
|
60
60
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
61
61
|
"homepage": "https://n8n.io",
|