Add a destination
Open Destinations → Add destination in your project.The request that hooksnode sends
hooksnode builds the headers in this order. A later step replaces a header of the same name.
- The headers of the incoming request, except the ones listed in Destination rules.
- The destination’s extra headers.
X-Hooksnode-Source-Id: <source-id>.X-Hooksnode-Signature: sha256=<hex>, if signing is on.
Destination rules
hooksnode only delivers to public endpoints. A refused URL is rejected when you save it, and again when an event is sent. The error names the cause and what to change. It does not include a resolved IP address or the response body.Allowed ports
Ports below
1024, other than 80 and 443, are refused. A public address may use any allowed port.
Service ports are refused only when the address is private, internal, a metadata address, on Hooksnode’s own network, or listed in HOOKSNODE_DENY_CIDRS.
Addresses
These addresses are refused:- Private and internal ranges, including loopback, link-local, carrier-grade NAT and cloud metadata addresses.
localhostand names that end in.localhost.- Addresses that belong to Hooksnode’s own network.
Headers that are not forwarded
hooksnode does not copy these headers from the incoming request:CookieAuthorizationX-Forwarded-*(every header whose name starts withX-Forwarded-)
Forwarded, X-Real-IP, Proxy-* or inbound X-Hooksnode-* headers. hooksnode sets X-Hooksnode-Source-Id and, when signing is on, X-Hooksnode-Signature itself.
If your endpoint needs Authorization, Cookie or an X-Forwarded-* header, add it under Destination → Extra headers. See Extra headers. When an incoming request had an Authorization header and the destination did not set one, that delivery shows a note telling you to add it.
/proxy is removed
POST /proxy/:userID is removed. It returns 410 Gone with instructions to move. Send events to your source URL instead:
Success and failure
- A
2xxresponse is a success. hooksnode stores up to 1 MiB of the response body. - Anything else is a failed attempt. See Retries.
Test before you save
The destination editor has a Test panel. Paste a sample body. hooksnode runs your transform and filter and shows the output, whether the filter matched, and any error. Nothing is sent.Health checks
Every 15 minutes, hooksnode sends aHEAD request to each destination, with a 5 second timeout. A 5xx or no answer is unhealthy. A 4xx is degraded. Anything else is healthy.