Skip to content

Commit 810eceb

Browse files
committed
feat(core): Rename queryParams to urlQueryParams
1 parent 0b88425 commit 810eceb

11 files changed

Lines changed: 60 additions & 24 deletions

File tree

packages/astro/test/server/middleware.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ describe('sentryMiddleware', () => {
6363
cookies: true,
6464
httpHeaders: { request: true, response: true },
6565
httpBodies: [],
66-
queryParams: true,
66+
urlQueryParams: true,
6767
genAI: { inputs: false, outputs: false },
6868
stackFrameVariables: true,
6969
frameContextLines: 5,

packages/core/src/integrations/requestdata.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ const _requestDataIntegration = ((options: RequestDataIntegrationOptions = {}) =
5656
data: true,
5757
headers: dataCollection.httpHeaders.request !== false,
5858
ip: dataCollection.userInfo,
59-
query_string: dataCollection.queryParams !== false,
59+
query_string: dataCollection.urlQueryParams !== false,
6060
// No dataCollection equivalent — URL is always included
6161
url: true,
6262
...options.include,

packages/core/src/types/datacollection.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,14 @@ export interface DataCollection {
4444
*/
4545
httpBodies?: HttpBodyCollectionTarget[];
4646

47+
/** @deprecated Use `urlQueryParams` instead. */
48+
queryParams?: CollectBehavior;
49+
4750
/**
48-
* Controls query parameter collection and sensitive value filtering.
51+
* Controls URL query parameter collection and sensitive value filtering.
4952
* @default true
5053
*/
51-
queryParams?: CollectBehavior;
54+
urlQueryParams?: CollectBehavior;
5255

5356
/**
5457
* Controls generative AI input/output recording.
@@ -75,7 +78,8 @@ export interface DataCollection {
7578
/**
7679
* Fully resolved `DataCollection` with all defaults applied.
7780
*/
78-
export type ResolvedDataCollection = Required<DataCollection> & {
81+
// todo(v11): change `Omit<DataCollection, 'queryParams'>` to just `DataCollection`
82+
export type ResolvedDataCollection = Required<Omit<DataCollection, 'queryParams'>> & {
7983
httpHeaders: Required<NonNullable<DataCollection['httpHeaders']>>;
8084
genAI: Required<NonNullable<DataCollection['genAI']>>;
8185
};

packages/core/src/utils/data-collection/defaultPiiToCollectionOptions.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export function defaultPiiToCollectionOptions(sendDefaultPii?: boolean): Resolve
1515
cookies: true,
1616
httpHeaders: { request: true, response: true },
1717
httpBodies: ['incomingRequest', 'outgoingRequest', 'incomingResponse', 'outgoingResponse'],
18-
queryParams: true,
18+
urlQueryParams: true,
1919
genAI: { inputs: true, outputs: true },
2020
stackFrameVariables: true,
2121
frameContextLines: 7, // default should be 5, but ContextLines integration uses 7
@@ -25,7 +25,7 @@ export function defaultPiiToCollectionOptions(sendDefaultPii?: boolean): Resolve
2525
cookies: { deny: PII_HEADER_SNIPPETS },
2626
httpHeaders: { request: { deny: PII_HEADER_SNIPPETS }, response: { deny: PII_HEADER_SNIPPETS } },
2727
httpBodies: [],
28-
queryParams: { deny: PII_HEADER_SNIPPETS },
28+
urlQueryParams: { deny: PII_HEADER_SNIPPETS },
2929
genAI: { inputs: false, outputs: false },
3030
stackFrameVariables: true,
3131
frameContextLines: 7, // default should be 5, but ContextLines integration uses 7

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ const DEFAULTS: ResolvedDataCollection = {
66
cookies: true,
77
httpHeaders: { request: true, response: true },
88
httpBodies: ['incomingRequest', 'outgoingRequest', 'incomingResponse', 'outgoingResponse'],
9-
queryParams: true,
9+
urlQueryParams: true,
1010
genAI: { inputs: true, outputs: true },
1111
stackFrameVariables: true,
1212
frameContextLines: 5,
@@ -42,7 +42,7 @@ export function resolveDataCollectionOptions(options: {
4242
response: dc.httpHeaders?.response ?? base.httpHeaders.response,
4343
},
4444
httpBodies: dc.httpBodies ?? base.httpBodies,
45-
queryParams: dc.queryParams ?? base.queryParams,
45+
urlQueryParams: dc.urlQueryParams ?? dc.queryParams ?? base.urlQueryParams,
4646
genAI: {
4747
inputs: dc.genAI?.inputs ?? base.genAI.inputs,
4848
outputs: dc.genAI?.outputs ?? base.genAI.outputs,

packages/core/test/lib/integrations/mcp-server/testUtils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export function createMockClient(userInfo = true, genAI?: { inputs: boolean; out
1616
cookies: true,
1717
httpHeaders: { request: true, response: true },
1818
httpBodies: [],
19-
queryParams: true,
19+
urlQueryParams: true,
2020
genAI: genAIOptions,
2121
stackFrameVariables: true,
2222
frameContextLines: 5,

packages/core/test/lib/utils/data-collection/defaultPiiToCollectionOptions.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ describe('defaultPiiToCollectionOptions', () => {
88
cookies: true,
99
httpHeaders: { request: true, response: true },
1010
httpBodies: ['incomingRequest', 'outgoingRequest', 'incomingResponse', 'outgoingResponse'],
11-
queryParams: true,
11+
urlQueryParams: true,
1212
genAI: { inputs: true, outputs: true },
1313
stackFrameVariables: true,
1414
frameContextLines: 7,
@@ -24,7 +24,7 @@ describe('defaultPiiToCollectionOptions', () => {
2424
response: { deny: ['forwarded', '-ip', 'remote-', 'via', '-user'] },
2525
},
2626
httpBodies: [],
27-
queryParams: { deny: ['forwarded', '-ip', 'remote-', 'via', '-user'] },
27+
urlQueryParams: { deny: ['forwarded', '-ip', 'remote-', 'via', '-user'] },
2828
genAI: { inputs: false, outputs: false },
2929
stackFrameVariables: true,
3030
frameContextLines: 7,
@@ -40,7 +40,7 @@ describe('defaultPiiToCollectionOptions', () => {
4040
response: { deny: ['forwarded', '-ip', 'remote-', 'via', '-user'] },
4141
},
4242
httpBodies: [],
43-
queryParams: { deny: ['forwarded', '-ip', 'remote-', 'via', '-user'] },
43+
urlQueryParams: { deny: ['forwarded', '-ip', 'remote-', 'via', '-user'] },
4444
genAI: { inputs: false, outputs: false },
4545
stackFrameVariables: true,
4646
frameContextLines: 7,
@@ -56,7 +56,7 @@ describe('defaultPiiToCollectionOptions', () => {
5656
response: { deny: ['forwarded', '-ip', 'remote-', 'via', '-user'] },
5757
},
5858
httpBodies: [],
59-
queryParams: { deny: ['forwarded', '-ip', 'remote-', 'via', '-user'] },
59+
urlQueryParams: { deny: ['forwarded', '-ip', 'remote-', 'via', '-user'] },
6060
genAI: { inputs: false, outputs: false },
6161
stackFrameVariables: true,
6262
frameContextLines: 7,

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

Lines changed: 39 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ describe('resolveDataCollectionOptions', () => {
77
cookies: true,
88
httpHeaders: { request: true, response: true },
99
httpBodies: ['incomingRequest', 'outgoingRequest', 'incomingResponse', 'outgoingResponse'],
10-
queryParams: true,
10+
urlQueryParams: true,
1111
genAI: { inputs: true, outputs: true },
1212
stackFrameVariables: true,
1313
frameContextLines: 5,
@@ -44,7 +44,7 @@ describe('resolveDataCollectionOptions', () => {
4444
expect(result.cookies).toBe(true);
4545
expect(result.httpHeaders).toEqual({ request: true, response: true });
4646
expect(result.httpBodies).toEqual(['incomingRequest', 'outgoingRequest', 'incomingResponse', 'outgoingResponse']);
47-
expect(result.queryParams).toBe(true);
47+
expect(result.urlQueryParams).toBe(true);
4848
expect(result.genAI).toEqual({ inputs: true, outputs: true });
4949
});
5050

@@ -86,7 +86,7 @@ describe('resolveDataCollectionOptions', () => {
8686
// Everything else is spec default
8787
expect(result.cookies).toBe(true);
8888
expect(result.httpHeaders).toEqual({ request: true, response: true });
89-
expect(result.queryParams).toBe(true);
89+
expect(result.urlQueryParams).toBe(true);
9090
expect(result.genAI).toEqual({ inputs: true, outputs: true });
9191
expect(result.stackFrameVariables).toBe(true);
9292
expect(result.frameContextLines).toBe(5);
@@ -124,14 +124,14 @@ describe('resolveDataCollectionOptions', () => {
124124
expect(result.cookies).toEqual({ deny: ['x-custom'] });
125125
});
126126

127-
it('supports turning off query params', () => {
127+
it('supports turning off URL query params', () => {
128128
const result = resolveDataCollectionOptions({
129129
dataCollection: {
130-
queryParams: false,
130+
urlQueryParams: false,
131131
},
132132
});
133133

134-
expect(result.queryParams).toBe(false);
134+
expect(result.urlQueryParams).toBe(false);
135135
});
136136
});
137137

@@ -146,12 +146,44 @@ describe('resolveDataCollectionOptions', () => {
146146
expect(result).toHaveProperty('httpHeaders.request');
147147
expect(result).toHaveProperty('httpHeaders.response');
148148
expect(result).toHaveProperty('httpBodies');
149-
expect(result).toHaveProperty('queryParams');
149+
expect(result).toHaveProperty('urlQueryParams');
150150
expect(result).toHaveProperty('genAI');
151151
expect(result).toHaveProperty('genAI.inputs');
152152
expect(result).toHaveProperty('genAI.outputs');
153153
expect(result).toHaveProperty('stackFrameVariables');
154154
expect(result).toHaveProperty('frameContextLines');
155155
});
156156
});
157+
158+
describe('deprecated queryParams alias', () => {
159+
it('honors deprecated queryParams when urlQueryParams is not set', () => {
160+
expect(resolveDataCollectionOptions({ dataCollection: { queryParams: false } }).urlQueryParams).toBe(false);
161+
162+
expect(
163+
resolveDataCollectionOptions({ dataCollection: { queryParams: { deny: ['token'] } } }).urlQueryParams,
164+
).toEqual({ deny: ['token'] });
165+
});
166+
167+
it('prefers urlQueryParams over the deprecated queryParams when both are set', () => {
168+
// new field wins, even when it is the "off" value
169+
expect(
170+
resolveDataCollectionOptions({ dataCollection: { urlQueryParams: false, queryParams: true } }).urlQueryParams,
171+
).toBe(false);
172+
173+
expect(
174+
resolveDataCollectionOptions({ dataCollection: { urlQueryParams: true, queryParams: false } }).urlQueryParams,
175+
).toBe(true);
176+
});
177+
178+
it('falls back to the default when neither is set', () => {
179+
// dataCollection provided → spec default (collect)
180+
expect(resolveDataCollectionOptions({ dataCollection: {} }).urlQueryParams).toBe(true);
181+
});
182+
183+
it('does not leak the deprecated queryParams key into the resolved output', () => {
184+
const result = resolveDataCollectionOptions({ dataCollection: { queryParams: false } });
185+
expect(result).not.toHaveProperty('queryParams');
186+
expect(Object.keys(result)).toHaveLength(8);
187+
});
188+
});
157189
});

packages/core/test/lib/utils/request.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -873,7 +873,7 @@ describe('request utils', () => {
873873
cookies: true,
874874
httpHeaders: { request: true, response: true },
875875
httpBodies: [],
876-
queryParams: true,
876+
urlQueryParams: true,
877877
genAI: { inputs: true, outputs: true },
878878
stackFrameVariables: true,
879879
frameContextLines: 5,

packages/nuxt/test/runtime/hooks/wrapMiddlewareHandler.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ describe('wrapMiddlewareHandlerWithSentry', () => {
4646
cookies: true,
4747
httpHeaders: { request: true, response: true },
4848
httpBodies: [],
49-
queryParams: true,
49+
urlQueryParams: true,
5050
genAI: { inputs: false, outputs: false },
5151
stackFrameVariables: true,
5252
frameContextLines: 5,

0 commit comments

Comments
 (0)