You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Integration IDs must contain only ASCII letters, numbers, `_`, or `-`. They cannot be empty, contain path
49
50
separators, or exceed 64 characters.
@@ -70,6 +71,7 @@ or explicit environment reference shape.
70
71
| Microsoft Graph change notifications |`client_state`|
71
72
| Notion |`verification_token`|
72
73
| Sentry |`client_secret`|
74
+
| Datadog |`webhook_token`|
73
75
74
76
## Core configuration
75
77
@@ -103,6 +105,8 @@ Source-specific extras:
103
105
- Telegram `webhook_registration_mode = "startup"` attempts registration on startup and requires `bot_token` plus `public_webhook_url`
104
106
- Linear `timestamp_tolerance_secs` (default: `60`, `0` disables tolerance)
105
107
- Twitter/X `consumer_secret` is used for both CRC responses and `x-twitter-webhooks-signature` validation
108
+
- Datadog webhooks are not signed. `webhook_token` is a shared secret the operator sends as a custom header (configured in the Datadog webhook's *Custom Headers*), verified in constant time. The header name defaults to `X-Datadog-Webhook-Token` and can be overridden per integration with `webhook_token_header`. Routing keys off an `event_type` field in the payload template, falling back to `.unroutable` when it is absent or invalid; an optional `id` field is used as the NATS message ID for deduplication
109
+
- Datadog `timestamp_tolerance_secs` (optional, disabled by default) enables a freshness/anti-replay check. Datadog sends no timestamp header, so the operator must template a `timestamp` field carrying `$DATE_POSIX` (POSIX seconds) into the payload. When enabled, requests whose `timestamp` is outside the window are rejected (`401`), and requests missing/with an unparseable `timestamp` are rejected (`400`). `0` or unset disables the check
# webhook_token_header = "X-Datadog-Webhook-Token" # optional; override the custom header name
174
+
# timestamp_tolerance_secs = 300 # optional anti-replay window; requires "timestamp": "$DATE_POSIX" in the payload
175
+
```
176
+
177
+
Configure the matching Datadog webhook (Integrations > Webhooks) with a custom header and a payload template, for example:
178
+
179
+
```json
180
+
{
181
+
"X-Datadog-Webhook-Token": "$WEBHOOK_TOKEN"
182
+
}
166
183
```
167
184
185
+
```json
186
+
{
187
+
"id": "$ID",
188
+
"event_type": "$EVENT_TYPE",
189
+
"timestamp": "$DATE_POSIX",
190
+
"title": "$EVENT_TITLE",
191
+
"body": "$EVENT_MSG",
192
+
"alert_transition": "$ALERT_TRANSITION"
193
+
}
194
+
```
195
+
196
+
`timestamp` is only required when `timestamp_tolerance_secs` is set; `$DATE_POSIX` is POSIX epoch seconds (`$DATE` is epoch milliseconds, which this source does not accept).
197
+
168
198
## Microsoft Graph change notifications
169
199
170
200
This source receives Microsoft Graph change notifications. It does not implement
0 commit comments