n8n-core 2.21.1 → 2.22.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/build.tsbuildinfo +1 -1
- package/dist/errors/error-reporter.d.ts +2 -1
- package/dist/errors/error-reporter.js +4 -3
- package/dist/errors/error-reporter.js.map +1 -1
- package/dist/execution-engine/execution-context-hook-registry.service.d.ts +2 -0
- package/dist/execution-engine/execution-context-hook-registry.service.js +13 -4
- package/dist/execution-engine/execution-context-hook-registry.service.js.map +1 -1
- package/dist/execution-engine/execution-context.service.js +35 -17
- package/dist/execution-engine/execution-context.service.js.map +1 -1
- package/dist/execution-engine/node-execution-context/base-execute-context.d.ts +1 -0
- package/dist/execution-engine/node-execution-context/node-execution-context.d.ts +1 -0
- package/dist/execution-engine/workflow-execute.d.ts +1 -0
- package/dist/execution-engine/workflow-execute.js +48 -5
- package/dist/execution-engine/workflow-execute.js.map +1 -1
- package/package.json +14 -14
|
@@ -13,6 +13,7 @@ type ErrorReporterInitOptions = {
|
|
|
13
13
|
releaseDate?: Date;
|
|
14
14
|
withEventLoopBlockDetection: boolean;
|
|
15
15
|
eventLoopBlockThreshold?: number;
|
|
16
|
+
eventLoopBlockMaxEventsPerHour?: number;
|
|
16
17
|
tracesSampleRate: number;
|
|
17
18
|
profilesSampleRate: number;
|
|
18
19
|
beforeSendFilter?: (event: ErrorEvent, hint: EventHint) => boolean;
|
|
@@ -29,7 +30,7 @@ export declare class ErrorReporter {
|
|
|
29
30
|
constructor(logger: Logger, tracing: Tracing);
|
|
30
31
|
private defaultReport;
|
|
31
32
|
shutdown(timeoutInMs?: number): Promise<void>;
|
|
32
|
-
init({ beforeSendFilter, dsn, serverType, release, environment, serverName, releaseDate, withEventLoopBlockDetection, eventLoopBlockThreshold, profilesSampleRate, tracesSampleRate, eligibleIntegrations, healthEndpoint, }: ErrorReporterInitOptions): Promise<void>;
|
|
33
|
+
init({ beforeSendFilter, dsn, serverType, release, environment, serverName, releaseDate, withEventLoopBlockDetection, eventLoopBlockThreshold, eventLoopBlockMaxEventsPerHour, profilesSampleRate, tracesSampleRate, eligibleIntegrations, healthEndpoint, }: ErrorReporterInitOptions): Promise<void>;
|
|
33
34
|
beforeSend(event: ErrorEvent, hint: EventHint): Promise<ErrorEvent | null>;
|
|
34
35
|
error(e: unknown, options?: ReportingOptions): void;
|
|
35
36
|
warn(warning: Error | string, options?: ReportingOptions): void;
|
|
@@ -89,7 +89,7 @@ let ErrorReporter = class ErrorReporter {
|
|
|
89
89
|
const { close } = await Promise.resolve().then(() => __importStar(require('@sentry/node')));
|
|
90
90
|
await close(timeoutInMs);
|
|
91
91
|
}
|
|
92
|
-
async init({ beforeSendFilter, dsn, serverType, release, environment, serverName, releaseDate, withEventLoopBlockDetection, eventLoopBlockThreshold, profilesSampleRate, tracesSampleRate, eligibleIntegrations = {}, healthEndpoint = '/healthz', }) {
|
|
92
|
+
async init({ beforeSendFilter, dsn, serverType, release, environment, serverName, releaseDate, withEventLoopBlockDetection, eventLoopBlockThreshold, eventLoopBlockMaxEventsPerHour, profilesSampleRate, tracesSampleRate, eligibleIntegrations = {}, healthEndpoint = '/healthz', }) {
|
|
93
93
|
if (backend_common_1.inTest)
|
|
94
94
|
return;
|
|
95
95
|
process.on('uncaughtException', (error) => {
|
|
@@ -142,7 +142,7 @@ let ErrorReporter = class ErrorReporter {
|
|
|
142
142
|
await this.getEventLoopBlockIntegration({
|
|
143
143
|
server_name: serverName,
|
|
144
144
|
server_type: serverType,
|
|
145
|
-
}, eventLoopBlockThreshold)
|
|
145
|
+
}, eventLoopBlockThreshold, eventLoopBlockMaxEventsPerHour)
|
|
146
146
|
: [];
|
|
147
147
|
const profilingIntegration = isProfilingEnabled ? await this.getProfilingIntegration() : [];
|
|
148
148
|
init({
|
|
@@ -257,12 +257,13 @@ let ErrorReporter = class ErrorReporter {
|
|
|
257
257
|
if (tags)
|
|
258
258
|
event.tags = { ...event.tags, ...tags };
|
|
259
259
|
}
|
|
260
|
-
async getEventLoopBlockIntegration(tags, threshold) {
|
|
260
|
+
async getEventLoopBlockIntegration(tags, threshold, maxEventsPerHour) {
|
|
261
261
|
try {
|
|
262
262
|
const { eventLoopBlockIntegration } = await Promise.resolve().then(() => __importStar(require('@sentry/node-native')));
|
|
263
263
|
return [
|
|
264
264
|
eventLoopBlockIntegration({
|
|
265
265
|
...(threshold ? { threshold } : {}),
|
|
266
|
+
...(maxEventsPerHour ? { maxEventsPerHour } : {}),
|
|
266
267
|
staticTags: tags,
|
|
267
268
|
}),
|
|
268
269
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-reporter.js","sourceRoot":"","sources":["../../src/errors/error-reporter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wDAAqD;AAErD,gCAAkC;AAIlC,iCAAmC;AACnC,+CAAoF;AACpF,6CAAyC;AAEzC,mDAAyD;
|
|
1
|
+
{"version":3,"file":"error-reporter.js","sourceRoot":"","sources":["../../src/errors/error-reporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,9 +4,11 @@ export declare class ExecutionContextHookRegistry {
|
|
|
4
4
|
private readonly executionContextHookMetadata;
|
|
5
5
|
private readonly logger;
|
|
6
6
|
private hookMap;
|
|
7
|
+
private globalHook;
|
|
7
8
|
constructor(executionContextHookMetadata: ContextEstablishmentHookMetadata, logger: Logger);
|
|
8
9
|
init(): Promise<void>;
|
|
9
10
|
getHookByName(name: string): IContextEstablishmentHook | undefined;
|
|
10
11
|
getAllHooks(): IContextEstablishmentHook[];
|
|
11
12
|
getHookForTriggerType(triggerType: string): IContextEstablishmentHook[];
|
|
13
|
+
getGlobalHooks(): IContextEstablishmentHook[];
|
|
12
14
|
}
|
|
@@ -18,22 +18,25 @@ let ExecutionContextHookRegistry = class ExecutionContextHookRegistry {
|
|
|
18
18
|
this.executionContextHookMetadata = executionContextHookMetadata;
|
|
19
19
|
this.logger = logger;
|
|
20
20
|
this.hookMap = new Map();
|
|
21
|
+
this.globalHook = new Set();
|
|
21
22
|
}
|
|
22
23
|
async init() {
|
|
23
24
|
this.hookMap.clear();
|
|
25
|
+
this.globalHook.clear();
|
|
24
26
|
const hookClasses = this.executionContextHookMetadata.getClasses();
|
|
27
|
+
const globalHookClasses = this.executionContextHookMetadata.getGlobalClasses();
|
|
25
28
|
this.logger.debug(`Registering ${hookClasses.length} execution context hooks.`);
|
|
26
|
-
for (const
|
|
29
|
+
for (const hookClass of hookClasses) {
|
|
27
30
|
let hook;
|
|
28
31
|
try {
|
|
29
|
-
hook = di_1.Container.get(
|
|
32
|
+
hook = di_1.Container.get(hookClass);
|
|
30
33
|
}
|
|
31
34
|
catch (error) {
|
|
32
|
-
this.logger.error(`Failed to instantiate execution context hook class "${
|
|
35
|
+
this.logger.error(`Failed to instantiate execution context hook class "${hookClass.name}": ${error.message}`, { error });
|
|
33
36
|
continue;
|
|
34
37
|
}
|
|
35
38
|
if (this.hookMap.has(hook.hookDescription.name)) {
|
|
36
|
-
this.logger.warn(`Execution context hook with name "${hook.hookDescription.name}" is already registered. Conflicting classes are "${this.hookMap.get(hook.hookDescription.name)?.constructor.name}" and "${
|
|
39
|
+
this.logger.warn(`Execution context hook with name "${hook.hookDescription.name}" is already registered. Conflicting classes are "${this.hookMap.get(hook.hookDescription.name)?.constructor.name}" and "${hookClass.name}". Skipping the latter.`);
|
|
37
40
|
continue;
|
|
38
41
|
}
|
|
39
42
|
if (hook.init) {
|
|
@@ -46,6 +49,9 @@ let ExecutionContextHookRegistry = class ExecutionContextHookRegistry {
|
|
|
46
49
|
}
|
|
47
50
|
}
|
|
48
51
|
this.hookMap.set(hook.hookDescription.name, hook);
|
|
52
|
+
if (globalHookClasses.includes(hookClass)) {
|
|
53
|
+
this.globalHook.add(hook);
|
|
54
|
+
}
|
|
49
55
|
}
|
|
50
56
|
}
|
|
51
57
|
getHookByName(name) {
|
|
@@ -59,6 +65,9 @@ let ExecutionContextHookRegistry = class ExecutionContextHookRegistry {
|
|
|
59
65
|
return hook.isApplicableToTriggerNode(triggerType);
|
|
60
66
|
});
|
|
61
67
|
}
|
|
68
|
+
getGlobalHooks() {
|
|
69
|
+
return Array.from(this.globalHook);
|
|
70
|
+
}
|
|
62
71
|
};
|
|
63
72
|
exports.ExecutionContextHookRegistry = ExecutionContextHookRegistry;
|
|
64
73
|
exports.ExecutionContextHookRegistry = ExecutionContextHookRegistry = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution-context-hook-registry.service.js","sourceRoot":"","sources":["../../src/execution-engine/execution-context-hook-registry.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wDAA6C;AAC7C,gDAA8F;AAC9F,gCAA6C;AAUtC,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;
|
|
1
|
+
{"version":3,"file":"execution-context-hook-registry.service.js","sourceRoot":"","sources":["../../src/execution-engine/execution-context-hook-registry.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,25 +23,28 @@ let ExecutionContextService = class ExecutionContextService {
|
|
|
23
23
|
this.cipher = cipher;
|
|
24
24
|
}
|
|
25
25
|
async decryptExecutionContext(context) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
const { credentials: encCredentials, secureArtifacts: encSecureArtifacts, ...rest } = context;
|
|
27
|
+
const result = { ...rest };
|
|
28
|
+
if (encCredentials) {
|
|
29
|
+
const decrypted = await this.cipher.decryptV2(encCredentials);
|
|
30
|
+
result.credentials = (0, n8n_workflow_1.toCredentialContext)(decrypted);
|
|
30
31
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
32
|
+
if (encSecureArtifacts) {
|
|
33
|
+
const decrypted = await this.cipher.decryptV2(encSecureArtifacts);
|
|
34
|
+
result.secureArtifacts = (0, n8n_workflow_1.toSecureArtifacts)(decrypted);
|
|
35
|
+
}
|
|
36
|
+
return result;
|
|
35
37
|
}
|
|
36
38
|
async encryptExecutionContext(context) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
39
|
+
const { credentials, secureArtifacts, ...rest } = context;
|
|
40
|
+
const result = { ...rest };
|
|
41
|
+
if (credentials) {
|
|
42
|
+
result.credentials = await this.cipher.encryptV2(credentials);
|
|
40
43
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
44
|
+
if (secureArtifacts) {
|
|
45
|
+
result.secureArtifacts = await this.cipher.encryptV2(secureArtifacts);
|
|
46
|
+
}
|
|
47
|
+
return result;
|
|
45
48
|
}
|
|
46
49
|
mergeExecutionContexts(baseContext, contextToMerge) {
|
|
47
50
|
return (0, deep_merge_1.deepMerge)(baseContext, contextToMerge);
|
|
@@ -52,18 +55,33 @@ let ExecutionContextService = class ExecutionContextService {
|
|
|
52
55
|
...(workflow.getNode(startItem.node.name)?.parameters ?? {}),
|
|
53
56
|
...startItem.node.parameters,
|
|
54
57
|
};
|
|
58
|
+
let context = await this.decryptExecutionContext(contextToAugment);
|
|
59
|
+
for (const globalHook of this.executionContextHookRegistry.getGlobalHooks()) {
|
|
60
|
+
const result = await globalHook.execute({
|
|
61
|
+
triggerNode: startItem.node,
|
|
62
|
+
workflow,
|
|
63
|
+
triggerItems: currentTriggerItems,
|
|
64
|
+
context,
|
|
65
|
+
options: {},
|
|
66
|
+
});
|
|
67
|
+
if (result.triggerItems !== undefined) {
|
|
68
|
+
currentTriggerItems = result.triggerItems;
|
|
69
|
+
}
|
|
70
|
+
if (result.contextUpdate) {
|
|
71
|
+
context = this.mergeExecutionContexts(context, result.contextUpdate);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
55
74
|
const startNodeParametersResult = (0, n8n_workflow_1.toExecutionContextEstablishmentHookParameter)(contextEstablishmentHookParameters);
|
|
56
75
|
if (!startNodeParametersResult || startNodeParametersResult.error) {
|
|
57
76
|
if (startNodeParametersResult?.error) {
|
|
58
77
|
this.logger.warn(`Failed to parse execution context establishment hook parameters for node ${startItem.node.name}: ${startNodeParametersResult.error.message}`);
|
|
59
78
|
}
|
|
60
79
|
return {
|
|
61
|
-
context:
|
|
80
|
+
context: await this.encryptExecutionContext(context),
|
|
62
81
|
triggerItems: currentTriggerItems,
|
|
63
82
|
};
|
|
64
83
|
}
|
|
65
84
|
const startNodeParameters = startNodeParametersResult.data;
|
|
66
|
-
let context = await this.decryptExecutionContext(contextToAugment);
|
|
67
85
|
for (const hookParameters of startNodeParameters.contextEstablishmentHooks.hooks) {
|
|
68
86
|
const hook = this.executionContextHookRegistry.getHookByName(hookParameters.hookName);
|
|
69
87
|
if (!hook) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution-context.service.js","sourceRoot":"","sources":["../../src/execution-engine/execution-context.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wDAA6C;AAC7C,gCAAkC;AAClC,+
|
|
1
|
+
{"version":3,"file":"execution-context.service.js","sourceRoot":"","sources":["../../src/execution-engine/execution-context.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ export declare class BaseExecuteContext extends NodeExecutionContext {
|
|
|
17
17
|
} | undefined;
|
|
18
18
|
parentExecutionId?: string | undefined;
|
|
19
19
|
credentials?: string | undefined;
|
|
20
|
+
secureArtifacts?: string | undefined;
|
|
20
21
|
redaction?: {
|
|
21
22
|
version: 1;
|
|
22
23
|
policy: "none" | "all" | "non-manual" | "manual-only";
|
|
@@ -24,6 +24,7 @@ export declare abstract class NodeExecutionContext implements Omit<FunctionsBase
|
|
|
24
24
|
} | undefined;
|
|
25
25
|
parentExecutionId?: string | undefined;
|
|
26
26
|
credentials?: string | undefined;
|
|
27
|
+
secureArtifacts?: string | undefined;
|
|
27
28
|
redaction?: {
|
|
28
29
|
version: 1;
|
|
29
30
|
policy: "none" | "all" | "non-manual" | "manual-only";
|
|
@@ -35,6 +35,7 @@ export declare class WorkflowExecute {
|
|
|
35
35
|
private rethrowLastNodeError;
|
|
36
36
|
private handleExecuteOnce;
|
|
37
37
|
private executeNode;
|
|
38
|
+
private buildCustomTelemetryTracing;
|
|
38
39
|
private executePollNode;
|
|
39
40
|
private executeTriggerNode;
|
|
40
41
|
private executeDeclarativeNodeInTest;
|
|
@@ -601,6 +601,43 @@ class WorkflowExecute {
|
|
|
601
601
|
}
|
|
602
602
|
return { data, hints: context.hints };
|
|
603
603
|
}
|
|
604
|
+
buildCustomTelemetryTracing(workflow, node, additionalData, mode, runExecutionData, runIndex, connectionInputData, executionData) {
|
|
605
|
+
const tags = node.customTelemetryTags?.tag;
|
|
606
|
+
if (!tags?.length)
|
|
607
|
+
return;
|
|
608
|
+
const additionalKeys = (0, node_execution_context_1.getAdditionalKeys)(additionalData, mode, runExecutionData);
|
|
609
|
+
const tracing = {};
|
|
610
|
+
for (const { key, value } of tags) {
|
|
611
|
+
const trimmedKey = key?.trim();
|
|
612
|
+
if (!trimmedKey)
|
|
613
|
+
continue;
|
|
614
|
+
try {
|
|
615
|
+
const evaluated = workflow.expression.getParameterValue(value, runExecutionData, runIndex, 0, node.name, connectionInputData, mode, additionalKeys, executionData, false, {});
|
|
616
|
+
if (evaluated === undefined || evaluated === null)
|
|
617
|
+
continue;
|
|
618
|
+
if (typeof evaluated !== 'string' &&
|
|
619
|
+
typeof evaluated !== 'number' &&
|
|
620
|
+
typeof evaluated !== 'boolean') {
|
|
621
|
+
n8n_workflow_1.LoggerProxy.warn('customTelemetryTags expression resolved to a non-primitive value; skipping', {
|
|
622
|
+
nodeName: node.name,
|
|
623
|
+
tagKey: trimmedKey,
|
|
624
|
+
});
|
|
625
|
+
continue;
|
|
626
|
+
}
|
|
627
|
+
tracing[trimmedKey] = evaluated;
|
|
628
|
+
}
|
|
629
|
+
catch (error) {
|
|
630
|
+
n8n_workflow_1.LoggerProxy.warn('Failed to evaluate customTelemetryTags expression', {
|
|
631
|
+
nodeName: node.name,
|
|
632
|
+
tagKey: trimmedKey,
|
|
633
|
+
error: error instanceof Error ? error.message : String(error),
|
|
634
|
+
});
|
|
635
|
+
}
|
|
636
|
+
}
|
|
637
|
+
if (Object.keys(tracing).length === 0)
|
|
638
|
+
return;
|
|
639
|
+
return tracing;
|
|
640
|
+
}
|
|
604
641
|
async executePollNode(workflow, node, nodeType, additionalData, mode, inputData) {
|
|
605
642
|
if (mode === 'manual') {
|
|
606
643
|
const context = new node_execution_context_1.PollContext(workflow, node, additionalData, mode, 'manual');
|
|
@@ -650,6 +687,13 @@ class WorkflowExecute {
|
|
|
650
687
|
}
|
|
651
688
|
this.rethrowLastNodeError(runExecutionData, node);
|
|
652
689
|
inputData = this.handleExecuteOnce(node, inputData);
|
|
690
|
+
const tracingFromTags = this.buildCustomTelemetryTracing(workflow, node, additionalData, mode, runExecutionData, runIndex, connectionInputData, executionData);
|
|
691
|
+
if (tracingFromTags !== undefined) {
|
|
692
|
+
executionData.metadata = {
|
|
693
|
+
...(executionData.metadata ?? {}),
|
|
694
|
+
tracing: { ...tracingFromTags, ...(executionData.metadata?.tracing ?? {}) },
|
|
695
|
+
};
|
|
696
|
+
}
|
|
653
697
|
if (nodeType.execute || customOperation) {
|
|
654
698
|
return await this.executeNode(workflow, node, nodeType, customOperation, additionalData, mode, runExecutionData, runIndex, connectionInputData, inputData, executionData, abortSignal, subNodeExecutionResults);
|
|
655
699
|
}
|
|
@@ -858,6 +902,8 @@ class WorkflowExecute {
|
|
|
858
902
|
await hooks.runHook('nodeExecuteBefore', [executionNode.name, taskStartedData]);
|
|
859
903
|
}
|
|
860
904
|
let maxTries = 1;
|
|
905
|
+
const isErrorValue = (v) => v !== undefined && v !== null && v !== false;
|
|
906
|
+
const checkFailure = (data) => !(0, requests_response_1.isEngineRequest)(data) && isErrorValue(data.data?.[0]?.[0]?.json?.error);
|
|
861
907
|
if (executionData.node.retryOnFail === true) {
|
|
862
908
|
maxTries = Math.min(5, Math.max(2, executionData.node.maxTries || 3));
|
|
863
909
|
}
|
|
@@ -902,14 +948,11 @@ class WorkflowExecute {
|
|
|
902
948
|
workflowId: workflow.id,
|
|
903
949
|
});
|
|
904
950
|
let runNodeData = await this.runNode(workflow, executionData, this.runExecutionData, runIndex, this.additionalData, this.mode, this.abortController.signal, subNodeExecutionResults);
|
|
905
|
-
let nodeFailed =
|
|
906
|
-
runNodeData.data?.[0]?.[0]?.json?.error !== undefined;
|
|
951
|
+
let nodeFailed = checkFailure(runNodeData);
|
|
907
952
|
while (nodeFailed && tryIndex !== maxTries - 1) {
|
|
908
953
|
await (0, n8n_workflow_1.sleep)(waitBetweenTries);
|
|
909
954
|
runNodeData = await this.runNode(workflow, executionData, this.runExecutionData, runIndex, this.additionalData, this.mode, this.abortController.signal);
|
|
910
|
-
nodeFailed =
|
|
911
|
-
!(0, requests_response_1.isEngineRequest)(runNodeData) &&
|
|
912
|
-
runNodeData.data?.[0]?.[0]?.json?.error !== undefined;
|
|
955
|
+
nodeFailed = checkFailure(runNodeData);
|
|
913
956
|
tryIndex++;
|
|
914
957
|
}
|
|
915
958
|
if ((0, requests_response_1.isEngineRequest)(runNodeData)) {
|