Skip to content

Make it easier to opt-out of default integrations #14950

@mydea

Description

@mydea

Description

Today, it is rather annoying to opt-out of individual default integrations. You have to do something like this:

Sentry.init({
  integrations: (integrations) => integrations.filter(integration => intergation.name !== 'InboundFilters')
});

This becomes even more annoying when you also want to add pluggable intergations, as then instead of this: integrations: [Sentry.replayIntegration()] you suddenly have to do this:

Sentry.init({
  integrations: (integrations) => {
    integrations.push(Sentry.replayIntegration);
    return integrations.filter(integration => intergation.name !== 'InboundFilters');
  }
});

which really does not feel ideal.

I propose to add a new way to disable individual default integrations, similar to how https://www.npmjs.com/package/@opentelemetry/auto-instrumentations-node does this:

You can fully opt-out of default integrations via defaultIntegrations: false. In addition to this, we can allow users to pass an object, which allows to disable individual keys:

Sentry.init({
  defaultIntegrations: {
    'InboundFilters': false,
    'GlobalHandlers': false
  },
  // you can then continue to add integrations as normally
  integrations: [Sentry.replayIntegration()]
});

This would be backwards compatible, but simply be a new and easier way to solve this problem.

Metadata

Metadata

Assignees

No one assigned
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions