feat(core): Data Collection - #5759
Conversation
|
📲 Install BuildsAndroid
|
Filter automatically captured request and response cookies according to the Data Collection policy across Spring and HTTP client integrations. Preserve existing sendDefaultPii behavior when Data Collection is absent. Co-Authored-By: Claude <noreply@anthropic.com>
Gate automatic user and device identity enrichment across core, Android, and Spring integrations with the Data Collection policy. Preserve legacy sendDefaultPii and Android installation identity behavior when Data Collection is absent. Co-Authored-By: Claude <noreply@anthropic.com>
Replace malformed request cookie pairs and invalid Set-Cookie values with the filtered placeholder. Preserve valid empty values, padded values, and response cookie attributes. Co-Authored-By: Claude <noreply@anthropic.com>
Keep mocked OkHttp responses consistent with the non-null headers contract so failed-request capture can inspect response cookies. Co-Authored-By: Claude <noreply@anthropic.com>
Store DeviceInfoUtil on each SentryAndroidOptions instance so repeated SDK initializations cannot reuse stale collection policy or Android services. Preserve lazy initialization while allowing old and new clients to retain their own device context. Refs #5666 Co-Authored-By: Claude <noreply@anthropic.com>
Let nullable Session Replay network options inherit matching Data Collection settings while preserving historical Replay defaults when Data Collection is absent. Keep explicit Replay options authoritative and apply the effective policies to OkHttp network details. Co-Authored-By: Claude <noreply@anthropic.com>
Generate the default Android installation ID after programmatic configuration and only when the resolved user information policy allows it. Preserve custom distinct IDs and keep legacy behavior when Data Collection is absent. Refs #5666 Co-Authored-By: Claude <noreply@anthropic.com>
Make KeyValueCollectionBehavior JavaBean-bindable so Spring Boot properties correctly configure cookie, header, and query policies. Cover binding across all supported Spring Boot generations. Co-Authored-By: Claude <noreply@anthropic.com>
Bring the latest base branch fixes into the cookie policy branch. Co-Authored-By: Claude <noreply@anthropic.com>
Move Data Collection and legacy cookie policy selection into CookieUtils. Remove duplicated wrappers from OkHttp, Ktor, and Apollo integrations. Co-Authored-By: Claude <noreply@anthropic.com>
Bring the latest base branch fixes into this stacked branch. Co-Authored-By: Claude <noreply@anthropic.com>
Bring the latest base branch fixes into this stacked branch. Co-Authored-By: Claude <noreply@anthropic.com>
Bring the latest base branch fixes into this stacked branch. Co-Authored-By: Claude <noreply@anthropic.com>
Bring the latest base branch fixes into this stacked branch. Co-Authored-By: Claude <noreply@anthropic.com>
Bring the latest base branch fixes into this stacked branch. Co-Authored-By: Claude <noreply@anthropic.com>
Bring the latest base branch fixes into this stacked branch. Co-Authored-By: Claude <noreply@anthropic.com>
Bring the latest base branch fixes into this stacked branch. Co-Authored-By: Claude <noreply@anthropic.com>
Bring the latest base branch fixes into this stacked branch. Co-Authored-By: Claude <noreply@anthropic.com>
Bring the latest base branch fixes into this stacked branch. Co-Authored-By: Claude <noreply@anthropic.com>
Bring the latest base branch fixes into this stacked branch. Co-Authored-By: Claude <noreply@anthropic.com>
feat(http): [Data Collection 13] Apply cookie collection policy
feat(user): [Data Collection 14] Apply user information policy
…fo-options fix(android): [Data Collection 15] Scope device info cache to SDK options
🚨 Detected changes in high risk code 🚨High-risk code has higher potential to break the SDK and may be hard to test. To prevent severe bugs, apply the rollout process for releasing such changes and be extra careful when changing and reviewing these files:
|
…replay-network-options test(replay): [Data Collection 16] Keep Replay independent
🚨 Detected changes in high risk code 🚨High-risk code has higher potential to break the SDK and may be hard to test. To prevent severe bugs, apply the rollout process for releasing such changes and be extra careful when changing and reviewing these files:
|
1 similar comment
🚨 Detected changes in high risk code 🚨High-risk code has higher potential to break the SDK and may be hard to test. To prevent severe bugs, apply the rollout process for releasing such changes and be extra careful when changing and reviewing these files:
|
…nding fix(spring): [Data Collection 18] Bind key-value policies
…installation-id fix(android): [Data Collection 19] Preserve installation ID
…-description fix(ktor): [Data Collection 20] Exclude query parameters from span descriptions
…-options feat(core): [Data Collection 21] Add external configuration
…manifest feat(android): [Data Collection 22] Add manifest configuration
…-urls fix(core): [Data Collection 23] Support WebSocket URL parsing
…tches fix(core): [Data Collection 24] Narrow utility exception handling
Describe Data Collection defaults, migration from sendDefaultPii, and the supported configuration mechanisms. Include examples for key-value filtering and HTTP body selection so users can adopt the new controls safely. Refs #5666 Co-Authored-By: Claude <noreply@anthropic.com>
| public fun <init> ()V | ||
| public fun <init> (Z)V | ||
| public fun getCookies ()Lio/sentry/KeyValueCollectionBehavior; | ||
| public fun getDatabaseQueryData ()Ljava/lang/Boolean; |
There was a problem hiding this comment.
Based on this API (and the corresponding test) it looks like we have a mismatch between the types on the getters and setters.
The getters return a Boolean but the setters take a boolean which is inconsistent but also means the kotlin synthetic properties won't work.
PR Stack (Data Collection)
📜 Description
Collection PR for the Data Collection stack. The individual PRs add the configuration model, resolution and compatibility bridge, external configuration, filtering, and integration enforcement.
Squash-merge this PR into
mainonly after every stack PR has been merged into this branch using merge commits.💡 Motivation and Context
Introduce the specification-defined
dataCollectionconfiguration while preserving existingsendDefaultPiibehavior for users who do not opt into the new namespace.Refs #5666
💚 How did you test it?
This collection branch contains only an empty commit. Each stack PR carries its own tests.
📝 Checklist
sendDefaultPIIis enabled.🔮 Next steps
Merge the Data Collection stack into this branch in order, then squash-merge this PR into
main.#skip-changelog