n8n-core 1.99.0 → 1.100.1
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/build.tsbuildinfo +1 -1
- package/dist/execution-engine/execution-lifecycle-hooks.d.ts +2 -1
- package/dist/execution-engine/execution-lifecycle-hooks.js +1 -0
- package/dist/execution-engine/execution-lifecycle-hooks.js.map +1 -1
- package/dist/execution-engine/node-execution-context/execute-context.d.ts +2 -1
- package/dist/execution-engine/node-execution-context/execute-context.js +14 -0
- package/dist/execution-engine/node-execution-context/execute-context.js.map +1 -1
- package/dist/execution-engine/node-execution-context/utils/file-system-helper-functions.js +27 -31
- package/dist/execution-engine/node-execution-context/utils/file-system-helper-functions.js.map +1 -1
- package/dist/execution-engine/node-execution-context/utils/get-input-connection-data.js +55 -20
- package/dist/execution-engine/node-execution-context/utils/get-input-connection-data.js.map +1 -1
- package/dist/execution-engine/workflow-execute.js +19 -0
- package/dist/execution-engine/workflow-execute.js.map +1 -1
- package/dist/nodes-loader/directory-loader.js +3 -0
- package/dist/nodes-loader/directory-loader.js.map +1 -1
- package/dist/utils/is-json-compatible.d.ts +7 -0
- package/dist/utils/is-json-compatible.js +85 -0
- package/dist/utils/is-json-compatible.js.map +1 -0
- package/package.json +10 -10
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import type { IDataObject, IExecuteResponsePromiseData, INode, IRun, IRunExecutionData, ITaskData, ITaskStartedData, IWorkflowBase, Workflow, WorkflowExecuteMode } from 'n8n-workflow';
|
|
1
|
+
import type { IDataObject, IExecuteResponsePromiseData, INode, IRun, IRunExecutionData, ITaskData, ITaskStartedData, IWorkflowBase, StructuredChunk, Workflow, WorkflowExecuteMode } from 'n8n-workflow';
|
|
2
2
|
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
6
|
workflowExecuteAfter: Array<(this: ExecutionLifecycleHooks, data: IRun, newStaticData: IDataObject) => Promise<void> | void>;
|
|
7
7
|
sendResponse: Array<(this: ExecutionLifecycleHooks, response: IExecuteResponsePromiseData) => Promise<void> | void>;
|
|
8
|
+
sendChunk: Array<(this: ExecutionLifecycleHooks, chunk: StructuredChunk) => Promise<void> | void>;
|
|
8
9
|
nodeFetchedData: Array<(this: ExecutionLifecycleHooks, workflowId: string, node: INode) => Promise<void> | void>;
|
|
9
10
|
};
|
|
10
11
|
export type ExecutionLifecycleHookName = keyof ExecutionLifecycleHookHandlers;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution-lifecycle-hooks.js","sourceRoot":"","sources":["../../src/execution-engine/execution-lifecycle-hooks.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"execution-lifecycle-hooks.js","sourceRoot":"","sources":["../../src/execution-engine/execution-lifecycle-hooks.ts"],"names":[],"mappings":";;;AAkFA,MAAa,uBAAuB;IAWnC,YACU,IAAyB,EACzB,WAAmB,EACnB,YAA2B;QAF3B,SAAI,GAAJ,IAAI,CAAqB;QACzB,gBAAW,GAAX,WAAW,CAAQ;QACnB,iBAAY,GAAZ,YAAY,CAAe;QAb5B,aAAQ,GAAmC;YACnD,gBAAgB,EAAE,EAAE;YACpB,iBAAiB,EAAE,EAAE;YACrB,eAAe,EAAE,EAAE;YACnB,YAAY,EAAE,EAAE;YAChB,oBAAoB,EAAE,EAAE;YACxB,qBAAqB,EAAE,EAAE;YACzB,SAAS,EAAE,EAAE;SACb,CAAC;IAMC,CAAC;IAEJ,UAAU,CACT,QAAc,EACd,GAAG,QAA6D;QAGhE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,OAAO,CAKX,QAAc,EAAE,UAAkB;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACtC,KAAK,MAAM,YAAY,IAAI,KAAK,EAAE,CAAC;YAClC,MAAM,iBAAiB,GAAG,YAGR,CAAC;YACnB,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACjD,CAAC;IACF,CAAC;CACD;AAxCD,0DAwCC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AINodeConnectionType, CallbackManager, CloseFunction, IExecuteData, IExecuteFunctions, IExecuteResponsePromiseData, INode, INodeExecutionData, IRunExecutionData, ITaskDataConnections, IWorkflowExecuteAdditionalData, NodeExecutionHint, Result, Workflow, WorkflowExecuteMode } from 'n8n-workflow';
|
|
1
|
+
import type { AINodeConnectionType, CallbackManager, ChunkType, CloseFunction, IDataObject, IExecuteData, IExecuteFunctions, IExecuteResponsePromiseData, INode, INodeExecutionData, IRunExecutionData, ITaskDataConnections, IWorkflowExecuteAdditionalData, NodeExecutionHint, Result, Workflow, WorkflowExecuteMode } from 'n8n-workflow';
|
|
2
2
|
import { BaseExecuteContext } from './base-execute-context';
|
|
3
3
|
export declare class ExecuteContext extends BaseExecuteContext implements IExecuteFunctions {
|
|
4
4
|
private readonly closeFunctions;
|
|
@@ -7,6 +7,7 @@ export declare class ExecuteContext extends BaseExecuteContext implements IExecu
|
|
|
7
7
|
readonly getNodeParameter: IExecuteFunctions['getNodeParameter'];
|
|
8
8
|
readonly hints: NodeExecutionHint[];
|
|
9
9
|
constructor(workflow: Workflow, node: INode, additionalData: IWorkflowExecuteAdditionalData, mode: WorkflowExecuteMode, runExecutionData: IRunExecutionData, runIndex: number, connectionInputData: INodeExecutionData[], inputData: ITaskDataConnections, executeData: IExecuteData, closeFunctions: CloseFunction[], abortSignal?: AbortSignal);
|
|
10
|
+
sendChunk(type: ChunkType, content?: IDataObject | string): Promise<void>;
|
|
10
11
|
startJob<T = unknown, E = unknown>(jobType: string, settings: unknown, itemIndex: number): Promise<Result<T, E>>;
|
|
11
12
|
getInputConnectionData(connectionType: AINodeConnectionType, itemIndex: number): Promise<unknown>;
|
|
12
13
|
getInputData(inputIndex?: number, connectionType?: "main"): INodeExecutionData[];
|
|
@@ -38,6 +38,20 @@ class ExecuteContext extends base_execute_context_1.BaseExecuteContext {
|
|
|
38
38
|
};
|
|
39
39
|
this.getNodeParameter = ((parameterName, itemIndex, fallbackValue, options) => this._getNodeParameter(parameterName, itemIndex, fallbackValue, options));
|
|
40
40
|
}
|
|
41
|
+
async sendChunk(type, content) {
|
|
42
|
+
const node = this.getNode();
|
|
43
|
+
const metadata = {
|
|
44
|
+
nodeId: node.id,
|
|
45
|
+
nodeName: node.name,
|
|
46
|
+
timestamp: Date.now(),
|
|
47
|
+
};
|
|
48
|
+
const message = {
|
|
49
|
+
type,
|
|
50
|
+
content: content ? JSON.stringify(content) : undefined,
|
|
51
|
+
metadata,
|
|
52
|
+
};
|
|
53
|
+
await this.additionalData.hooks?.runHook('sendChunk', [message]);
|
|
54
|
+
}
|
|
41
55
|
async startJob(jobType, settings, itemIndex) {
|
|
42
56
|
return await this.additionalData.startRunnerTask(this.additionalData, jobType, settings, this, this.inputData, this.node, this.workflow, this.runExecutionData, this.runIndex, itemIndex, this.node.name, this.connectionInputData, {}, this.mode, (0, n8n_workflow_1.createEnvProviderState)(), this.executeData);
|
|
43
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-context.js","sourceRoot":"","sources":["../../../src/execution-engine/node-execution-context/execute-context.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"execute-context.js","sourceRoot":"","sources":["../../../src/execution-engine/node-execution-context/execute-context.ts"],"names":[],"mappings":";;;AAqBA,+CAMsB;AAEtB,iEAA4D;AAC5D,6EAMyC;AACzC,uFAAkF;AAClF,+DAA0D;AAC1D,2FAAyF;AACzF,uFAAoF;AACpF,iFAA2E;AAC3E,6DAAyD;AACzD,+EAA6E;AAC7E,iEAA4D;AAC5D,qFAA4E;AAE5E,MAAa,cAAe,SAAQ,yCAAkB;IASrD,YACC,QAAkB,EAClB,IAAW,EACX,cAA8C,EAC9C,IAAyB,EACzB,gBAAmC,EACnC,QAAgB,EAChB,mBAAyC,EACzC,SAA+B,EAC/B,WAAyB,EACR,cAA+B,EAChD,WAAyB;QAEzB,KAAK,CACJ,QAAQ,EACR,IAAI,EACJ,cAAc,EACd,IAAI,EACJ,gBAAgB,EAChB,QAAQ,EACR,mBAAmB,EACnB,SAAS,EACT,WAAW,EACX,WAAW,CACX,CAAC;QAde,mBAAc,GAAd,cAAc,CAAiB;QAZxC,UAAK,GAAwB,EAAE,CAAC;QA4BxC,IAAI,CAAC,OAAO,GAAG;YACd,qBAAqB,EAArB,oCAAqB;YACrB,eAAe,EAAf,mCAAe;YACf,cAAc,EAAd,iCAAc;YACd,cAAc,EAAd,gCAAc;YACd,0BAA0B,EAA1B,yDAA0B;YAC1B,GAAG,IAAA,oDAAyB,EAC3B,QAAQ,EACR,IAAI,EACJ,cAAc,EACd,gBAAgB,EAChB,mBAAmB,CACnB;YACD,GAAG,IAAA,kDAAwB,EAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,CAAC;YACxD,GAAG,IAAA,mDAAqB,GAAE;YAC1B,GAAG,IAAA,2DAA4B,EAAC,IAAI,CAAC;YACrC,GAAG,IAAA,gEAA+B,EAAC,QAAQ,EAAE,IAAI,CAAC;YAElD,gBAAgB,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,EAAE,CAC7C,IAAA,0CAAgB,EAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;YAC9D,mBAAmB,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,CACtD,MAAM,IAAA,6CAAmB,EAAC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;YACjE,oBAAoB,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,IAAA,8CAAoB,EAAC,MAAM,CAAC;SACtE,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG;YAClB,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CACtD,MAAM,IAAA,wCAAc,EACnB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAChB,IAAI,CAAC,cAAc,CAAC,WAAY,EAChC,QAAQ,EACR,QAAQ,EACR,QAAQ,CACR;SACF,CAAC;QAEF,IAAI,CAAC,gBAAgB,GAAG,CAAC,CACxB,aAAqB,EACrB,SAAiB,EAEjB,aAAmB,EACnB,OAAkC,EACjC,EAAE,CACH,IAAI,CAAC,iBAAiB,CACrB,aAAa,EACb,SAAS,EACT,aAAa,EACb,OAAO,CACP,CAA0C,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAe,EAAE,OAA8B;QAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG;YAChB,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACrB,CAAC;QAEF,MAAM,OAAO,GAAoB;YAChC,IAAI;YACJ,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;YACtD,QAAQ;SACR,CAAC;QAEF,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,QAAQ,CACb,OAAe,EACf,QAAiB,EACjB,SAAiB;QAEjB,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAC/C,IAAI,CAAC,cAAc,EACnB,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,QAAQ,EACb,SAAS,EACT,IAAI,CAAC,IAAI,CAAC,IAAI,EACd,IAAI,CAAC,mBAAmB,EACxB,EAAE,EACF,IAAI,CAAC,IAAI,EACT,IAAA,qCAAsB,GAAE,EACxB,IAAI,CAAC,WAAW,CAChB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,sBAAsB,CAC3B,cAAoC,EACpC,SAAiB;QAEjB,OAAO,MAAM,kDAAsB,CAAC,IAAI,CACvC,IAAI,EACJ,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,cAAc,EACnB,cAAc,EACd,SAAS,EACT,IAAI,CAAC,WAAW,CAChB,CAAC;IACH,CAAC;IAED,YAAY,CAAC,UAAU,GAAG,CAAC,EAAE,cAAc,GAAG,kCAAmB,CAAC,IAAI;QACrE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC;YAEpD,OAAO,EAAE,CAAC;QACX,CAAC;QACD,OAAO,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC;IAC9D,CAAC;IAED,aAAa,CAAC,GAAG,IAAe;QAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACtC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAA,wBAAS,EAAC,GAAG,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CACtE,CAAC;YACF,IAAI,CAAC,eAAe,CAAC,GAAG,aAAa,CAAC,CAAC;YACvC,OAAO;QACR,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,MAAM,EAAE,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;QACzF,CAAC;IACF,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAqC;QACvD,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtE,CAAC;IAGD,YAAY;QACX,MAAM,IAAI,+BAAgB,CAAC,wDAAwD,CAAC,CAAC;IACtF,CAAC;IAGD,aAAa;QACZ,MAAM,IAAI,+BAAgB,CAAC,yDAAyD,CAAC,CAAC;IACvF,CAAC;IAED,wBAAwB;QACvB,OAAO,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC;IAClD,CAAC;IAED,iBAAiB,CAAC,GAAG,KAA0B;QAC9C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;IAC3B,CAAC;CACD;AAhMD,wCAgMC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getFileSystemHelperFunctions = void 0;
|
|
4
4
|
exports.isFilePathBlocked = isFilePathBlocked;
|
|
5
|
+
const backend_common_1 = require("@n8n/backend-common");
|
|
5
6
|
const di_1 = require("@n8n/di");
|
|
6
7
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
7
8
|
const node_fs_1 = require("node:fs");
|
|
@@ -24,38 +25,12 @@ function isFilePathBlocked(filePath) {
|
|
|
24
25
|
const allowedPaths = getAllowedPaths();
|
|
25
26
|
const resolvedFilePath = (0, node_path_1.resolve)(filePath);
|
|
26
27
|
const blockFileAccessToN8nFiles = process.env[constants_1.BLOCK_FILE_ACCESS_TO_N8N_FILES] !== 'false';
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
if (resolvedFilePath.startsWith(path)) {
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
28
|
+
const restrictedPaths = blockFileAccessToN8nFiles ? getN8nRestrictedPaths() : [];
|
|
29
|
+
if (restrictedPaths.some((restrictedPath) => (0, backend_common_1.isContainedWithin)(restrictedPath, resolvedFilePath))) {
|
|
33
30
|
return true;
|
|
34
31
|
}
|
|
35
|
-
if (
|
|
36
|
-
|
|
37
|
-
const restrictedPaths = [n8nFolder, staticCacheDir];
|
|
38
|
-
if (process.env[constants_1.CONFIG_FILES]) {
|
|
39
|
-
restrictedPaths.push(...process.env[constants_1.CONFIG_FILES].split(','));
|
|
40
|
-
}
|
|
41
|
-
if (process.env[constants_1.CUSTOM_EXTENSION_ENV]) {
|
|
42
|
-
const customExtensionFolders = process.env[constants_1.CUSTOM_EXTENSION_ENV].split(';');
|
|
43
|
-
restrictedPaths.push(...customExtensionFolders);
|
|
44
|
-
}
|
|
45
|
-
if (process.env[constants_1.BINARY_DATA_STORAGE_PATH]) {
|
|
46
|
-
restrictedPaths.push(process.env[constants_1.BINARY_DATA_STORAGE_PATH]);
|
|
47
|
-
}
|
|
48
|
-
if (process.env[constants_1.UM_EMAIL_TEMPLATES_INVITE]) {
|
|
49
|
-
restrictedPaths.push(process.env[constants_1.UM_EMAIL_TEMPLATES_INVITE]);
|
|
50
|
-
}
|
|
51
|
-
if (process.env[constants_1.UM_EMAIL_TEMPLATES_PWRESET]) {
|
|
52
|
-
restrictedPaths.push(process.env[constants_1.UM_EMAIL_TEMPLATES_PWRESET]);
|
|
53
|
-
}
|
|
54
|
-
for (const path of restrictedPaths) {
|
|
55
|
-
if (resolvedFilePath.startsWith(path)) {
|
|
56
|
-
return true;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
32
|
+
if (allowedPaths.length) {
|
|
33
|
+
return !allowedPaths.some((allowedPath) => (0, backend_common_1.isContainedWithin)(allowedPath, resolvedFilePath));
|
|
59
34
|
}
|
|
60
35
|
return false;
|
|
61
36
|
}
|
|
@@ -83,7 +58,7 @@ const getFileSystemHelperFunctions = (node) => ({
|
|
|
83
58
|
return (0, node_fs_1.createReadStream)(filePath);
|
|
84
59
|
},
|
|
85
60
|
getStoragePath() {
|
|
86
|
-
return (0,
|
|
61
|
+
return (0, backend_common_1.safeJoinPath)(di_1.Container.get(instance_settings_1.InstanceSettings).n8nFolder, `storage/${node.type}`);
|
|
87
62
|
},
|
|
88
63
|
async writeContentToFile(filePath, content, flag) {
|
|
89
64
|
if (isFilePathBlocked(filePath)) {
|
|
@@ -95,4 +70,25 @@ const getFileSystemHelperFunctions = (node) => ({
|
|
|
95
70
|
},
|
|
96
71
|
});
|
|
97
72
|
exports.getFileSystemHelperFunctions = getFileSystemHelperFunctions;
|
|
73
|
+
function getN8nRestrictedPaths() {
|
|
74
|
+
const { n8nFolder, staticCacheDir } = di_1.Container.get(instance_settings_1.InstanceSettings);
|
|
75
|
+
const restrictedPaths = [n8nFolder, staticCacheDir];
|
|
76
|
+
if (process.env[constants_1.CONFIG_FILES]) {
|
|
77
|
+
restrictedPaths.push(...process.env[constants_1.CONFIG_FILES].split(','));
|
|
78
|
+
}
|
|
79
|
+
if (process.env[constants_1.CUSTOM_EXTENSION_ENV]) {
|
|
80
|
+
const customExtensionFolders = process.env[constants_1.CUSTOM_EXTENSION_ENV].split(';');
|
|
81
|
+
restrictedPaths.push(...customExtensionFolders);
|
|
82
|
+
}
|
|
83
|
+
if (process.env[constants_1.BINARY_DATA_STORAGE_PATH]) {
|
|
84
|
+
restrictedPaths.push(process.env[constants_1.BINARY_DATA_STORAGE_PATH]);
|
|
85
|
+
}
|
|
86
|
+
if (process.env[constants_1.UM_EMAIL_TEMPLATES_INVITE]) {
|
|
87
|
+
restrictedPaths.push(process.env[constants_1.UM_EMAIL_TEMPLATES_INVITE]);
|
|
88
|
+
}
|
|
89
|
+
if (process.env[constants_1.UM_EMAIL_TEMPLATES_PWRESET]) {
|
|
90
|
+
restrictedPaths.push(process.env[constants_1.UM_EMAIL_TEMPLATES_PWRESET]);
|
|
91
|
+
}
|
|
92
|
+
return restrictedPaths;
|
|
93
|
+
}
|
|
98
94
|
//# sourceMappingURL=file-system-helper-functions.js.map
|
package/dist/execution-engine/node-execution-context/utils/file-system-helper-functions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-system-helper-functions.js","sourceRoot":"","sources":["../../../../src/execution-engine/node-execution-context/utils/file-system-helper-functions.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"file-system-helper-functions.js","sourceRoot":"","sources":["../../../../src/execution-engine/node-execution-context/utils/file-system-helper-functions.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,30 +11,65 @@ function getNextRunIndex(runExecutionData, nodeName) {
|
|
|
11
11
|
function makeHandleToolInvocation(contextFactory, node, nodeType, runExecutionData) {
|
|
12
12
|
let runIndex = getNextRunIndex(runExecutionData, node.name);
|
|
13
13
|
return async (toolArgs) => {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
14
|
+
let maxTries = 1;
|
|
15
|
+
if (node.retryOnFail === true) {
|
|
16
|
+
maxTries = Math.min(5, Math.max(2, node.maxTries ?? 3));
|
|
17
|
+
}
|
|
18
|
+
let waitBetweenTries = 0;
|
|
19
|
+
if (node.retryOnFail === true) {
|
|
20
|
+
waitBetweenTries = Math.min(5000, Math.max(0, node.waitBetweenTries ?? 1000));
|
|
21
|
+
}
|
|
22
|
+
let lastError;
|
|
23
|
+
for (let tryIndex = 0; tryIndex < maxTries; tryIndex++) {
|
|
24
|
+
const localRunIndex = runIndex++;
|
|
25
|
+
const context = contextFactory(localRunIndex);
|
|
26
|
+
const abortSignal = context.getExecutionCancelSignal?.();
|
|
27
|
+
if (abortSignal?.aborted) {
|
|
28
|
+
return 'Error during node execution: Execution was cancelled';
|
|
29
|
+
}
|
|
30
|
+
if (tryIndex !== 0) {
|
|
31
|
+
lastError = undefined;
|
|
32
|
+
if (waitBetweenTries !== 0) {
|
|
33
|
+
try {
|
|
34
|
+
await (0, n8n_workflow_1.sleepWithAbort)(waitBetweenTries, abortSignal);
|
|
35
|
+
}
|
|
36
|
+
catch (abortError) {
|
|
37
|
+
return 'Error during node execution: Execution was cancelled';
|
|
38
|
+
}
|
|
25
39
|
}
|
|
26
|
-
|
|
27
|
-
|
|
40
|
+
}
|
|
41
|
+
context.addInputData(n8n_workflow_1.NodeConnectionTypes.AiTool, [[{ json: toolArgs }]]);
|
|
42
|
+
try {
|
|
43
|
+
const result = await nodeType.execute?.call(context);
|
|
44
|
+
const mappedResults = result?.[0]?.flatMap((item) => item.json);
|
|
45
|
+
let response = mappedResults;
|
|
46
|
+
if (result?.some((x) => x.some((y) => y.binary))) {
|
|
47
|
+
if (!mappedResults || mappedResults.flatMap((x) => Object.keys(x ?? {})).length === 0) {
|
|
48
|
+
response =
|
|
49
|
+
'Error: The Tool attempted to return binary data, which is not supported in Agents';
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
context.logger.warn(`Response from Tool '${node.name}' included binary data, which is not supported in Agents. The binary data was omitted from the response.`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
context.addOutputData(n8n_workflow_1.NodeConnectionTypes.AiTool, localRunIndex, [
|
|
56
|
+
[{ json: { response } }],
|
|
57
|
+
]);
|
|
58
|
+
return JSON.stringify(response);
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
if (abortSignal?.aborted) {
|
|
62
|
+
return 'Error during node execution: Execution was cancelled';
|
|
63
|
+
}
|
|
64
|
+
const nodeError = new n8n_workflow_1.NodeOperationError(node, error);
|
|
65
|
+
context.addOutputData(n8n_workflow_1.NodeConnectionTypes.AiTool, localRunIndex, nodeError);
|
|
66
|
+
lastError = nodeError;
|
|
67
|
+
if (tryIndex === maxTries - 1) {
|
|
68
|
+
return 'Error during node execution: ' + (nodeError.description ?? nodeError.message);
|
|
28
69
|
}
|
|
29
70
|
}
|
|
30
|
-
context.addOutputData(n8n_workflow_1.NodeConnectionTypes.AiTool, localRunIndex, [[{ json: { response } }]]);
|
|
31
|
-
return JSON.stringify(response);
|
|
32
|
-
}
|
|
33
|
-
catch (error) {
|
|
34
|
-
const nodeError = new n8n_workflow_1.NodeOperationError(node, error);
|
|
35
|
-
context.addOutputData(n8n_workflow_1.NodeConnectionTypes.AiTool, localRunIndex, nodeError);
|
|
36
|
-
return 'Error during node execution: ' + (nodeError.description ?? nodeError.message);
|
|
37
71
|
}
|
|
72
|
+
return 'Error during node execution : ' + (lastError?.description ?? lastError?.message);
|
|
38
73
|
};
|
|
39
74
|
}
|
|
40
75
|
function validateInputConfiguration(context, connectionType, nodeInputs, connectedNodes) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-input-connection-data.js","sourceRoot":"","sources":["../../../../src/execution-engine/node-execution-context/utils/get-input-connection-data.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"get-input-connection-data.js","sourceRoot":"","sources":["../../../../src/execution-engine/node-execution-context/utils/get-input-connection-data.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,6 +47,7 @@ const p_cancelable_1 = __importDefault(require("p-cancelable"));
|
|
|
47
47
|
const error_reporter_1 = require("../errors/error-reporter");
|
|
48
48
|
const workflow_has_issues_error_1 = require("../errors/workflow-has-issues.error");
|
|
49
49
|
const NodeExecuteFunctions = __importStar(require("../node-execute-functions"));
|
|
50
|
+
const is_json_compatible_1 = require("../utils/is-json-compatible");
|
|
50
51
|
const node_execution_context_1 = require("./node-execution-context");
|
|
51
52
|
const partial_execution_utils_1 = require("./partial-execution-utils");
|
|
52
53
|
const routing_node_1 = require("./routing-node");
|
|
@@ -698,6 +699,21 @@ class WorkflowExecute {
|
|
|
698
699
|
? await nodeType.execute(context)
|
|
699
700
|
: await nodeType.execute.call(context);
|
|
700
701
|
}
|
|
702
|
+
const jsonCompatibleResult = (0, is_json_compatible_1.isJsonCompatible)(data);
|
|
703
|
+
if (!jsonCompatibleResult.isValid) {
|
|
704
|
+
di_1.Container.get(error_reporter_1.ErrorReporter).error(new n8n_workflow_1.UnexpectedError('node execution output incorrect data'), {
|
|
705
|
+
extra: {
|
|
706
|
+
nodeName: node.name,
|
|
707
|
+
nodeType: node.type,
|
|
708
|
+
nodeVersion: node.typeVersion,
|
|
709
|
+
workflowId: workflow.id,
|
|
710
|
+
workflowName: workflow.name ?? 'Unnamed workflow',
|
|
711
|
+
executionId: this.additionalData.executionId ?? 'unsaved-execution',
|
|
712
|
+
errorPath: jsonCompatibleResult.errorPath,
|
|
713
|
+
errorMessage: jsonCompatibleResult.errorMessage,
|
|
714
|
+
},
|
|
715
|
+
});
|
|
716
|
+
}
|
|
701
717
|
const closeFunctionsResults = await Promise.allSettled(closeFunctions.map(async (fn) => await fn()));
|
|
702
718
|
const closingErrors = closeFunctionsResults
|
|
703
719
|
.filter((result) => result.status === 'rejected')
|
|
@@ -1023,6 +1039,9 @@ class WorkflowExecute {
|
|
|
1023
1039
|
if (executionError !== undefined) {
|
|
1024
1040
|
taskData.error = executionError;
|
|
1025
1041
|
taskData.executionStatus = 'error';
|
|
1042
|
+
await hooks?.runHook('sendChunk', [
|
|
1043
|
+
{ type: 'error', content: executionError.description },
|
|
1044
|
+
]);
|
|
1026
1045
|
if (executionData.node.continueOnFail === true ||
|
|
1027
1046
|
['continueRegularOutput', 'continueErrorOutput'].includes(executionData.node.onError || '')) {
|
|
1028
1047
|
if (executionData.data.hasOwnProperty('main') && executionData.data.main.length > 0) {
|