Skip to content

Commit fb15afb

Browse files
ref(core): Rename dataCollection.defaults to unlisted
`defaults` reads like "the default values". `unlisted: 'default' | 'off'` names what the option controls: fields not listed in `dataCollection`.
1 parent 10e3d7d commit fb15afb

5 files changed

Lines changed: 21 additions & 21 deletions

File tree

‎MIGRATION.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -209,13 +209,13 @@ Sentry.init({});
209209

210210
#### If you want to keep the v10 default behavior
211211

212-
Set `defaults: 'off'` and turn on only what v10 collected. **Don't leave `dataCollection` unset** — that now enables broader collection.
212+
Set `unlisted: 'off'` and list only what v10 collected. **Don't leave `dataCollection` unset** — that now enables broader collection.
213213

214214
```js
215215
// v11 — preserves the v10 default
216216
Sentry.init({
217217
dataCollection: {
218-
defaults: 'off',
218+
unlisted: 'off',
219219
httpHeaders: { deny: ['forwarded', '-ip', 'remote-', 'via', '-user'] },
220220
urlQueryParams: { deny: ['forwarded', '-ip', 'remote-', 'via', '-user'] },
221221
stackFrameVariables: true,
@@ -224,7 +224,7 @@ Sentry.init({
224224
});
225225
```
226226

227-
With `defaults: 'off'`, every field you don't set collects nothing. This includes fields added in later minor releases, so upgrading never starts collecting new data on its own.
227+
With `unlisted: 'off'`, every field you don't list collects nothing. This includes fields added in later minor releases, so upgrading never starts collecting new data on its own. A field you do list is collected as configured: here, `httpHeaders` and `urlQueryParams` are collected except for the keys in their `deny` lists.
228228

229229
Each key-value field (`cookies`, `urlQueryParams`, `httpHeaders.request`, `httpHeaders.response`) accepts
230230
`true`, `false`, `{ allow: string[] }`, or `{ deny: string[] }` for fine-grained control.

