Skip to content

DataCollection phase 1: add option types (no-op) #5425

Description

@jamescrosswell

Part of #5420. Phase 1 — foundation.

Add the public option shape as a no-op (nothing wired yet), mirroring the spec with .NET idioms:

  • SentryOptions.DataCollection → new DataCollectionOptions class: UserInfo, Cookies, HttpHeaders (Request/Response), HttpBodies, UrlQueryParams, GraphQL (Document/Variables), GenAI (Inputs/Outputs), DatabaseQueryData, Queues, StackFrameVariables, FrameContextLines. All properties optional/nullable (unset = fall through to defaults/bridge).
  • KeyValueCollectionBehavior with static factories: Off, DenyList(params string[] extraTerms), AllowList(params string[] keys) (JS simplified the spec's mode: shape to boolean | {allow} | {deny}; we should pick an idiomatic equivalent).
  • [Flags] HttpBodyTypes enum: None, IncomingRequest, OutgoingRequest, IncomingResponse, OutgoingResponse, All.
  • Use final spec names from day one (JS had to rename queryParamsurlQueryParams post-ship: getsentry/sentry-javascript#22217). Include Queues/StackFrameVariables/FrameContextLines even though managed code can't act on them yet (forwarded to native later; late category additions forced JS re-gating: getsentry/sentry-javascript#22219).
  • Regenerate API approval files (test/**/ApiApprovalTests.Run.*.verified.txt).

JS reference: packages/core/src/types/datacollection.ts (getsentry/sentry-javascript#20965).

Metadata

Metadata

Assignees

No one assigned

    Labels

    FeatureNew feature or requestpublic APIAdditions/modifications to, or removals from, the public API surface area.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions