n8n-core 1.49.0 → 1.51.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/LICENSE_EE.md +27 -0
- package/dist/ActiveWorkflows.d.ts +6 -3
- package/dist/ActiveWorkflows.js +16 -24
- package/dist/ActiveWorkflows.js.map +1 -1
- package/dist/BinaryData/BinaryData.service.d.ts +0 -1
- package/dist/BinaryData/BinaryData.service.js +1 -4
- package/dist/BinaryData/BinaryData.service.js.map +1 -1
- package/dist/BinaryData/ObjectStore.manager.d.ts +0 -1
- package/dist/BinaryData/ObjectStore.manager.js +1 -4
- package/dist/BinaryData/ObjectStore.manager.js.map +1 -1
- package/dist/BinaryData/utils.d.ts +1 -1
- package/dist/BinaryData/utils.js +2 -2
- package/dist/BinaryData/utils.js.map +1 -1
- package/dist/Interfaces.d.ts +1 -2
- package/dist/NodeExecuteFunctions.d.ts +0 -1
- package/dist/NodeExecuteFunctions.js +37 -21
- package/dist/NodeExecuteFunctions.js.map +1 -1
- package/dist/SSHClientsManager.d.ts +12 -0
- package/dist/SSHClientsManager.js +82 -0
- package/dist/SSHClientsManager.js.map +1 -0
- package/dist/ScheduledTaskManager.d.ts +8 -0
- package/dist/ScheduledTaskManager.js +43 -0
- package/dist/ScheduledTaskManager.js.map +1 -0
- package/dist/build.tsbuildinfo +1 -1
- package/package.json +18 -16
package/LICENSE_EE.md
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# The n8n Enterprise License (the “Enterprise License”)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2022-present n8n GmbH.
|
|
4
|
+
|
|
5
|
+
With regard to the n8n Software:
|
|
6
|
+
|
|
7
|
+
This software and associated documentation files (the "Software") may only be used in production, if
|
|
8
|
+
you (and any entity that you represent) hold a valid n8n Enterprise license corresponding to your
|
|
9
|
+
usage. Subject to the foregoing sentence, you are free to modify this Software and publish patches
|
|
10
|
+
to the Software. You agree that n8n and/or its licensors (as applicable) retain all right, title and
|
|
11
|
+
interest in and to all such modifications and/or patches, and all such modifications and/or patches
|
|
12
|
+
may only be used, copied, modified, displayed, distributed, or otherwise exploited with a valid n8n
|
|
13
|
+
Enterprise license for the corresponding usage. Notwithstanding the foregoing, you may copy and
|
|
14
|
+
modify the Software for development and testing purposes, without requiring a subscription. You
|
|
15
|
+
agree that n8n and/or its licensors (as applicable) retain all right, title and interest in and to
|
|
16
|
+
all such modifications. You are not granted any other rights beyond what is expressly stated herein.
|
|
17
|
+
Subject to the foregoing, it is forbidden to copy, merge, publish, distribute, sublicense, and/or
|
|
18
|
+
sell the Software.
|
|
19
|
+
|
|
20
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
|
|
21
|
+
NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
22
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES
|
|
23
|
+
OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
24
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
25
|
+
|
|
26
|
+
For all third party components incorporated into the n8n Software, those components are licensed
|
|
27
|
+
under the original license provided by the owner of the applicable component.
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import type { IGetExecutePollFunctions, IGetExecuteTriggerFunctions, INode,
|
|
1
|
+
import type { IGetExecutePollFunctions, IGetExecuteTriggerFunctions, INode, IWorkflowExecuteAdditionalData, Workflow, WorkflowActivateMode, WorkflowExecuteMode } from 'n8n-workflow';
|
|
2
|
+
import { ScheduledTaskManager } from './ScheduledTaskManager';
|
|
2
3
|
import type { IWorkflowData } from './Interfaces';
|
|
3
4
|
export declare class ActiveWorkflows {
|
|
5
|
+
private readonly scheduledTaskManager;
|
|
6
|
+
constructor(scheduledTaskManager: ScheduledTaskManager);
|
|
4
7
|
private activeWorkflows;
|
|
5
8
|
isActive(workflowId: string): boolean;
|
|
6
9
|
allActiveWorkflows(): string[];
|
|
7
10
|
get(workflowId: string): IWorkflowData;
|
|
8
11
|
add(workflowId: string, workflow: Workflow, additionalData: IWorkflowExecuteAdditionalData, mode: WorkflowExecuteMode, activation: WorkflowActivateMode, getTriggerFunctions: IGetExecuteTriggerFunctions, getPollFunctions: IGetExecutePollFunctions): Promise<void>;
|
|
9
|
-
activatePolling(node: INode, workflow: Workflow, additionalData: IWorkflowExecuteAdditionalData, getPollFunctions: IGetExecutePollFunctions, mode: WorkflowExecuteMode, activation: WorkflowActivateMode): Promise<
|
|
12
|
+
activatePolling(node: INode, workflow: Workflow, additionalData: IWorkflowExecuteAdditionalData, getPollFunctions: IGetExecutePollFunctions, mode: WorkflowExecuteMode, activation: WorkflowActivateMode): Promise<void>;
|
|
10
13
|
remove(workflowId: string): Promise<boolean>;
|
|
11
14
|
removeAllTriggerAndPollerBasedWorkflows(): Promise<void>;
|
|
12
|
-
private
|
|
15
|
+
private closeTrigger;
|
|
13
16
|
}
|
package/dist/ActiveWorkflows.js
CHANGED
|
@@ -5,13 +5,17 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
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
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
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
|
+
};
|
|
8
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
12
|
exports.ActiveWorkflows = void 0;
|
|
10
13
|
const typedi_1 = require("typedi");
|
|
11
|
-
const cron_1 = require("cron");
|
|
12
14
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
15
|
+
const ScheduledTaskManager_1 = require("./ScheduledTaskManager");
|
|
13
16
|
let ActiveWorkflows = class ActiveWorkflows {
|
|
14
|
-
constructor() {
|
|
17
|
+
constructor(scheduledTaskManager) {
|
|
18
|
+
this.scheduledTaskManager = scheduledTaskManager;
|
|
15
19
|
this.activeWorkflows = {};
|
|
16
20
|
}
|
|
17
21
|
isActive(workflowId) {
|
|
@@ -43,10 +47,9 @@ let ActiveWorkflows = class ActiveWorkflows {
|
|
|
43
47
|
const pollingNodes = workflow.getPollNodes();
|
|
44
48
|
if (pollingNodes.length === 0)
|
|
45
49
|
return;
|
|
46
|
-
this.activeWorkflows[workflowId].pollResponses = [];
|
|
47
50
|
for (const pollNode of pollingNodes) {
|
|
48
51
|
try {
|
|
49
|
-
|
|
52
|
+
await this.activatePolling(pollNode, workflow, additionalData, getPollFunctions, mode, activation);
|
|
50
53
|
}
|
|
51
54
|
catch (e) {
|
|
52
55
|
const error = e instanceof Error ? e : new Error(`${e}`);
|
|
@@ -77,36 +80,24 @@ let ActiveWorkflows = class ActiveWorkflows {
|
|
|
77
80
|
}
|
|
78
81
|
};
|
|
79
82
|
await executeTrigger(true);
|
|
80
|
-
const timezone = pollFunctions.getTimezone();
|
|
81
|
-
const cronJobs = [];
|
|
82
83
|
for (const cronTime of cronTimes) {
|
|
83
84
|
const cronTimeParts = cronTime.split(' ');
|
|
84
85
|
if (cronTimeParts.length > 0 && cronTimeParts[0].includes('*')) {
|
|
85
86
|
throw new n8n_workflow_1.ApplicationError('The polling interval is too short. It has to be at least a minute.');
|
|
86
87
|
}
|
|
87
|
-
|
|
88
|
-
}
|
|
89
|
-
async function closeFunction() {
|
|
90
|
-
for (const cronJob of cronJobs) {
|
|
91
|
-
cronJob.stop();
|
|
92
|
-
}
|
|
88
|
+
this.scheduledTaskManager.registerCron(workflow, cronTime, executeTrigger);
|
|
93
89
|
}
|
|
94
|
-
return {
|
|
95
|
-
closeFunction,
|
|
96
|
-
};
|
|
97
90
|
}
|
|
98
91
|
async remove(workflowId) {
|
|
99
|
-
var _a
|
|
92
|
+
var _a;
|
|
100
93
|
if (!this.isActive(workflowId)) {
|
|
101
94
|
n8n_workflow_1.LoggerProxy.warn(`Cannot deactivate already inactive workflow ID "${workflowId}"`);
|
|
102
95
|
return false;
|
|
103
96
|
}
|
|
97
|
+
this.scheduledTaskManager.deregisterCrons(workflowId);
|
|
104
98
|
const w = this.activeWorkflows[workflowId];
|
|
105
99
|
for (const r of (_a = w.triggerResponses) !== null && _a !== void 0 ? _a : []) {
|
|
106
|
-
await this.
|
|
107
|
-
}
|
|
108
|
-
for (const r of (_b = w.pollResponses) !== null && _b !== void 0 ? _b : []) {
|
|
109
|
-
await this.close(r, workflowId, 'poller');
|
|
100
|
+
await this.closeTrigger(r, workflowId);
|
|
110
101
|
}
|
|
111
102
|
delete this.activeWorkflows[workflowId];
|
|
112
103
|
return true;
|
|
@@ -116,7 +107,7 @@ let ActiveWorkflows = class ActiveWorkflows {
|
|
|
116
107
|
await this.remove(workflowId);
|
|
117
108
|
}
|
|
118
109
|
}
|
|
119
|
-
async
|
|
110
|
+
async closeTrigger(response, workflowId) {
|
|
120
111
|
if (!response.closeFunction)
|
|
121
112
|
return;
|
|
122
113
|
try {
|
|
@@ -125,16 +116,17 @@ let ActiveWorkflows = class ActiveWorkflows {
|
|
|
125
116
|
catch (e) {
|
|
126
117
|
if (e instanceof n8n_workflow_1.TriggerCloseError) {
|
|
127
118
|
n8n_workflow_1.LoggerProxy.error(`There was a problem calling "closeFunction" on "${e.node.name}" in workflow "${workflowId}"`);
|
|
128
|
-
n8n_workflow_1.ErrorReporterProxy.error(e, { extra: {
|
|
119
|
+
n8n_workflow_1.ErrorReporterProxy.error(e, { extra: { workflowId } });
|
|
129
120
|
return;
|
|
130
121
|
}
|
|
131
122
|
const error = e instanceof Error ? e : new Error(`${e}`);
|
|
132
|
-
throw new n8n_workflow_1.WorkflowDeactivationError(`Failed to deactivate
|
|
123
|
+
throw new n8n_workflow_1.WorkflowDeactivationError(`Failed to deactivate trigger of workflow ID "${workflowId}": "${error.message}"`, { cause: error, workflowId });
|
|
133
124
|
}
|
|
134
125
|
}
|
|
135
126
|
};
|
|
136
127
|
exports.ActiveWorkflows = ActiveWorkflows;
|
|
137
128
|
exports.ActiveWorkflows = ActiveWorkflows = __decorate([
|
|
138
|
-
(0, typedi_1.Service)()
|
|
129
|
+
(0, typedi_1.Service)(),
|
|
130
|
+
__metadata("design:paramtypes", [ScheduledTaskManager_1.ScheduledTaskManager])
|
|
139
131
|
], ActiveWorkflows);
|
|
140
132
|
//# sourceMappingURL=ActiveWorkflows.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActiveWorkflows.js","sourceRoot":"","sources":["../src/ActiveWorkflows.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ActiveWorkflows.js","sourceRoot":"","sources":["../src/ActiveWorkflows.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,6 @@ export declare class BinaryDataService {
|
|
|
7
7
|
init(config: BinaryData.Config): Promise<void>;
|
|
8
8
|
copyBinaryFile(workflowId: string, executionId: string, binaryData: IBinaryData, filePath: string): Promise<IBinaryData>;
|
|
9
9
|
store(workflowId: string, executionId: string, bufferOrStream: Buffer | Readable, binaryData: IBinaryData): Promise<IBinaryData>;
|
|
10
|
-
toBuffer(bufferOrStream: Buffer | Readable): Promise<Buffer>;
|
|
11
10
|
getAsStream(binaryDataId: string, chunkSize?: number): Promise<Readable>;
|
|
12
11
|
getAsBuffer(binaryData: IBinaryData): Promise<Buffer>;
|
|
13
12
|
getPath(binaryDataId: string): string;
|
|
@@ -83,7 +83,7 @@ let BinaryDataService = class BinaryDataService {
|
|
|
83
83
|
async store(workflowId, executionId, bufferOrStream, binaryData) {
|
|
84
84
|
const manager = this.managers[this.mode];
|
|
85
85
|
if (!manager) {
|
|
86
|
-
const buffer = await
|
|
86
|
+
const buffer = await (0, utils_1.binaryToBuffer)(bufferOrStream);
|
|
87
87
|
binaryData.data = buffer.toString(n8n_workflow_1.BINARY_ENCODING);
|
|
88
88
|
binaryData.fileSize = (0, pretty_bytes_1.default)(buffer.length);
|
|
89
89
|
return binaryData;
|
|
@@ -98,9 +98,6 @@ let BinaryDataService = class BinaryDataService {
|
|
|
98
98
|
binaryData.data = this.mode;
|
|
99
99
|
return binaryData;
|
|
100
100
|
}
|
|
101
|
-
async toBuffer(bufferOrStream) {
|
|
102
|
-
return await (0, utils_1.toBuffer)(bufferOrStream);
|
|
103
|
-
}
|
|
104
101
|
async getAsStream(binaryDataId, chunkSize) {
|
|
105
102
|
const [mode, fileId] = binaryDataId.split(':');
|
|
106
103
|
return await this.getManager(mode).getAsStream(fileId, chunkSize);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BinaryData.service.js","sourceRoot":"","sources":["../../src/BinaryData/BinaryData.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAkD;AAClD,gEAAuC;AACvC,iDAA4C;AAC5C,+CAA+C;AAC/C,qEAAgE;AAChE,
|
|
1
|
+
{"version":3,"file":"BinaryData.service.js","sourceRoot":"","sources":["../../src/BinaryData/BinaryData.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,7 +27,7 @@ let ObjectStoreManager = class ObjectStoreManager {
|
|
|
27
27
|
}
|
|
28
28
|
async store(workflowId, executionId, bufferOrStream, metadata) {
|
|
29
29
|
const fileId = this.toFileId(workflowId, executionId);
|
|
30
|
-
const buffer = await
|
|
30
|
+
const buffer = await (0, utils_1.binaryToBuffer)(bufferOrStream);
|
|
31
31
|
await this.objectStoreService.put(fileId, buffer, metadata);
|
|
32
32
|
return { fileId, fileSize: buffer.length };
|
|
33
33
|
}
|
|
@@ -72,9 +72,6 @@ let ObjectStoreManager = class ObjectStoreManager {
|
|
|
72
72
|
executionId = 'temp';
|
|
73
73
|
return `workflows/${workflowId}/executions/${executionId}/binary_data/${(0, uuid_1.v4)()}`;
|
|
74
74
|
}
|
|
75
|
-
async toBuffer(bufferOrStream) {
|
|
76
|
-
return await (0, utils_1.toBuffer)(bufferOrStream);
|
|
77
|
-
}
|
|
78
75
|
};
|
|
79
76
|
exports.ObjectStoreManager = ObjectStoreManager;
|
|
80
77
|
exports.ObjectStoreManager = ObjectStoreManager = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectStore.manager.js","sourceRoot":"","sources":["../../src/BinaryData/ObjectStore.manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gEAAkC;AAClC,mCAAiC;AACjC,+BAAkC;AAClC,
|
|
1
|
+
{"version":3,"file":"ObjectStore.manager.js","sourceRoot":"","sources":["../../src/BinaryData/ObjectStore.manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,4 +5,4 @@ export declare function areConfigModes(modes: string[]): modes is BinaryData.Con
|
|
|
5
5
|
export declare function isStoredMode(mode: string): mode is BinaryData.StoredMode;
|
|
6
6
|
export declare function assertDir(dir: string): Promise<void>;
|
|
7
7
|
export declare function doesNotExist(dir: string): Promise<boolean>;
|
|
8
|
-
export declare function
|
|
8
|
+
export declare function binaryToBuffer(body: Buffer | Readable): Promise<Buffer>;
|
package/dist/BinaryData/utils.js
CHANGED
|
@@ -8,7 +8,7 @@ exports.areConfigModes = areConfigModes;
|
|
|
8
8
|
exports.isStoredMode = isStoredMode;
|
|
9
9
|
exports.assertDir = assertDir;
|
|
10
10
|
exports.doesNotExist = doesNotExist;
|
|
11
|
-
exports.
|
|
11
|
+
exports.binaryToBuffer = binaryToBuffer;
|
|
12
12
|
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
13
13
|
const concat_stream_1 = __importDefault(require("concat-stream"));
|
|
14
14
|
exports.CONFIG_MODES = ['default', 'filesystem', 's3'];
|
|
@@ -36,7 +36,7 @@ async function doesNotExist(dir) {
|
|
|
36
36
|
return true;
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
-
async function
|
|
39
|
+
async function binaryToBuffer(body) {
|
|
40
40
|
if (Buffer.isBuffer(body))
|
|
41
41
|
return body;
|
|
42
42
|
return await new Promise((resolve, reject) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/BinaryData/utils.ts"],"names":[],"mappings":";;;;;;AASA,wCAEC;AAED,oCAEC;AAED,8BAMC;AAED,oCAOC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/BinaryData/utils.ts"],"names":[],"mappings":";;;;;;AASA,wCAEC;AAED,oCAEC;AAED,8BAMC;AAED,oCAOC;AAGD,wCAWC;AA9CD,gEAAkC;AAGlC,kEAAyC;AAE5B,QAAA,YAAY,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,CAAU,CAAC;AAErE,MAAM,YAAY,GAAG,CAAC,YAAY,EAAE,eAAe,EAAE,IAAI,CAAU,CAAC;AAEpE,SAAgB,cAAc,CAAC,KAAe;IAC7C,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAY,CAAC,QAAQ,CAAC,CAA0B,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,SAAgB,YAAY,CAAC,IAAY;IACxC,OAAO,YAAY,CAAC,QAAQ,CAAC,IAA6B,CAAC,CAAC;AAC7D,CAAC;AAEM,KAAK,UAAU,SAAS,CAAC,GAAW;IAC1C,IAAI,CAAC;QACJ,MAAM,kBAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACR,MAAM,kBAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;AACF,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,GAAW;IAC7C,IAAI,CAAC;QACJ,MAAM,kBAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,OAAO,KAAK,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAGM,KAAK,UAAU,cAAc,CAAC,IAAuB;IAC3D,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACpD,IAAI;aACF,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACxB,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;gBACnD,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;;gBAC1D,MAAM,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC,CAAC;aACD,IAAI,CAAC,IAAA,uBAAY,EAAC,OAAO,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/Interfaces.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ITriggerResponse, IWorkflowSettings as IWorkflowSettingsWorkflow, ValidationResult } from 'n8n-workflow';
|
|
2
2
|
export type Class<T = object, A extends unknown[] = unknown[]> = new (...args: A) => T;
|
|
3
3
|
export interface IResponseError extends Error {
|
|
4
4
|
statusCode?: number;
|
|
@@ -9,7 +9,6 @@ export interface IWorkflowSettings extends IWorkflowSettingsWorkflow {
|
|
|
9
9
|
saveManualRuns?: boolean;
|
|
10
10
|
}
|
|
11
11
|
export interface IWorkflowData {
|
|
12
|
-
pollResponses?: IPollResponse[];
|
|
13
12
|
triggerResponses?: ITriggerResponse[];
|
|
14
13
|
}
|
|
15
14
|
export declare namespace n8n {
|
|
@@ -37,7 +37,6 @@ export declare function ensureType(toType: EnsureTypeOptions, parameterValue: an
|
|
|
37
37
|
export declare function getNodeParameter(workflow: Workflow, runExecutionData: IRunExecutionData | null, runIndex: number, connectionInputData: INodeExecutionData[], node: INode, parameterName: string, itemIndex: number, mode: WorkflowExecuteMode, additionalKeys: IWorkflowDataProxyAdditionalKeys, executeData?: IExecuteData, fallbackValue?: any, options?: IGetNodeParameterOptions): NodeParameterValueType | object;
|
|
38
38
|
export declare function continueOnFail(node: INode): boolean;
|
|
39
39
|
export declare function getNodeWebhookUrl(name: string, workflow: Workflow, node: INode, additionalData: IWorkflowExecuteAdditionalData, mode: WorkflowExecuteMode, additionalKeys: IWorkflowDataProxyAdditionalKeys, isTest?: boolean): string | undefined;
|
|
40
|
-
export declare function getTimezone(workflow: Workflow): string;
|
|
41
40
|
export declare function getWebhookDescription(name: string, workflow: Workflow, node: INode): IWebhookDescription | undefined;
|
|
42
41
|
export declare function copyInputItems(items: INodeExecutionData[], properties: string[]): IDataObject[];
|
|
43
42
|
export declare function getExecutePollFunctions(workflow: Workflow, node: INode, additionalData: IWorkflowExecuteAdditionalData, mode: WorkflowExecuteMode, activation: WorkflowActivateMode): IPollFunctions;
|
|
@@ -51,7 +51,6 @@ exports.ensureType = ensureType;
|
|
|
51
51
|
exports.getNodeParameter = getNodeParameter;
|
|
52
52
|
exports.continueOnFail = continueOnFail;
|
|
53
53
|
exports.getNodeWebhookUrl = getNodeWebhookUrl;
|
|
54
|
-
exports.getTimezone = getTimezone;
|
|
55
54
|
exports.getWebhookDescription = getWebhookDescription;
|
|
56
55
|
exports.copyInputItems = copyInputItems;
|
|
57
56
|
exports.getExecutePollFunctions = getExecutePollFunctions;
|
|
@@ -90,6 +89,9 @@ const Secrets_1 = require("./Secrets");
|
|
|
90
89
|
const typedi_1 = __importDefault(require("typedi"));
|
|
91
90
|
const merge_1 = __importDefault(require("lodash/merge"));
|
|
92
91
|
const InstanceSettings_1 = require("./InstanceSettings");
|
|
92
|
+
const ScheduledTaskManager_1 = require("./ScheduledTaskManager");
|
|
93
|
+
const SSHClientsManager_1 = require("./SSHClientsManager");
|
|
94
|
+
const utils_1 = require("./BinaryData/utils");
|
|
93
95
|
axios_1.default.defaults.timeout = 300000;
|
|
94
96
|
axios_1.default.defaults.headers.post = {};
|
|
95
97
|
axios_1.default.defaults.headers.put = {};
|
|
@@ -563,6 +565,14 @@ function parseIncomingMessage(message) {
|
|
|
563
565
|
message.contentDisposition = contentDisposition;
|
|
564
566
|
}
|
|
565
567
|
}
|
|
568
|
+
async function binaryToString(body, encoding) {
|
|
569
|
+
const buffer = await (0, utils_1.binaryToBuffer)(body);
|
|
570
|
+
if (!encoding && body instanceof http_1.IncomingMessage) {
|
|
571
|
+
parseIncomingMessage(body);
|
|
572
|
+
encoding = body.encoding;
|
|
573
|
+
}
|
|
574
|
+
return buffer.toString(encoding);
|
|
575
|
+
}
|
|
566
576
|
async function proxyRequestToAxios(workflow, additionalData, node, uriOrObject, options) {
|
|
567
577
|
var _a, _b, _c;
|
|
568
578
|
let axiosConfig = {
|
|
@@ -628,9 +638,7 @@ async function proxyRequestToAxios(workflow, additionalData, node, uriOrObject,
|
|
|
628
638
|
n8n_workflow_1.LoggerProxy.debug('Request proxied to Axios failed', { status: response.status });
|
|
629
639
|
let responseData = response.data;
|
|
630
640
|
if (Buffer.isBuffer(responseData) || responseData instanceof stream_1.Readable) {
|
|
631
|
-
responseData = await
|
|
632
|
-
.toBuffer(responseData)
|
|
633
|
-
.then((buffer) => buffer.toString('utf-8'));
|
|
641
|
+
responseData = await binaryToString(responseData);
|
|
634
642
|
}
|
|
635
643
|
if (configObject.simple === false) {
|
|
636
644
|
if (configObject.resolveWithFullResponse) {
|
|
@@ -1675,10 +1683,6 @@ function getNodeWebhookUrl(name, workflow, node, additionalData, mode, additiona
|
|
|
1675
1683
|
const isFullPath = workflow.expression.getSimpleParameterValue(node, webhookDescription.isFullPath, mode, additionalKeys, undefined, false);
|
|
1676
1684
|
return n8n_workflow_1.NodeHelpers.getNodeWebhookUrl(baseUrl, workflow.id, node, path.toString(), isFullPath);
|
|
1677
1685
|
}
|
|
1678
|
-
function getTimezone(workflow) {
|
|
1679
|
-
var _a;
|
|
1680
|
-
return (_a = workflow.settings.timezone) !== null && _a !== void 0 ? _a : (0, n8n_workflow_1.getGlobalState)().defaultTimezone;
|
|
1681
|
-
}
|
|
1682
1686
|
function getWebhookDescription(name, workflow, node) {
|
|
1683
1687
|
const nodeType = workflow.nodeTypes.getByNameAndVersion(node.type, node.typeVersion);
|
|
1684
1688
|
if (nodeType.description.webhooks === undefined) {
|
|
@@ -1906,7 +1910,7 @@ const getCommonWorkflowFunctions = (workflow, node, additionalData) => ({
|
|
|
1906
1910
|
getRestApiUrl: () => additionalData.restApiUrl,
|
|
1907
1911
|
getInstanceBaseUrl: () => additionalData.instanceBaseUrl,
|
|
1908
1912
|
getInstanceId: () => typedi_1.default.get(InstanceSettings_1.InstanceSettings).instanceId,
|
|
1909
|
-
getTimezone: () =>
|
|
1913
|
+
getTimezone: () => workflow.timezone,
|
|
1910
1914
|
getCredentialsProperties: (type) => additionalData.credentialsHelper.getCredentialsProperties(type),
|
|
1911
1915
|
prepareOutputData: async (outputData) => [outputData],
|
|
1912
1916
|
});
|
|
@@ -1984,16 +1988,13 @@ const getRequestHelperFunctions = (workflow, node, additionalData) => {
|
|
|
1984
1988
|
}, (0, pick_1.default)(tempResponseData, ['body', 'headers', 'statusCode']));
|
|
1985
1989
|
let contentBody;
|
|
1986
1990
|
if (newResponse.body instanceof stream_1.Readable && paginationOptions.binaryResult !== true) {
|
|
1987
|
-
|
|
1988
|
-
.binaryToBuffer(newResponse.body)
|
|
1989
|
-
.then((body) => body.toString());
|
|
1990
|
-
contentBody = data;
|
|
1991
|
+
contentBody = await binaryToString(newResponse.body);
|
|
1991
1992
|
const responseContentType = (_b = (_a = newResponse.headers['content-type']) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : '';
|
|
1992
1993
|
if (responseContentType.includes('application/json')) {
|
|
1993
|
-
newResponse.body = (0, n8n_workflow_1.jsonParse)(
|
|
1994
|
+
newResponse.body = (0, n8n_workflow_1.jsonParse)(contentBody, { fallbackValue: {} });
|
|
1994
1995
|
}
|
|
1995
1996
|
else {
|
|
1996
|
-
newResponse.body =
|
|
1997
|
+
newResponse.body = contentBody;
|
|
1997
1998
|
}
|
|
1998
1999
|
tempResponseData.__bodyResolved = true;
|
|
1999
2000
|
tempResponseData.body = newResponse.body;
|
|
@@ -2051,9 +2052,7 @@ const getRequestHelperFunctions = (workflow, node, additionalData) => {
|
|
|
2051
2052
|
if (tempResponseData.statusCode < 200 || tempResponseData.statusCode >= 300) {
|
|
2052
2053
|
let data = tempResponseData.body;
|
|
2053
2054
|
if (data instanceof stream_1.Readable && paginationOptions.binaryResult !== true) {
|
|
2054
|
-
data = await
|
|
2055
|
-
.binaryToBuffer(tempResponseData.body)
|
|
2056
|
-
.then((body) => body.toString());
|
|
2055
|
+
data = await binaryToString(data);
|
|
2057
2056
|
}
|
|
2058
2057
|
else if (typeof data === 'object') {
|
|
2059
2058
|
data = JSON.stringify(data);
|
|
@@ -2088,6 +2087,15 @@ const getRequestHelperFunctions = (workflow, node, additionalData) => {
|
|
|
2088
2087
|
},
|
|
2089
2088
|
};
|
|
2090
2089
|
};
|
|
2090
|
+
const getSSHTunnelFunctions = () => ({
|
|
2091
|
+
getSSHClient: async (credentials) => await typedi_1.default.get(SSHClientsManager_1.SSHClientsManager).getClient(credentials),
|
|
2092
|
+
});
|
|
2093
|
+
const getSchedulingFunctions = (workflow) => {
|
|
2094
|
+
const scheduledTaskManager = typedi_1.default.get(ScheduledTaskManager_1.ScheduledTaskManager);
|
|
2095
|
+
return {
|
|
2096
|
+
registerCron: (cronExpression, onTick) => scheduledTaskManager.registerCron(workflow, cronExpression, onTick),
|
|
2097
|
+
};
|
|
2098
|
+
};
|
|
2091
2099
|
const getAllowedPaths = () => {
|
|
2092
2100
|
const restrictFileAccessTo = process.env[Constants_1.RESTRICT_FILE_ACCESS_TO];
|
|
2093
2101
|
if (!restrictFileAccessTo) {
|
|
@@ -2179,7 +2187,8 @@ const getBinaryHelperFunctions = ({ executionId }, workflowId) => ({
|
|
|
2179
2187
|
getBinaryPath,
|
|
2180
2188
|
getBinaryStream,
|
|
2181
2189
|
getBinaryMetadata,
|
|
2182
|
-
binaryToBuffer:
|
|
2190
|
+
binaryToBuffer: utils_1.binaryToBuffer,
|
|
2191
|
+
binaryToString,
|
|
2183
2192
|
prepareBinaryData: async (binaryData, filePath, mimeType) => await prepareBinaryData(binaryData, executionId, workflowId, filePath, mimeType),
|
|
2184
2193
|
setBinaryDataBuffer: async (data, binaryData) => await setBinaryDataBuffer(data, binaryData, workflowId, executionId),
|
|
2185
2194
|
copyBinaryFile: async () => {
|
|
@@ -2224,6 +2233,7 @@ function getExecutePollFunctions(workflow, node, additionalData, mode, activatio
|
|
|
2224
2233
|
createDeferredPromise: n8n_workflow_1.createDeferredPromise,
|
|
2225
2234
|
...getRequestHelperFunctions(workflow, node, additionalData),
|
|
2226
2235
|
...getBinaryHelperFunctions(additionalData, workflow.id),
|
|
2236
|
+
...getSchedulingFunctions(workflow),
|
|
2227
2237
|
returnJsonArray,
|
|
2228
2238
|
},
|
|
2229
2239
|
};
|
|
@@ -2251,8 +2261,10 @@ function getExecuteTriggerFunctions(workflow, node, additionalData, mode, activa
|
|
|
2251
2261
|
},
|
|
2252
2262
|
helpers: {
|
|
2253
2263
|
createDeferredPromise: n8n_workflow_1.createDeferredPromise,
|
|
2264
|
+
...getSSHTunnelFunctions(),
|
|
2254
2265
|
...getRequestHelperFunctions(workflow, node, additionalData),
|
|
2255
2266
|
...getBinaryHelperFunctions(additionalData, workflow.id),
|
|
2267
|
+
...getSchedulingFunctions(workflow),
|
|
2256
2268
|
returnJsonArray,
|
|
2257
2269
|
},
|
|
2258
2270
|
};
|
|
@@ -2345,7 +2357,6 @@ function getExecuteFunctions(workflow, runExecutionData, runIndex, connectionInp
|
|
|
2345
2357
|
const dataProxy = new n8n_workflow_1.WorkflowDataProxy(workflow, runExecutionData, runIndex, itemIndex, node.name, connectionInputData, {}, mode, getAdditionalKeys(additionalData, mode, runExecutionData), executeData);
|
|
2346
2358
|
return dataProxy.getDataProxy();
|
|
2347
2359
|
},
|
|
2348
|
-
binaryToBuffer: async (body) => await typedi_1.default.get(BinaryData_service_1.BinaryDataService).toBuffer(body),
|
|
2349
2360
|
async putExecutionToWait(waitTill) {
|
|
2350
2361
|
runExecutionData.waitTill = waitTill;
|
|
2351
2362
|
if (additionalData.setExecutionStatus) {
|
|
@@ -2401,6 +2412,7 @@ function getExecuteFunctions(workflow, runExecutionData, runIndex, connectionInp
|
|
|
2401
2412
|
createDeferredPromise: n8n_workflow_1.createDeferredPromise,
|
|
2402
2413
|
copyInputItems,
|
|
2403
2414
|
...getRequestHelperFunctions(workflow, node, additionalData),
|
|
2415
|
+
...getSSHTunnelFunctions(),
|
|
2404
2416
|
...getFileSystemHelperFunctions(node),
|
|
2405
2417
|
...getBinaryHelperFunctions(additionalData, workflow.id),
|
|
2406
2418
|
assertBinaryData: (itemIndex, propertyName) => assertBinaryData(inputData, node, itemIndex, propertyName, 0),
|
|
@@ -2501,6 +2513,7 @@ function getExecuteSingleFunctions(workflow, runExecutionData, runIndex, connect
|
|
|
2501
2513
|
function getCredentialTestFunctions() {
|
|
2502
2514
|
return {
|
|
2503
2515
|
helpers: {
|
|
2516
|
+
...getSSHTunnelFunctions(),
|
|
2504
2517
|
request: async (uriOrObject, options) => {
|
|
2505
2518
|
return await proxyRequestToAxios(undefined, undefined, undefined, uriOrObject, options);
|
|
2506
2519
|
},
|
|
@@ -2538,7 +2551,10 @@ function getLoadOptionsFunctions(workflow, node, path, additionalData) {
|
|
|
2538
2551
|
const connectionInputData = [];
|
|
2539
2552
|
return getNodeParameter(workflow, runExecutionData, runIndex, connectionInputData, node, parameterName, itemIndex, mode, getAdditionalKeys(additionalData, mode, runExecutionData), undefined, fallbackValue, options);
|
|
2540
2553
|
},
|
|
2541
|
-
helpers:
|
|
2554
|
+
helpers: {
|
|
2555
|
+
...getSSHTunnelFunctions(),
|
|
2556
|
+
...getRequestHelperFunctions(workflow, node, additionalData),
|
|
2557
|
+
},
|
|
2542
2558
|
};
|
|
2543
2559
|
})(workflow, node, path);
|
|
2544
2560
|
}
|