‎packages/core/src/types/datacollection.ts‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,18 @@ export interface HttpHeadersCollection {
2121
/**
2222
* Controls what data the SDK collects and sends to Sentry.
2323
*
24-
* All fields are optional. Omitted fields use the documented defaults, or collect nothing when `defaults` is `'off'`.
24+
* All fields are optional. Omitted fields use the documented defaults, or collect nothing when `unlisted` is `'off'`.
2525
*/
2626
export interface DataCollection {
2727
/**
28-
* The value used for every field that is not set.
28+
* What the SDK collects for every field you don't list in `dataCollection`.
2929
*
30-
* - `'on'`: Unset fields use their documented defaults.
31-
* - `'off'`: Unset fields collect nothing. This also applies to fields added in future releases, so
30+
* - `'default'`: Unlisted fields use their documented defaults.
31+
* - `'off'`: Unlisted fields collect nothing. This also applies to fields added in future releases, so
3232
* only the data you turn on explicitly is collected.
33-
* @default 'on'
33+
* @default 'default'
3434
*/
35-
defaults?: 'on' | 'off';
35+
unlisted?: 'default' | 'off';
3636

3737
/**
3838
* Automatically populate `user.*` fields from instrumentation sources.
@@ -153,7 +153,7 @@ export interface DataCollection {
153153
/**
154154
* Fully resolved `DataCollection` with all defaults applied.
155155
*/
156-
export type ResolvedDataCollection = Required<Omit<DataCollection, 'httpHeaders' | 'defaults'>> & {
156+
export type ResolvedDataCollection = Required<Omit<DataCollection, 'httpHeaders' | 'unlisted'>> & {
157157
httpHeaders: Required<HttpHeadersCollection>;
158158
graphQL: Required<NonNullable<DataCollection['graphQL']>>;
159159
genAI: Required<NonNullable<DataCollection['genAI']>>;

‎packages/core/src/utils/data-collection/resolveDataCollectionOptions.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,12 +61,12 @@ function resolveHttpHeaders(
6161
* Resolves the effective `DataCollection` configuration from client options.
6262
*
6363
* Precedence:
64-
* 1. Spec defaults, or all collection turned off when `dataCollection.defaults` is `'off'`
64+
* 1. Spec defaults, or all collection turned off when `dataCollection.unlisted` is `'off'`
6565
* 2. Fields explicitly set in `dataCollection`
6666
*/
6767
export function resolveDataCollectionOptions(options: { dataCollection?: DataCollection }): ResolvedDataCollection {
6868
const dc = options.dataCollection ?? {};
69-
const base = dc.defaults === 'off' ? OFF : DEFAULTS;
69+
const base = dc.unlisted === 'off' ? OFF : DEFAULTS;
7070

7171
return {
7272
userInfo: dc.userInfo ?? base.userInfo,

‎packages/core/test/lib/integrations/mcp-server/capturePolicy.test.ts‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -448,10 +448,10 @@ describe('MCP Server Capture Policy', () => {
448448
{ mcp: { inputs: true }, genAI: { inputs: false, outputs: false } },
449449
{ inputs: true, outputs: false },
450450
],
451-
["records nothing with defaults: 'off'", { defaults: 'off' }, { inputs: false, outputs: false }],
451+
["records nothing with unlisted: 'off'", { unlisted: 'off' }, { inputs: false, outputs: false }],
452452
[
453-
"falls back to genAI with defaults: 'off'",
454-
{ defaults: 'off', genAI: { inputs: true } },
453+
"falls back to genAI with unlisted: 'off'",
454+
{ unlisted: 'off', genAI: { inputs: true } },
455455
{ inputs: true, outputs: false },
456456
],
457457
])('%s', async (_, dataCollection, expected) => {

‎packages/core/test/lib/utils/data-collection/resolveDataCollectionOptions.test.ts‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ describe('resolveDataCollectionOptions', () => {
224224
});
225225
});
226226

227-
describe('defaults', () => {
227+
describe('unlisted', () => {
228228
const ALL_OFF = {
229229
userInfo: false,
230230
cookies: false,
@@ -241,13 +241,13 @@ describe('resolveDataCollectionOptions', () => {
241241
};
242242

243243
it('turns off every field that is not set', () => {
244-
expect(resolveDataCollectionOptions({ dataCollection: { defaults: 'off' } })).toEqual(ALL_OFF);
244+
expect(resolveDataCollectionOptions({ dataCollection: { unlisted: 'off' } })).toEqual(ALL_OFF);
245245
});
246246

247247
it('keeps fields that are set explicitly', () => {
248248
const result = resolveDataCollectionOptions({
249249
dataCollection: {
250-
defaults: 'off',
250+
unlisted: 'off',
251251
genAI: { inputs: true },
252252
urlQueryParams: { deny: ['token'] },
253253
frameContextLines: 7,
@@ -264,13 +264,13 @@ describe('resolveDataCollectionOptions', () => {
264264

265265
it('turns off the unset httpHeaders direction', () => {
266266
expect(
267-
resolveDataCollectionOptions({ dataCollection: { defaults: 'off', httpHeaders: { request: true } } })
267+
resolveDataCollectionOptions({ dataCollection: { unlisted: 'off', httpHeaders: { request: true } } })
268268
.httpHeaders,
269269
).toEqual({ request: true, response: false });
270270
});
271271

272-
it("uses spec defaults with defaults: 'on'", () => {
273-
expect(resolveDataCollectionOptions({ dataCollection: { defaults: 'on' } })).toEqual(SPEC_DEFAULTS);
272+
it("uses spec defaults with unlisted: 'default'", () => {
273+
expect(resolveDataCollectionOptions({ dataCollection: { unlisted: 'default' } })).toEqual(SPEC_DEFAULTS);
274274
});
275275
});
276276

0 commit comments

Comments
 (0)