Skip to content

fix(proxy): allow Datadog API-key auth headers#476

Open
cjustice wants to merge 1 commit into
paradigmxyz:mainfrom
cjustice:chore/allow-datadog-api-key-headers
Open

fix(proxy): allow Datadog API-key auth headers#476
cjustice wants to merge 1 commit into
paradigmxyz:mainfrom
cjustice:chore/allow-datadog-api-key-headers

Conversation

@cjustice

Copy link
Copy Markdown

Summary

  • Allow iron-proxy to preserve Datadog's DD-API-KEY and DD-APPLICATION-KEY request headers (added to both copies of the iron-proxy base config)
  • Keep the change scoped to the two documented Datadog auth headers rather than broadening the auth-header regex
  • Add a proxy-config regression test for the rendered header allowlist

Why

Datadog's REST API authenticates with two headers — DD-API-KEY (org API key) and DD-APPLICATION-KEY (application key); it does not accept Authorization: Bearer <api_key> for static-key auth. Because neither dd--prefixed header is on iron-proxy's header_allowlist (and they don't match the ^x-…(api-key|token|auth|key)$ catch-all), the proxy strips them before egress, so a Datadog tool's requests reach api.datadoghq.com unauthenticated and get a 403. This mirrors the existing per-tool header additions (x-as-user-email, mcp-*, project-access-token, x-amz-*).

Test

  • uv run --project services/api pytest services/api/tests/test_proxy_config.py

Datadog's REST API authenticates with the DD-API-KEY (org API key) and
DD-APPLICATION-KEY (application key) request headers. iron-proxy's
header_allowlist strips any header not on the list before egress, so a
Datadog tool's requests reach the API unauthenticated and get a 403.

Add both headers to the allowlist (both copies of the iron-proxy base
config) plus a proxy-config regression test, mirroring the existing
per-tool header additions (x-as-user-email, mcp-*, project-access-token,
x-amz-*).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@cjustice cjustice marked this pull request as ready for review June 10, 2026 19:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant