Webhooks are a way to get notified when an event happens on your blog.
cache.single{ path: string }cache.templatescache.allWhen an event happens, a POST request is sent to the webhook URL. The request
body is a JSON object with the following properties. The data property is the event
data. See the above table for the event data structure.
{
"subdomain": "my-subdomain",
"timestamp": 1645208678,
"event": "cache.single",
"data": {}
}Each webhook request includes an X-Signature header containing an HMAC-SHA256 signature
of the request body, signed with your webhook’s secret key. You can find the secret in the Console under
your webhook settings.
To verify the signature:
X-Signature header.const signature = request.headers['x-signature'];
const expected = crypto
.createHmac('sha256', env.HB_WEBHOOK_SECRET)
.update(JSON.stringify(request.body))
.digest('hex');
if (signature !== expected) {
return 'Unauthorized';
}We expect a 200 HTTP Response Code from your server to mark the webhook as success. If we get any other response code or fail to reach your servers, we will retry to send the webhook for 3 more times after
If all fail, we will mark that webhook as failed and will no longer send it automatically.