n8n 2.41.0 → 2.41.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/scaling/constants.d.ts +2 -0
- package/dist/scaling/constants.js +4 -1
- package/dist/scaling/constants.js.map +1 -1
- package/dist/scaling/pubsub/subscriber.service.d.ts +5 -0
- package/dist/scaling/pubsub/subscriber.service.js +47 -0
- package/dist/scaling/pubsub/subscriber.service.js.map +1 -1
- package/package.json +17 -17
|
@@ -2,6 +2,8 @@ export declare const JOB_TYPE_NAME = "job";
|
|
|
2
2
|
export declare const COMMAND_PUBSUB_CHANNEL = "n8n.commands";
|
|
3
3
|
export declare const WORKER_RESPONSE_PUBSUB_CHANNEL = "n8n.worker-response";
|
|
4
4
|
export declare const MCP_RELAY_PUBSUB_CHANNEL = "n8n.mcp-relay";
|
|
5
|
+
export declare const SUBSCRIBER_LIVENESS_INTERVAL_MS: number;
|
|
6
|
+
export declare const SUBSCRIBER_LIVENESS_TIMEOUT_MS: number;
|
|
5
7
|
export declare const MAX_PUBSUB_PAYLOAD_BYTES: number;
|
|
6
8
|
export declare const SELF_SEND_COMMANDS: Set<"add-webhooks-triggers-and-pollers" | "agent-chat-integration-changed" | "agent-chat-leader-channel-request" | "agent-chat-leader-channel-result" | "agent-chat-subscription-changed" | "agent-config-changed" | "agent-tasks-changed" | "cancel-agent-background-job" | "cancel-collection" | "cancel-test-run" | "clear-test-webhooks" | "community-package-install" | "community-package-uninstall" | "community-package-update" | "display-workflow-activation" | "display-workflow-activation-error" | "display-workflow-deactivation" | "display-workflow-publication-status" | "get-worker-id" | "get-worker-status" | "redaction-floor-changed" | "relay-agent-background-tasks-update" | "relay-agent-execution-update" | "relay-agent-update" | "relay-chat-human-message" | "relay-chat-message-edit" | "relay-chat-stream-event" | "relay-execution-lifecycle-event" | "relay-instance-ai-event" | "relay-instance-ai-task-control" | "reload-external-secrets-providers" | "reload-instance-ai-settings" | "reload-license" | "reload-mcp-registry" | "reload-oidc-config" | "reload-otel-config" | "reload-overwrite-credentials" | "reload-saml-config" | "reload-source-control-config" | "reload-sso-provisioning-configuration" | "remove-triggers-and-pollers" | "restart-event-bus" | "resume-agent-workflow-tool" | "stop-execution" | "wake-agent-background-job" | "workflow-publish-wake-up">;
|
|
7
9
|
export declare const IMMEDIATE_COMMANDS: Set<"add-webhooks-triggers-and-pollers" | "agent-chat-integration-changed" | "agent-chat-leader-channel-request" | "agent-chat-leader-channel-result" | "agent-chat-subscription-changed" | "agent-config-changed" | "agent-tasks-changed" | "cancel-agent-background-job" | "cancel-collection" | "cancel-test-run" | "clear-test-webhooks" | "community-package-install" | "community-package-uninstall" | "community-package-update" | "display-workflow-activation" | "display-workflow-activation-error" | "display-workflow-deactivation" | "display-workflow-publication-status" | "get-worker-id" | "get-worker-status" | "redaction-floor-changed" | "relay-agent-background-tasks-update" | "relay-agent-execution-update" | "relay-agent-update" | "relay-chat-human-message" | "relay-chat-message-edit" | "relay-chat-stream-event" | "relay-execution-lifecycle-event" | "relay-instance-ai-event" | "relay-instance-ai-task-control" | "reload-external-secrets-providers" | "reload-instance-ai-settings" | "reload-license" | "reload-mcp-registry" | "reload-oidc-config" | "reload-otel-config" | "reload-overwrite-credentials" | "reload-saml-config" | "reload-source-control-config" | "reload-sso-provisioning-configuration" | "remove-triggers-and-pollers" | "restart-event-bus" | "resume-agent-workflow-tool" | "stop-execution" | "wake-agent-background-job" | "workflow-publish-wake-up">;
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.IMMEDIATE_COMMANDS = exports.SELF_SEND_COMMANDS = exports.MAX_PUBSUB_PAYLOAD_BYTES = exports.MCP_RELAY_PUBSUB_CHANNEL = exports.WORKER_RESPONSE_PUBSUB_CHANNEL = exports.COMMAND_PUBSUB_CHANNEL = exports.JOB_TYPE_NAME = void 0;
|
|
3
|
+
exports.IMMEDIATE_COMMANDS = exports.SELF_SEND_COMMANDS = exports.MAX_PUBSUB_PAYLOAD_BYTES = exports.SUBSCRIBER_LIVENESS_TIMEOUT_MS = exports.SUBSCRIBER_LIVENESS_INTERVAL_MS = exports.MCP_RELAY_PUBSUB_CHANNEL = exports.WORKER_RESPONSE_PUBSUB_CHANNEL = exports.COMMAND_PUBSUB_CHANNEL = exports.JOB_TYPE_NAME = void 0;
|
|
4
|
+
const constants_1 = require("@n8n/constants");
|
|
4
5
|
exports.JOB_TYPE_NAME = 'job';
|
|
5
6
|
exports.COMMAND_PUBSUB_CHANNEL = 'n8n.commands';
|
|
6
7
|
exports.WORKER_RESPONSE_PUBSUB_CHANNEL = 'n8n.worker-response';
|
|
7
8
|
exports.MCP_RELAY_PUBSUB_CHANNEL = 'n8n.mcp-relay';
|
|
9
|
+
exports.SUBSCRIBER_LIVENESS_INTERVAL_MS = 30 * constants_1.Time.seconds.toMilliseconds;
|
|
10
|
+
exports.SUBSCRIBER_LIVENESS_TIMEOUT_MS = 10 * constants_1.Time.seconds.toMilliseconds;
|
|
8
11
|
exports.MAX_PUBSUB_PAYLOAD_BYTES = 5 * 1024 * 1024;
|
|
9
12
|
exports.SELF_SEND_COMMANDS = new Set([
|
|
10
13
|
'add-webhooks-triggers-and-pollers',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/scaling/constants.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/scaling/constants.ts"],"names":[],"mappings":";;;AAAA,8CAAsC;AAIzB,QAAA,aAAa,GAAG,KAAK,CAAC;AAGtB,QAAA,sBAAsB,GAAG,cAAc,CAAC;AAGxC,QAAA,8BAA8B,GAAG,qBAAqB,CAAC;AAGvD,QAAA,wBAAwB,GAAG,eAAe,CAAC;AAG3C,QAAA,+BAA+B,GAAG,EAAE,GAAG,gBAAI,CAAC,OAAO,CAAC,cAAc,CAAC;AAGnE,QAAA,8BAA8B,GAAG,EAAE,GAAG,gBAAI,CAAC,OAAO,CAAC,cAAc,CAAC;AAMlE,QAAA,wBAAwB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAK3C,QAAA,kBAAkB,GAAG,IAAI,GAAG,CAA4B;IACpE,mCAAmC;IACnC,6BAA6B;IAE7B,0BAA0B;CAC1B,CAAC,CAAC;AAMU,QAAA,kBAAkB,GAAG,IAAI,GAAG,CAA4B;IACpE,mCAAmC;IACnC,6BAA6B;IAC7B,iCAAiC;IACjC,yBAAyB;IACzB,8BAA8B;IAC9B,qCAAqC;IACrC,oBAAoB;IACpB,4BAA4B;IAC5B,6BAA6B;IAC7B,2BAA2B;IAC3B,yBAAyB;IACzB,gCAAgC;IAChC,iCAAiC;IACjC,gCAAgC;IAGhC,mCAAmC;IACnC,kCAAkC;IAClC,iBAAiB;IACjB,gBAAgB;IAChB,6BAA6B;IAC7B,+BAA+B;IAC/B,mCAAmC;IACnC,qCAAqC;IACrC,0BAA0B;CAC1B,CAAC,CAAC"}
|
|
@@ -22,6 +22,9 @@ export declare class Subscriber {
|
|
|
22
22
|
private readonly mcpRelayChannel;
|
|
23
23
|
private mcpRelayHandler?;
|
|
24
24
|
private readonly debouncedHandlers;
|
|
25
|
+
private readonly channels;
|
|
26
|
+
private lostConnection;
|
|
27
|
+
private livenessTimer?;
|
|
25
28
|
constructor(logger: Logger, instanceSettings: InstanceSettings, pubsubEventBus: PubSubEventBus, redisClientService: RedisClientService, executionsConfig: ExecutionsConfig, globalConfig: GlobalConfig);
|
|
26
29
|
setMcpRelayHandler(handler: (msg: McpRelayMessage) => void): void;
|
|
27
30
|
private handleMcpRelayMessage;
|
|
@@ -31,6 +34,8 @@ export declare class Subscriber {
|
|
|
31
34
|
getMcpRelayChannel(): string;
|
|
32
35
|
shutdown(): void;
|
|
33
36
|
subscribe(channel: string): Promise<void>;
|
|
37
|
+
private resubscribe;
|
|
38
|
+
private checkLiveness;
|
|
34
39
|
private eventNameFrom;
|
|
35
40
|
private debounceKeyFrom;
|
|
36
41
|
private parseMessage;
|
|
@@ -31,6 +31,8 @@ let Subscriber = class Subscriber {
|
|
|
31
31
|
this.executionsConfig = executionsConfig;
|
|
32
32
|
this.globalConfig = globalConfig;
|
|
33
33
|
this.debouncedHandlers = new Map();
|
|
34
|
+
this.channels = new Set();
|
|
35
|
+
this.lostConnection = false;
|
|
34
36
|
if (this.executionsConfig.mode !== 'queue')
|
|
35
37
|
return;
|
|
36
38
|
this.logger = this.logger.scoped(['scaling', 'pubsub']);
|
|
@@ -39,6 +41,18 @@ let Subscriber = class Subscriber {
|
|
|
39
41
|
this.workerResponseChannel = `${prefix}:${constants_1.WORKER_RESPONSE_PUBSUB_CHANNEL}`;
|
|
40
42
|
this.mcpRelayChannel = `${prefix}:${constants_1.MCP_RELAY_PUBSUB_CHANNEL}`;
|
|
41
43
|
this.client = this.redisClientService.createClient({ type: 'subscriber(n8n)' });
|
|
44
|
+
this.client.on('close', () => {
|
|
45
|
+
this.lostConnection = true;
|
|
46
|
+
});
|
|
47
|
+
this.client.on('ready', () => {
|
|
48
|
+
if (!this.lostConnection)
|
|
49
|
+
return;
|
|
50
|
+
this.lostConnection = false;
|
|
51
|
+
void this.resubscribe();
|
|
52
|
+
});
|
|
53
|
+
this.livenessTimer = setInterval(async () => {
|
|
54
|
+
await this.checkLiveness();
|
|
55
|
+
}, constants_1.SUBSCRIBER_LIVENESS_INTERVAL_MS).unref();
|
|
42
56
|
const handlerFn = (msg) => {
|
|
43
57
|
this.pubsubEventBus.emit(this.eventNameFrom(msg), msg.payload);
|
|
44
58
|
};
|
|
@@ -101,11 +115,13 @@ let Subscriber = class Subscriber {
|
|
|
101
115
|
return this.mcpRelayChannel;
|
|
102
116
|
}
|
|
103
117
|
shutdown() {
|
|
118
|
+
clearInterval(this.livenessTimer);
|
|
104
119
|
for (const handler of this.debouncedHandlers.values())
|
|
105
120
|
handler.cancel();
|
|
106
121
|
this.client.disconnect();
|
|
107
122
|
}
|
|
108
123
|
async subscribe(channel) {
|
|
124
|
+
this.channels.add(channel);
|
|
109
125
|
await this.client.subscribe(channel, (error) => {
|
|
110
126
|
if (error) {
|
|
111
127
|
this.logger.error(`Failed to subscribe to channel ${channel}`, { error });
|
|
@@ -114,6 +130,37 @@ let Subscriber = class Subscriber {
|
|
|
114
130
|
this.logger.debug(`Subscribed to channel ${channel}`);
|
|
115
131
|
});
|
|
116
132
|
}
|
|
133
|
+
async resubscribe() {
|
|
134
|
+
if (this.channels.size === 0)
|
|
135
|
+
return;
|
|
136
|
+
try {
|
|
137
|
+
for (const channel of this.channels)
|
|
138
|
+
await this.subscribe(channel);
|
|
139
|
+
this.logger.info('Resubscribed to pubsub channels after Redis reconnect', {
|
|
140
|
+
channels: [...this.channels],
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
this.lostConnection = true;
|
|
145
|
+
this.logger.error('Failed to resubscribe to pubsub channels after Redis reconnect', {
|
|
146
|
+
error,
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
async checkLiveness() {
|
|
151
|
+
if (this.channels.size === 0)
|
|
152
|
+
return;
|
|
153
|
+
const timeout = new Promise((_, reject) => {
|
|
154
|
+
setTimeout(() => reject(new Error('timeout')), constants_1.SUBSCRIBER_LIVENESS_TIMEOUT_MS).unref();
|
|
155
|
+
});
|
|
156
|
+
try {
|
|
157
|
+
await Promise.race([this.client.subscribe(...this.channels), timeout]);
|
|
158
|
+
}
|
|
159
|
+
catch (error) {
|
|
160
|
+
this.logger.warn('Pubsub subscriber connection is unresponsive, reconnecting', { error });
|
|
161
|
+
this.client.disconnect(true);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
117
164
|
eventNameFrom(msg) {
|
|
118
165
|
return 'command' in msg ? msg.command : msg.response;
|
|
119
166
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscriber.service.js","sourceRoot":"","sources":["../../../src/scaling/pubsub/subscriber.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,wDAA6C;AAC7C,wCAA6D;AAC7D,gCAAkC;AAElC,+DAAuC;AACvC,uCAA4C;AAC5C,+CAAyC;AAGzC,0EAAqE;AAErE,uDAAmD;AAEnD,
|
|
1
|
+
{"version":3,"file":"subscriber.service.js","sourceRoot":"","sources":["../../../src/scaling/pubsub/subscriber.service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n",
|
|
3
|
-
"version": "2.41.
|
|
3
|
+
"version": "2.41.1",
|
|
4
4
|
"description": "n8n Workflow Automation Tool",
|
|
5
5
|
"main": "dist/index",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@faker-js/faker": "^8.0.2",
|
|
35
|
-
"@n8n/backend-test-utils": "1.41.
|
|
35
|
+
"@n8n/backend-test-utils": "1.41.1",
|
|
36
36
|
"@n8n/oxlint-config": "0.0.1",
|
|
37
37
|
"@n8n/playwright-janitor": "0.1.0",
|
|
38
38
|
"@n8n/typescript-config": "1.12.0",
|
|
@@ -110,33 +110,33 @@
|
|
|
110
110
|
"@modelcontextprotocol/sdk": "1.26.0",
|
|
111
111
|
"@modelcontextprotocol/server": "2.0.0",
|
|
112
112
|
"@mozilla/readability": "^0.6.0",
|
|
113
|
-
"@n8n/agents": "0.26.
|
|
114
|
-
"@n8n/ai-node-sdk": "0.31.
|
|
115
|
-
"@n8n/ai-utilities": "0.34.
|
|
116
|
-
"@n8n/ai-workflow-builder": "1.41.
|
|
113
|
+
"@n8n/agents": "0.26.1",
|
|
114
|
+
"@n8n/ai-node-sdk": "0.31.1",
|
|
115
|
+
"@n8n/ai-utilities": "0.34.1",
|
|
116
|
+
"@n8n/ai-workflow-builder": "1.41.1",
|
|
117
117
|
"@n8n/api-types": "1.41.0",
|
|
118
|
-
"@n8n/backend-common": "1.41.
|
|
119
|
-
"@n8n/backend-network": "1.15.
|
|
120
|
-
"@n8n/blob-storage": "1.9.
|
|
118
|
+
"@n8n/backend-common": "1.41.1",
|
|
119
|
+
"@n8n/backend-network": "1.15.1",
|
|
120
|
+
"@n8n/blob-storage": "1.9.1",
|
|
121
121
|
"@n8n/chat-hub": "1.34.0",
|
|
122
|
-
"@n8n/client-oauth2": "1.23.
|
|
122
|
+
"@n8n/client-oauth2": "1.23.1",
|
|
123
123
|
"@n8n/config": "2.39.0",
|
|
124
124
|
"@n8n/constants": "0.39.0",
|
|
125
|
-
"@n8n/db": "1.41.
|
|
125
|
+
"@n8n/db": "1.41.1",
|
|
126
126
|
"@n8n/decorators": "1.41.0",
|
|
127
127
|
"@n8n/di": "0.17.0",
|
|
128
128
|
"@n8n/engine": "0.21.0",
|
|
129
129
|
"@n8n/errors": "0.14.0",
|
|
130
130
|
"@n8n/expression-runtime": "0.32.0",
|
|
131
|
-
"@n8n/instance-ai": "1.26.
|
|
131
|
+
"@n8n/instance-ai": "1.26.1",
|
|
132
132
|
"@n8n/mcp-apps": "0.18.0",
|
|
133
133
|
"@n8n/mcp-browser": "0.22.0",
|
|
134
|
-
"@n8n/n8n-nodes-langchain": "2.41.
|
|
135
|
-
"@n8n/node-engine-compatibility": "0.9.
|
|
134
|
+
"@n8n/n8n-nodes-langchain": "2.41.1",
|
|
135
|
+
"@n8n/node-engine-compatibility": "0.9.1",
|
|
136
136
|
"@n8n/permissions": "0.78.0",
|
|
137
137
|
"@n8n/scheduler": "1.10.0",
|
|
138
138
|
"@n8n/syslog-client": "1.11.0",
|
|
139
|
-
"@n8n/task-runner": "2.41.
|
|
139
|
+
"@n8n/task-runner": "2.41.1",
|
|
140
140
|
"@n8n/telemetry": "1.9.0",
|
|
141
141
|
"@n8n/typeorm": "0.11.0",
|
|
142
142
|
"@n8n/utils": "1.48.0",
|
|
@@ -204,9 +204,9 @@
|
|
|
204
204
|
"moment-timezone": "0.5.48",
|
|
205
205
|
"ms": "2.1.3",
|
|
206
206
|
"multer": "^2.3.0",
|
|
207
|
-
"n8n-core": "2.41.
|
|
207
|
+
"n8n-core": "2.41.1",
|
|
208
208
|
"n8n-editor-ui": "2.41.0",
|
|
209
|
-
"n8n-nodes-base": "2.41.
|
|
209
|
+
"n8n-nodes-base": "2.41.1",
|
|
210
210
|
"n8n-workflow": "2.41.0",
|
|
211
211
|
"nanoid": "3.3.18",
|
|
212
212
|
"nodemailer": "8.0.10",
|