HMAC Authentication
This guide will walk you through the process of setting up and using HMAC authentication in Vellum. HMAC authentication provides an additional layer of security for outgoing API calls and webhooks.
Setup
-
Create a new secret token securely: You can do this in Python using the
secrets
module. Here’s a simple example:Python Secret Token Generation -
Provide your secret token to Vellum: Navigate to the API keys page. Click the “Provide HMAC Token” button and enter your secret token.
When HMAC is Applied
HMAC authentication is automatically applied to specific types of outgoing requests from Vellum, but not all.
Automatic HMAC Application
HMAC signatures are automatically included in the following scenarios:
- API Nodes in Workflows making HTTP requests to external services
- Webhooks configured in your Vellum organization settings
Manual HMAC Implementation Required
HMAC signatures are NOT automatically included for :
-
Code Execution Nodes in Workflows
If you need to make authenticated requests from within a Code Execution Node, you’ll need to implement HMAC signature generation yourself.
Manual HMAC Implementation in Code Execution Node
Consider also storing your HMAC secret as a Workspace Secret for secure access within your Code Execution Nodes.
Manual HMAC Implementation in Code Execution Node
Verifying HMAC Signatures
When Vellum automatically applies HMAC authentication, each request will contain two headers: X-Vellum-Timestamp
and X-Vellum-Signature
.
You can reference these headers to verify the authenticity of requests made to your service from Vellum.
Verification Steps
-
Verify the timestamp: Check that the value of
X-Vellum-Timestamp
is within the last 60 seconds. -
Create the message string: Concatenate the following values together, separated by one newline character, into a new string
message
:X-Vellum-Timestamp
- The request method (GET, POST, etc)
- The request URL
- The request body
Python HMAC Content -
Verify the signature. Use the HMAC algorithm with SHA-256 to verify the authenticity of
X-Vellum-Signature
.Python HMAC Signature Verification Example