Webhook Forwarding
Forward responses to a specified webhook
An HTTP request to the Cerebrium API can be parameterized to forward data from your function/app to a specified endpoint via a POST.
This allows you to use webhooks in your architecture. To achieve this, we can simply add the webhookEndpoint
query parameter to any API call:
This will then forward the body by sending a POST request to your specified webhook. Since this is a feature of our proxy, you will not need to modify any part of your code to use the webhook functionality. You should, however, ensure that your endpoint is able to receive POST requests. While this will work for both Cortex and Custom runtimes, it will only work for HTTP requests, and not websockets.
To illustrate this, suppose your function returns {"smile": "wave"}
. We would then make a POST call from
our proxy that would look like this to your webhook:
We do not actually use curl
. This is used as an example to show what a
webhook may expect.
Webhook Signature Verification
To verify that webhooks are genuinely coming from Cerebrium, you can use our webhook signature verification system:
- Include an
X-Webhook-Secret
header with a secret value of your choice when making requests to our API - When you receive a webhook, we’ll include the following headers:
X-Request-Id
: A unique identifier for the requestX-Cerebrium-Webhook-Timestamp
: The Unix timestamp when the webhook was sentX-Cerebrium-Webhook-Signature
: The signature in the formatv1,<signature>
- To verify the signature:
The body should include everything returned from cerebrium (run_id, function response, timestamp etc) not just your function response
This ensures that the webhook is genuinely from Cerebrium and hasn’t been tampered with.