n8n 1.106.2 → 1.106.3
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.
|
@@ -17,6 +17,8 @@ export declare class WaitingWebhooks implements IWebhookManager {
|
|
|
17
17
|
private isSendAndWaitRequest;
|
|
18
18
|
private createWorkflow;
|
|
19
19
|
protected getExecution(executionId: string): Promise<IExecutionResponse | undefined>;
|
|
20
|
+
private getHmacSecret;
|
|
21
|
+
private validateSignatureInRequest;
|
|
20
22
|
executeWebhook(req: WaitingWebhookRequest, res: express.Response): Promise<IWebhookResponseCallbackData>;
|
|
21
23
|
protected getWebhookExecutionData({ execution, req, res, lastNodeExecuted, executionId, suffix, }: {
|
|
22
24
|
execution: IExecutionResponse;
|
|
@@ -41,6 +41,9 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
41
41
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
42
42
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
43
43
|
};
|
|
44
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
45
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
46
|
+
};
|
|
44
47
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
48
|
exports.WaitingWebhooks = void 0;
|
|
46
49
|
const backend_common_1 = require("@n8n/backend-common");
|
|
@@ -54,6 +57,8 @@ const WebhookHelpers = __importStar(require("../webhooks/webhook-helpers"));
|
|
|
54
57
|
const WorkflowExecuteAdditionalData = __importStar(require("../workflow-execute-additional-data"));
|
|
55
58
|
const webhook_request_sanitizer_1 = require("./webhook-request-sanitizer");
|
|
56
59
|
const webhook_service_1 = require("./webhook.service");
|
|
60
|
+
const n8n_core_1 = require("n8n-core");
|
|
61
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
57
62
|
let WaitingWebhooks = class WaitingWebhooks {
|
|
58
63
|
constructor(logger, nodeTypes, executionRepository, webhookService) {
|
|
59
64
|
this.logger = logger;
|
|
@@ -90,12 +95,40 @@ let WaitingWebhooks = class WaitingWebhooks {
|
|
|
90
95
|
unflattenData: true,
|
|
91
96
|
});
|
|
92
97
|
}
|
|
98
|
+
getHmacSecret() {
|
|
99
|
+
return di_1.Container.get(n8n_core_1.InstanceSettings).hmacSignatureSecret;
|
|
100
|
+
}
|
|
101
|
+
validateSignatureInRequest(req, secret) {
|
|
102
|
+
try {
|
|
103
|
+
const actualToken = req.query[n8n_core_1.WAITING_TOKEN_QUERY_PARAM];
|
|
104
|
+
if (typeof actualToken !== 'string')
|
|
105
|
+
return false;
|
|
106
|
+
const parsedUrl = new URL(req.url, `http://${req.headers.host}`);
|
|
107
|
+
parsedUrl.searchParams.delete(n8n_core_1.WAITING_TOKEN_QUERY_PARAM);
|
|
108
|
+
const urlForSigning = (0, n8n_core_1.prepareUrlForSigning)(parsedUrl);
|
|
109
|
+
const expectedToken = (0, n8n_core_1.generateUrlSignature)(urlForSigning, secret);
|
|
110
|
+
const valid = crypto_1.default.timingSafeEqual(Buffer.from(actualToken), Buffer.from(expectedToken));
|
|
111
|
+
return valid;
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
93
117
|
async executeWebhook(req, res) {
|
|
94
118
|
const { path: executionId, suffix } = req.params;
|
|
95
119
|
this.logReceivedWebhook(req.method, executionId);
|
|
96
120
|
(0, webhook_request_sanitizer_1.sanitizeWebhookRequest)(req);
|
|
97
121
|
req.params = {};
|
|
98
122
|
const execution = await this.getExecution(executionId);
|
|
123
|
+
if (execution && execution.data.validateSignature) {
|
|
124
|
+
const lastNodeExecuted = execution.data.resultData.lastNodeExecuted;
|
|
125
|
+
const lastNode = execution.workflowData.nodes.find((node) => node.name === lastNodeExecuted);
|
|
126
|
+
const shouldValidate = lastNode?.parameters.operation === n8n_workflow_1.SEND_AND_WAIT_OPERATION;
|
|
127
|
+
if (shouldValidate && !this.validateSignatureInRequest(req, this.getHmacSecret())) {
|
|
128
|
+
res.status(401).json({ error: 'Invalid token' });
|
|
129
|
+
return { noWebhookResponse: true };
|
|
130
|
+
}
|
|
131
|
+
}
|
|
99
132
|
if (!execution) {
|
|
100
133
|
throw new not_found_error_1.NotFoundError(`The execution "${executionId}" does not exist.`);
|
|
101
134
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"waiting-webhooks.js","sourceRoot":"","sources":["../../src/webhooks/waiting-webhooks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"waiting-webhooks.js","sourceRoot":"","sources":["../../src/webhooks/waiting-webhooks.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n",
|
|
3
|
-
"version": "1.106.
|
|
3
|
+
"version": "1.106.3",
|
|
4
4
|
"description": "n8n Workflow Automation Tool",
|
|
5
5
|
"main": "dist/index",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -140,24 +140,24 @@
|
|
|
140
140
|
"yamljs": "0.3.0",
|
|
141
141
|
"yargs-parser": "21.1.1",
|
|
142
142
|
"zod": "3.25.67",
|
|
143
|
-
"@n8n/ai-workflow-builder": "0.16.
|
|
144
|
-
"@n8n/api-types": "0.40.
|
|
145
|
-
"@n8n/backend-common": "^0.16.
|
|
146
|
-
"@n8n/backend-test-utils": "^0.9.
|
|
147
|
-
"@n8n/constants": "^0.10.0",
|
|
148
|
-
"@n8n/config": "1.49.0",
|
|
143
|
+
"@n8n/ai-workflow-builder": "0.16.3",
|
|
144
|
+
"@n8n/api-types": "0.40.3",
|
|
145
|
+
"@n8n/backend-common": "^0.16.3",
|
|
146
|
+
"@n8n/backend-test-utils": "^0.9.3",
|
|
149
147
|
"@n8n/client-oauth2": "0.28.0",
|
|
150
|
-
"@n8n/
|
|
151
|
-
"@n8n/
|
|
152
|
-
"@n8n/
|
|
153
|
-
"@n8n/
|
|
148
|
+
"@n8n/config": "1.49.0",
|
|
149
|
+
"@n8n/db": "^0.17.3",
|
|
150
|
+
"@n8n/constants": "^0.10.0",
|
|
151
|
+
"@n8n/decorators": "0.16.3",
|
|
154
152
|
"@n8n/errors": "0.4.0",
|
|
155
153
|
"@n8n/permissions": "0.31.0",
|
|
156
|
-
"@n8n/
|
|
157
|
-
"n8n-
|
|
158
|
-
"n8n-
|
|
159
|
-
"n8n-nodes-base": "1.104.
|
|
160
|
-
"n8n-
|
|
154
|
+
"@n8n/di": "0.9.0",
|
|
155
|
+
"@n8n/task-runner": "1.42.3",
|
|
156
|
+
"n8n-core": "1.105.3",
|
|
157
|
+
"n8n-nodes-base": "1.104.3",
|
|
158
|
+
"n8n-editor-ui": "1.106.3",
|
|
159
|
+
"n8n-workflow": "1.103.3",
|
|
160
|
+
"@n8n/n8n-nodes-langchain": "1.105.3"
|
|
161
161
|
},
|
|
162
162
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
163
163
|
"homepage": "https://n8n.io",
|