Repository navigation
Bind span header redaction to the hosted HTTP client - #1626
Conversation
Live verification after the telemetry-layer redaction shipped showed post-deploy http.client spans still recording non-allowlisted headers: consumers capture the client value at construction and execute requests on fibers a host telemetry layer never reaches, so providing the redaction reference by layer was not enough. Bind it to the client itself so every request effect carries it, and keep the cloud layer as the server-side half. Regression test drives a request through the real client and asserts on the recorded span attributes.
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
executor-cloud | f36bde7 | Aug 17 2026, 06:01 PM |
@executor-js/cli
@executor-js/config
@executor-js/execution
@executor-js/sdk
@executor-js/codemode-core
@executor-js/runtime-quickjs
@executor-js/plugin-file-secrets
@executor-js/plugin-graphql
@executor-js/plugin-keychain
@executor-js/plugin-mcp
@executor-js/plugin-onepassword
@executor-js/plugin-openapi
executor
commit: |
The package's tsc build failed on Headers.entries() and the iterable protocol: its lib had DOM without DOM.Iterable, so the fetch Headers type lacked both. Latent on main; every CI run served the package build from the turbo cache until the sdk change invalidated it. Same lib pairing hosts/cloudflare already uses.
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
executor-marketing | f36bde7 | Commit Preview URL Branch Preview URL |
Aug 17 2026, 05:59 PM |
|
Deploy preview failure was a latent main breakage: plugins/mcp compiles with lib DOM but not DOM.Iterable, so Headers.entries() and the iterable protocol were missing from its program. It never surfaced because CI served that package build from the turbo cache; this branch's sdk change invalidated the cache and forced a fresh compile. Fixed here by adding DOM.Iterable (the pairing hosts/cloudflare already uses). |
Cloudflare preview
Sign-in is Cloudflare Access (one-time PIN to an allowed email). The preview has its own database and encryption key; it is destroyed when this PR closes. |
…o#1626) * Bind span header redaction to the hosted HTTP client Live verification after the telemetry-layer redaction shipped showed post-deploy http.client spans still recording non-allowlisted headers: consumers capture the client value at construction and execute requests on fibers a host telemetry layer never reaches, so providing the redaction reference by layer was not enough. Bind it to the client itself so every request effect carries it, and keep the cloud layer as the server-side half. Regression test drives a request through the real client and asserts on the recorded span attributes. * Add DOM.Iterable to the mcp plugin tsconfig The package's tsc build failed on Headers.entries() and the iterable protocol: its lib had DOM without DOM.Iterable, so the fetch Headers type lacked both. Latent on main; every CI run served the package build from the turbo cache until the sdk change invalidated it. Same lib pairing hosts/cloudflare already uses.
Follow-up to #1623. Live verification showed post-deploy http.client spans still recording non-allowlisted headers: consumers capture the client at construction and run requests on fibers the host telemetry layers never reach, so the Context.Reference provided by layer did not make it to the tracer's getRef. The redaction now travels with the client itself (HttpClient.transformResponse wrapping each request effect in provideService), with the allowlist single-sourced in the sdk and the cloud telemetry layer reusing it for the server-side tracer. Includes a regression test that drives a request through the real hosted client and asserts redaction on the recorded span attributes.