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

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions