| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
…pagationTargets `enableRpcTracePropagation: true` propagated trace context to every Durable Object namespace and service binding on `env`. RPC carries that context as a trailing argument, and only a Sentry-instrumented receiver strips it again, so any receiver the user does not own saw an extra argument. `rpcTracePropagationTargets` names the bindings to propagate to instead, mirroring `tracePropagationTargets`. Strings match a binding name exactly, regular expressions match by pattern. The option is now caller-only. Receivers no longer take a switch: a Durable Object instruments its RPC methods unconditionally, matching what a WorkerEntrypoint already did. `extractRpcMeta` only strips a trailing argument that actually carries `__sentry_rpc_meta__`, so a call arriving without metadata is untouched. BREAKING CHANGE: `enableRpcTracePropagation` is removed. Replace it on the caller with `rpcTracePropagationTargets` listing the bindings you call, and drop it from receivers. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
size-limit report 📦
|
Sorry, something went wrong.
…racePropagationTargets
|
bugbot run |
Sorry, something went wrong.
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit d68e2df. Configure here.
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
closes #23233
This PR existed because of this comment: #23363 (comment)
We already have an option tracePropagationTargets and they are set to a safe default list in the browser (because in the browser we can't enable it for all addresses by default). To keep it consistent rpcTracePropagationTargets is the equivalent for RPC calls, while this has the same concerns as the browser - we can't target all RPC calls OOTB, as this would lead to issues as seen in #23233
We now remove the enableRpcTracePropagation: boolean entirely with a allow list rpcTracePropagationTargets option, that is empty by default and is therefore the equivalent of enableRpcTracePropagation: false (in a later PR we have a prefilled allowlist, like in the browser, when users do have our Vite plugin enabled).
rpcTracePropagationTargets only has to be enabled on the sender worker. The receiving worker does not have to do anything, as we automatically detect if there is a payload from us included. If there is, we strip it - it should be safe enough to listen to this by default, as we already have the last RPC parameter properly prefixed.
(when this is being backported to v10, we keep enableRpcTracePropagation: boolean, deprecate it and overrule enableRpcTracePropagation when rpcTracePropagationTargets is set (so the allow list is stronger than enabling it for everything - the receiving worker won't change for the backport)
Clanker description:
enableRpcTracePropagation: true propagated trace context to every Durable Object namespace and service binding on env. RPC carries that context as a trailing argument, and only a Sentry-instrumented receiver strips it again, so any receiver the user does not own saw an extra argument.
rpcTracePropagationTargets names the bindings to propagate to instead, mirroring tracePropagationTargets. Strings match a binding name exactly, regular expressions match by pattern.
The option is now caller-only. Receivers no longer take a switch: a Durable Object instruments its RPC methods unconditionally, matching what a WorkerEntrypoint already did. extractRpcMeta only strips a trailing argument that actually carries __sentry_rpc_meta__, so a call arriving without metadata is untouched.