Skip to content

Commit

Permalink
feat(core): Rename inboundFiltersIntegration to `eventFiltersIntegr…
Browse files Browse the repository at this point in the history
…ation` (#15434)

Deprecate and rename the `inboundFiltersIntegration` to
`eventFiltersIntegration` to improve the integration name and avoid
ambiguity with the product.
  • Loading branch information
Lms24 authored Feb 26, 2025
1 parent 082e0e8 commit e781ebe
Show file tree
Hide file tree
Showing 27 changed files with 165 additions and 77 deletions.
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

0 comments on commit e781ebe

Please sign in to comment.