Repository navigation
Conversation
06ff9e2 to
476c2f9
Compare
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
476c2f9 to
9d71c1f
Compare
|
@DataDog review |
HTTP client spans tagged http.query with the decoded query, so an encoded %26 in a value became a literal '&'. Sensitive parameter redaction stopped there, exposing the remainder in http.query and http.url. Preserve %26 and %23 when decoding queries to retain parameter and fragment boundaries. Apply this to client spans and to server spans when http.server.raw.query-string=false and raw queries are available.
9d71c1f to
627effe
Compare
|
@DataDog review |
🟢 Java Benchmark SLOs — All performance SLOs passed
PR vs. master results
Commit: Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion. |
There was a problem hiding this comment.
More details
Focused generated-query checks supported correct delimiter preservation across Java 21 and Java 8 decoder behavior, including bracketed queries. The completed static review returned no actionable findings.
🤖 Bits Code Review · Commit 627effe
What Does This Do
Preserve
%26and%23in otherwise decoded query strings so encoded value characters retain their parameter and fragment boundaries. Apply this to HTTP client spans and to server spans whenhttp.server.raw.query-string=falseand raw queries are available.Motivation
Decoding
token=first%26SECOND_HALF&view=fullbefore redaction turned%26into a literal&, causing sensitive parameter redaction to stop early and exposeSECOND_HALFinhttp.queryandhttp.url. The query now becomes<redacted>&view=full, while encoded parameter names remain decoded for sensitive-name matching.Additional Notes
Java has used decoded client queries (
URI.getQuery()) since query tagging was introduced in 2019, before query obfuscation was added in 2022. The obfuscator can process raw queries, as other tracers do, but switching togetRawQuery()would change reported tag values and the input seen by custom obfuscation regexes. This fix preserves the existing decoded representation while retaining encoded delimiters, and continues to decode parameter names such ast%6fkenfor sensitive-name matching. Server spans already support raw queries; this change covers the explicitly decoded mode when raw queries are available.Formatting checks passed for
internal-api,dd-trace-core, andagent-bootstrap. Targeted tests passed:URIUtilsTestQueryObfuscatorTestHttpClientDecoratorTestandHttpServerDecoratorTestHttpClientQueryRedactionForkedTest, including assertions on the written span'shttp.queryandhttp.urlContributor Checklist