mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-20 19:32:15 +00:00
refactor(core): Parse Webhook request bodies on-demand (#6394)
Also, 1. Consistent CORS support ~on all three webhook types~ waiting webhooks never supported CORS. I'll fix that in another PR 2. [Fixes binary-data handling when request body is text, json, or xml](https://linear.app/n8n/issue/NODE-505/webhook-binary-data-handling-fails-for-textplain-files). 3. Reduced number of middleware that each request has to go through. 4. Removed the need to maintain webhook endpoints in the auth-exception list. 5. Skip all middlewares (apart from `compression`) on Webhook routes. 6. move `multipart/form-data` support out of individual nodes 7. upgrade `formidable` 8. fix the filenames on binary-data in webhooks nodes 9. add unit tests and integration tests for webhook request handling, and increase test coverage
This commit is contained in:
committed by
GitHub
parent
369a2e9796
commit
31d8f478ee
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"nodes": [
|
||||
{
|
||||
"parameters": {
|
||||
"httpMethod": "POST",
|
||||
"path": "test",
|
||||
"options": {
|
||||
"binaryData": false
|
||||
}
|
||||
},
|
||||
"id": "ec188f16-b2c5-44e3-bd83-259a94f15c94",
|
||||
"name": "Webhook",
|
||||
"type": "n8n-nodes-base.webhook",
|
||||
"typeVersion": 1,
|
||||
"webhookId": "a59a3be7-6d43-47e7-951d-86b8172c2006"
|
||||
}
|
||||
],
|
||||
"connections": {
|
||||
"Webhook": {
|
||||
"main": [[]]
|
||||
}
|
||||
},
|
||||
"trigger": {
|
||||
"mode": "webhook",
|
||||
"input": {
|
||||
"json": {
|
||||
"headers": {
|
||||
"host": "localhost:5678",
|
||||
"user-agent": "curl/8.2.0",
|
||||
"accept": "*/*",
|
||||
"content-length": "137",
|
||||
"content-type": "multipart/form-data; boundary=--boundary"
|
||||
},
|
||||
"params": { "path": "test" },
|
||||
"query": {},
|
||||
"body": { "a": ["b"] }
|
||||
}
|
||||
}
|
||||
},
|
||||
"pinData": {
|
||||
"Webhook": [
|
||||
{
|
||||
"json": {
|
||||
"headers": {
|
||||
"host": "localhost:5678",
|
||||
"user-agent": "curl/8.2.0",
|
||||
"accept": "*/*",
|
||||
"content-length": "137",
|
||||
"content-type": "multipart/form-data; boundary=--boundary"
|
||||
},
|
||||
"params": { "path": "test" },
|
||||
"query": {},
|
||||
"body": {
|
||||
"a": ["b"]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
4
packages/nodes-base/nodes/Webhook/test/Webhook.test.ts
Normal file
4
packages/nodes-base/nodes/Webhook/test/Webhook.test.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
import { testWorkflows, getWorkflowFilenames } from '@test/nodes/Helpers';
|
||||
const workflows = getWorkflowFilenames(__dirname);
|
||||
|
||||
describe('Test Webhook Node', () => testWorkflows(workflows));
|
||||
Reference in New Issue
Block a user