This is the HMAC secret key used to sign requests.
algorithm
string
This is the HMAC algorithm to use for signing.
signatureHeader
string
This is the header name where the signature will be sent. Defaults to 'x-signature'.
timestampHeader
string
This is the header name where the timestamp will be sent. Defaults to 'x-timestamp'.
signaturePrefix
string
This is the prefix for the signature. For example, 'sha256=' for GitHub-style signatures.
includeTimestamp
boolean
Whether to include a timestamp in the signature payload. Defaults to true.
payloadFormat
string
Custom payload format. Use {body} for request body, {timestamp} for timestamp, {method} for HTTP method, {url} for URL, {svix-id} for unique message ID. Defaults to '{timestamp}.{body}'.
messageIdHeader
string
This is the header name where the unique message ID will be sent. Used for Svix-style webhooks.
signatureEncoding
string
The encoding format for the signature. Defaults to 'hex'.
secretIsBase64
boolean
Whether the secret key is base64-encoded and should be decoded before use. Defaults to false.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "#/components/schemas/HMACAuthenticationPlan",
"title": "HMACAuthenticationPlan",
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"hmac"
]
},
"secretKey": {
"type": "string",
"description": "This is the HMAC secret key used to sign requests."
},
"algorithm": {
"type": "string",
"enum": [
"sha256",
"sha512",
"sha1"
],
"description": "This is the HMAC algorithm to use for signing."
},
"signatureHeader": {
"type": "string",
"description": "This is the header name where the signature will be sent. Defaults to 'x-signature'."
},
"timestampHeader": {
"type": "string",
"description": "This is the header name where the timestamp will be sent. Defaults to 'x-timestamp'."
},
"signaturePrefix": {
"type": "string",
"description": "This is the prefix for the signature. For example, 'sha256=' for GitHub-style signatures."
},
"includeTimestamp": {
"type": "boolean",
"description": "Whether to include a timestamp in the signature payload. Defaults to true."
},
"payloadFormat": {
"type": "string",
"description": "Custom payload format. Use {body} for request body, {timestamp} for timestamp, {method} for HTTP method, {url} for URL, {svix-id} for unique message ID. Defaults to '{timestamp}.{body}'."
},
"messageIdHeader": {
"type": "string",
"description": "This is the header name where the unique message ID will be sent. Used for Svix-style webhooks."
},
"signatureEncoding": {
"type": "string",
"enum": [
"hex",
"base64"
],
"description": "The encoding format for the signature. Defaults to 'hex'."
},
"secretIsBase64": {
"type": "boolean",
"description": "Whether the secret key is base64-encoded and should be decoded before use. Defaults to false."
}
},
"required": [
"type",
"secretKey",
"algorithm"
]
}