Skip to content

feat(core): Rename inboundFiltersIntegration to eventFiltersIntegration #15434

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Feb 26, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {
defaultStackParser,
functionToStringIntegration,
httpContextIntegration,
inboundFiltersIntegration,
eventFiltersIntegration,
linkedErrorsIntegration,
makeFetchTransport,
} from '@sentry/browser';
Expand All @@ -16,7 +16,7 @@ const integrations = [
functionToStringIntegration(),
dedupeIntegration(),
httpContextIntegration(),
inboundFiltersIntegration(),
eventFiltersIntegration(),
linkedErrorsIntegration(),
];

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ sentryTest('allows to setup a client manually & capture exceptions', async ({ ge
environment: 'local',
release: '0.0.1',
sdk: {
integrations: ['Breadcrumbs', 'FunctionToString', 'Dedupe', 'HttpContext', 'InboundFilters', 'LinkedErrors'],
integrations: ['Breadcrumbs', 'FunctionToString', 'Dedupe', 'HttpContext', 'EventFilters', 'LinkedErrors'],
name: 'sentry.javascript.browser',
version: expect.any(String),
packages: [{ name: expect.any(String), version: expect.any(String) }],
Expand Down
2 changes: 2 additions & 0 deletions packages/angular/src/sdk.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ export function getDefaultIntegrations(_options: BrowserOptions = {}): Integrati
// - https://github.com/getsentry/sentry-javascript/issues/5417#issuecomment-1453407097
// - https://github.com/getsentry/sentry-javascript/issues/2744
return [
// TODO(v10): Replace with `eventFiltersIntegration` once we remove the deprecated `inboundFiltersIntegration`
// eslint-disable-next-line deprecation/deprecation
inboundFiltersIntegration(),
functionToStringIntegration(),
breadcrumbsIntegration(),
Expand Down
2 changes: 2 additions & 0 deletions packages/astro/src/index.server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,9 @@ export {
graphqlIntegration,
hapiIntegration,
httpIntegration,
// eslint-disable-next-line deprecation/deprecation
inboundFiltersIntegration,
eventFiltersIntegration,
initOpenTelemetry,
isInitialized,
kafkaIntegration,
Expand Down
2 changes: 2 additions & 0 deletions packages/aws-serverless/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,9 @@ export {
localVariablesIntegration,
requestDataIntegration,
functionToStringIntegration,
// eslint-disable-next-line deprecation/deprecation
inboundFiltersIntegration,
eventFiltersIntegration,
linkedErrorsIntegration,
setMeasurement,
getActiveSpan,
Expand Down
2 changes: 2 additions & 0 deletions packages/browser/src/exports.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,9 @@ export {
withScope,
withIsolationScope,
functionToStringIntegration,
// eslint-disable-next-line deprecation/deprecation
inboundFiltersIntegration,
eventFiltersIntegration,
dedupeIntegration,
parameterize,
startSession,
Expand Down
2 changes: 2 additions & 0 deletions packages/browser/src/sdk.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ export function getDefaultIntegrations(_options: Options): Integration[] {
* `getDefaultIntegrations` but with an adjusted set of integrations.
*/
return [
// TODO(v10): Replace with `eventFiltersIntegration` once we remove the deprecated `inboundFiltersIntegration`
// eslint-disable-next-line deprecation/deprecation
inboundFiltersIntegration(),
functionToStringIntegration(),
browserApiErrorsIntegration(),
Expand Down
6 changes: 3 additions & 3 deletions packages/browser/test/index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';

import {
SDK_VERSION,
eventFiltersIntegration,
getGlobalScope,
getIsolationScope,
getReportDialogEndpoint,
inboundFiltersIntegration,
lastEventId,
} from '@sentry/core';
import * as utils from '@sentry/core';
Expand Down Expand Up @@ -304,12 +304,12 @@ describe('SentryBrowser', () => {
expect(localBeforeSend).toHaveBeenCalledTimes(2);
});

it('should use inboundfilter rules of bound client', async () => {
it('should use eventFilters rules of bound client', async () => {
const localBeforeSend = vi.fn();
const options = getDefaultBrowserClientOptions({
beforeSend: localBeforeSend,
dsn,
integrations: [inboundFiltersIntegration({ ignoreErrors: ['capture'] })],
integrations: [eventFiltersIntegration({ ignoreErrors: ['capture'] })],
});
const client = new BrowserClient(options);
setCurrentClient(client);
Expand Down
2 changes: 2 additions & 0 deletions packages/bun/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,9 @@ export {
requestDataIntegration,
fsIntegration,
functionToStringIntegration,
// eslint-disable-next-line deprecation/deprecation
inboundFiltersIntegration,
eventFiltersIntegration,
linkedErrorsIntegration,
setMeasurement,
getActiveSpan,
Expand Down
2 changes: 2 additions & 0 deletions packages/bun/src/sdk.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ export function getDefaultIntegrations(_options: Options): Integration[] {
// We return a copy of the defaultIntegrations here to avoid mutating this
return [
// Common
// TODO(v10): Replace with eventFiltersIntegration once we remove the deprecated `inboundFiltersIntegration`
// eslint-disable-next-line deprecation/deprecation
inboundFiltersIntegration(),
functionToStringIntegration(),
linkedErrorsIntegration(),
Expand Down
2 changes: 2 additions & 0 deletions packages/cloudflare/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,9 @@ export {
getSpanDescendants,
continueTrace,
functionToStringIntegration,
// eslint-disable-next-line deprecation/deprecation
inboundFiltersIntegration,
eventFiltersIntegration,
linkedErrorsIntegration,
requestDataIntegration,
extraErrorDataIntegration,
Expand Down
2 changes: 2 additions & 0 deletions packages/cloudflare/src/sdk.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ export function getDefaultIntegrations(options: CloudflareOptions): Integration[
const sendDefaultPii = options.sendDefaultPii ?? false;
return [
dedupeIntegration(),
// TODO(v10): Replace with `eventFiltersIntegration` once we remove the deprecated `inboundFiltersIntegration`
// eslint-disable-next-line deprecation/deprecation
inboundFiltersIntegration(),
functionToStringIntegration(),
linkedErrorsIntegration(),
Expand Down
4 changes: 3 additions & 1 deletion packages/core/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,9 @@ export {
export { DEFAULT_ENVIRONMENT } from './constants';
export { addBreadcrumb } from './breadcrumbs';
export { functionToStringIntegration } from './integrations/functiontostring';
export { inboundFiltersIntegration } from './integrations/inboundfilters';
// eslint-disable-next-line deprecation/deprecation
export { inboundFiltersIntegration } from './integrations/eventFilters';
export { eventFiltersIntegration } from './integrations/eventFilters';
export { linkedErrorsIntegration } from './integrations/linkederrors';
export { moduleMetadataIntegration } from './integrations/metadata';
export { requestDataIntegration } from './integrations/requestdata';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ const DEFAULT_IGNORE_ERRORS = [
/^Java exception was raised during method invocation$/, // error from Facebook Mobile browser (https://github.com/getsentry/sentry-javascript/issues/15065)
];

/** Options for the InboundFilters integration */
export interface InboundFiltersOptions {
/** Options for the EventFilters integration */
export interface EventFiltersOptions {
allowUrls: Array<string | RegExp>;
denyUrls: Array<string | RegExp>;
ignoreErrors: Array<string | RegExp>;
Expand All @@ -33,8 +33,9 @@ export interface InboundFiltersOptions {
disableErrorDefaults: boolean;
}

const INTEGRATION_NAME = 'InboundFilters';
const _inboundFiltersIntegration = ((options: Partial<InboundFiltersOptions> = {}) => {
const INTEGRATION_NAME = 'EventFilters';

const _eventFiltersIntegration = ((options: Partial<EventFiltersOptions> = {}) => {
return {
name: INTEGRATION_NAME,
processEvent(event, _hint, client) {
Expand All @@ -45,12 +46,48 @@ const _inboundFiltersIntegration = ((options: Partial<InboundFiltersOptions> = {
};
}) satisfies IntegrationFn;

export const inboundFiltersIntegration = defineIntegration(_inboundFiltersIntegration);
/**
* An integration that filters out events (errors and transactions) based on:
*
* - (Errors) A curated list of known low-value or irrelevant errors (see {@link DEFAULT_IGNORE_ERRORS})
* - (Errors) A list of error messages or urls/filenames passed in via
* - Top level Sentry.init options (`ignoreErrors`, `denyUrls`, `allowUrls`)
* - The same options passed to the integration directly via @param options
* - (Transactions/Spans) A list of root span (transaction) names passed in via
* - Top level Sentry.init option (`ignoreTransactions`)
* - The same option passed to the integration directly via @param options
*
* Events filtered by this integration will not be sent to Sentry.
*/
export const eventFiltersIntegration = defineIntegration(_eventFiltersIntegration);

/**
* An integration that filters out events (errors and transactions) based on:
*
* - (Errors) A curated list of known low-value or irrelevant errors (see {@link DEFAULT_IGNORE_ERRORS})
* - (Errors) A list of error messages or urls/filenames passed in via
* - Top level Sentry.init options (`ignoreErrors`, `denyUrls`, `allowUrls`)
* - The same options passed to the integration directly via @param options
* - (Transactions/Spans) A list of root span (transaction) names passed in via
* - Top level Sentry.init option (`ignoreTransactions`)
* - The same option passed to the integration directly via @param options
*
* Events filtered by this integration will not be sent to Sentry.
*
* @deprecated this integration was renamed and will be removed in a future major version.
* Use `eventFiltersIntegration` instead.
*/
export const inboundFiltersIntegration = defineIntegration(((options: Partial<EventFiltersOptions> = {}) => {
return {
...eventFiltersIntegration(options),
name: 'InboundFilters',
};
}) satisfies IntegrationFn);

function _mergeOptions(
internalOptions: Partial<InboundFiltersOptions> = {},
clientOptions: Partial<InboundFiltersOptions> = {},
): Partial<InboundFiltersOptions> {
internalOptions: Partial<EventFiltersOptions> = {},
clientOptions: Partial<EventFiltersOptions> = {},
): Partial<EventFiltersOptions> {
return {
allowUrls: [...(internalOptions.allowUrls || []), ...(clientOptions.allowUrls || [])],
denyUrls: [...(internalOptions.denyUrls || []), ...(clientOptions.denyUrls || [])],
Expand All @@ -64,7 +101,7 @@ function _mergeOptions(
};
}

function _shouldDropEvent(event: Event, options: Partial<InboundFiltersOptions>): boolean {
function _shouldDropEvent(event: Event, options: Partial<EventFiltersOptions>): boolean {
if (options.ignoreInternal && _isSentryError(event)) {
DEBUG_BUILD &&
logger.warn(`Event dropped due to being internal Sentry Error.\nEvent: ${getEventDescription(event)}`);
Expand Down
Loading
Loading