diff --git a/docs/platforms/javascript/common/configuration/integrations/unleash.mdx b/docs/platforms/javascript/common/configuration/integrations/unleash.mdx new file mode 100644 index 00000000000000..765f61b3f24408 --- /dev/null +++ b/docs/platforms/javascript/common/configuration/integrations/unleash.mdx @@ -0,0 +1,40 @@ +--- +title: Unleash +description: "Learn how to use Sentry with Unleash." +notSupported: + - javascript.aws-lambda + - javascript.azure-functions + - javascript.bun + - javascript.capacitor + - javascript.cloudflare + - javascript.connect + - javascript.cordova + - javascript.deno + - javascript.electron + - javascript.express + - javascript.fastify + - javascript.gcp-functions + - javascript.hapi + - javascript.koa + - javascript.nestjs + - javascript.nodejs + - javascript.wasm +--- + + + + + +This integration only works inside a browser environment. It is only available from a package-based install (e.g. `npm` or `yarn`). + + + +The [Unleash](https://www.getunleash.io/) integration tracks feature flag evaluations produced by the Unleash SDK. These evaluations are held in memory, and in the event an error occurs, sent to Sentry for review and analysis. **At the moment, we only support boolean flag evaluations.** This integration is available in Sentry SDK **versions 8.51.0 or higher.** + +_Import names: `Sentry.unleashIntegration`_ + + + +Visit the Sentry website and confirm that your error event has recorded the feature flag "test-flag" and its value "false". + + diff --git a/platform-includes/configuration/integrations/javascript.mdx b/platform-includes/configuration/integrations/javascript.mdx index ba419ec70729c6..fc3a8d3d4954ea 100644 --- a/platform-includes/configuration/integrations/javascript.mdx +++ b/platform-includes/configuration/integrations/javascript.mdx @@ -24,3 +24,4 @@ | [`replayCanvasIntegration`](./replaycanvas) | | | | ✓ | | | [`reportingObserverIntegration`](./reportingobserver) | | ✓ | | | | | [`sessionTimingIntegration`](./sessiontiming) | | | | | ✓ | +| [`unleashIntegration`](./unleash) | | | | | ✓ | diff --git a/platform-includes/configuration/unleash/javascript.ember.mdx b/platform-includes/configuration/unleash/javascript.ember.mdx new file mode 100644 index 00000000000000..e053ce33712aaa --- /dev/null +++ b/platform-includes/configuration/unleash/javascript.ember.mdx @@ -0,0 +1,24 @@ +Before using this integration, you need to install and instrument Unleash in your app. Learn more by reading [Unleash's SDK reference](https://docs.getunleash.io/reference/sdks/javascript-browser) and [quickstart](https://docs.getunleash.io/quickstart). + +```javascript +import * as Sentry from '@sentry/ember'; +import { UnleashClient } from 'unleash-proxy-client'; + +Sentry.init({ + dsn: '___PUBLIC_DSN___', + integrations: [Sentry.unleashIntegration({unleashClientClass: UnleashClient})], +}); + +const unleash = new UnleashClient({ + url: 'https:///api/frontend', + clientKey: '', + appName: 'my-webapp', +}); + +unleash.start(); + +// Evaluate a flag with a default value. You may have to wait for your client to synchronize first. +unleash.isEnabled('test-flag'); + +Sentry.captureException(new Error('Something went wrong!')); +``` diff --git a/platform-includes/configuration/unleash/javascript.gatsby.mdx b/platform-includes/configuration/unleash/javascript.gatsby.mdx new file mode 100644 index 00000000000000..e04bcf48bba6bc --- /dev/null +++ b/platform-includes/configuration/unleash/javascript.gatsby.mdx @@ -0,0 +1,24 @@ +Before using this integration, you need to install and instrument Unleash in your app. Learn more by reading [Unleash's SDK reference](https://docs.getunleash.io/reference/sdks/javascript-browser) and [quickstart](https://docs.getunleash.io/quickstart). + +```javascript +import * as Sentry from '@sentry/gatsby'; +import { UnleashClient } from 'unleash-proxy-client'; + +Sentry.init({ + dsn: '___PUBLIC_DSN___', + integrations: [Sentry.unleashIntegration({unleashClientClass: UnleashClient})], +}); + +const unleash = new UnleashClient({ + url: 'https:///api/frontend', + clientKey: '', + appName: 'my-webapp', +}); + +unleash.start(); + +// Evaluate a flag with a default value. You may have to wait for your client to synchronize first. +unleash.isEnabled('test-flag'); + +Sentry.captureException(new Error('Something went wrong!')); +``` diff --git a/platform-includes/configuration/unleash/javascript.mdx b/platform-includes/configuration/unleash/javascript.mdx new file mode 100644 index 00000000000000..c818cedfdd040e --- /dev/null +++ b/platform-includes/configuration/unleash/javascript.mdx @@ -0,0 +1,24 @@ +Before using this integration, you need to install and instrument Unleash in your app. Learn more by reading [Unleash's SDK reference](https://docs.getunleash.io/reference/sdks/javascript-browser) and [quickstart](https://docs.getunleash.io/quickstart). + +```javascript +import * as Sentry from '@sentry/browser'; +import { UnleashClient } from 'unleash-proxy-client'; + +Sentry.init({ + dsn: '___PUBLIC_DSN___', + integrations: [Sentry.unleashIntegration({unleashClientClass: UnleashClient})], +}); + +const unleash = new UnleashClient({ + url: 'https:///api/frontend', + clientKey: '', + appName: 'my-webapp', +}); + +unleash.start(); + +// Evaluate a flag with a default value. You may have to wait for your client to synchronize first. +unleash.isEnabled('test-flag'); + +Sentry.captureException(new Error('Something went wrong!')); +``` diff --git a/platform-includes/configuration/unleash/javascript.nextjs.mdx b/platform-includes/configuration/unleash/javascript.nextjs.mdx new file mode 100644 index 00000000000000..6a3afd7ef2992a --- /dev/null +++ b/platform-includes/configuration/unleash/javascript.nextjs.mdx @@ -0,0 +1,24 @@ +Before using this integration, you need to install and instrument Unleash in your app. Learn more by reading [Unleash's SDK reference](https://docs.getunleash.io/reference/sdks/javascript-browser) and [quickstart](https://docs.getunleash.io/quickstart). + +```javascript +import * as Sentry from '@sentry/nextjs'; +import { UnleashClient } from 'unleash-proxy-client'; + +Sentry.init({ + dsn: '___PUBLIC_DSN___', + integrations: [Sentry.unleashIntegration({unleashClientClass: UnleashClient})], +}); + +const unleash = new UnleashClient({ + url: 'https:///api/frontend', + clientKey: '', + appName: 'my-webapp', +}); + +unleash.start(); + +// Evaluate a flag with a default value. You may have to wait for your client to synchronize first. +unleash.isEnabled('test-flag'); + +Sentry.captureException(new Error('Something went wrong!')); +``` diff --git a/platform-includes/configuration/unleash/javascript.nuxt.mdx b/platform-includes/configuration/unleash/javascript.nuxt.mdx new file mode 100644 index 00000000000000..a3bcd9dfb3696b --- /dev/null +++ b/platform-includes/configuration/unleash/javascript.nuxt.mdx @@ -0,0 +1,24 @@ +Before using this integration, you need to install and instrument Unleash in your app. Learn more by reading [Unleash's SDK reference](https://docs.getunleash.io/reference/sdks/javascript-browser) and [quickstart](https://docs.getunleash.io/quickstart). + +```javascript +import * as Sentry from '@sentry/nuxt'; +import { UnleashClient } from 'unleash-proxy-client'; + +Sentry.init({ + dsn: '___PUBLIC_DSN___', + integrations: [Sentry.unleashIntegration({unleashClientClass: UnleashClient})], +}); + +const unleash = new UnleashClient({ + url: 'https:///api/frontend', + clientKey: '', + appName: 'my-webapp', +}); + +unleash.start(); + +// Evaluate a flag with a default value. You may have to wait for your client to synchronize first. +unleash.isEnabled('test-flag'); + +Sentry.captureException(new Error('Something went wrong!')); +``` diff --git a/platform-includes/configuration/unleash/javascript.react.mdx b/platform-includes/configuration/unleash/javascript.react.mdx new file mode 100644 index 00000000000000..d1f31117c7e1a9 --- /dev/null +++ b/platform-includes/configuration/unleash/javascript.react.mdx @@ -0,0 +1,24 @@ +Before using this integration, you need to install and instrument Unleash in your app. Learn more by reading [Unleash's SDK reference](https://docs.getunleash.io/reference/sdks/javascript-browser) and [quickstart](https://docs.getunleash.io/quickstart). + +```javascript +import * as Sentry from '@sentry/react'; +import { UnleashClient } from 'unleash-proxy-client'; + +Sentry.init({ + dsn: '___PUBLIC_DSN___', + integrations: [Sentry.unleashIntegration({unleashClientClass: UnleashClient})], +}); + +const unleash = new UnleashClient({ + url: 'https:///api/frontend', + clientKey: '', + appName: 'my-webapp', +}); + +unleash.start(); + +// Evaluate a flag with a default value. You may have to wait for your client to synchronize first. +unleash.isEnabled('test-flag'); + +Sentry.captureException(new Error('Something went wrong!')); +``` diff --git a/platform-includes/configuration/unleash/javascript.remix.mdx b/platform-includes/configuration/unleash/javascript.remix.mdx new file mode 100644 index 00000000000000..192a3bfaa1db68 --- /dev/null +++ b/platform-includes/configuration/unleash/javascript.remix.mdx @@ -0,0 +1,24 @@ +Before using this integration, you need to install and instrument Unleash in your app. Learn more by reading [Unleash's SDK reference](https://docs.getunleash.io/reference/sdks/javascript-browser) and [quickstart](https://docs.getunleash.io/quickstart). + +```javascript +import * as Sentry from '@sentry/remix'; +import { UnleashClient } from 'unleash-proxy-client'; + +Sentry.init({ + dsn: '___PUBLIC_DSN___', + integrations: [Sentry.unleashIntegration({unleashClientClass: UnleashClient})], +}); + +const unleash = new UnleashClient({ + url: 'https:///api/frontend', + clientKey: '', + appName: 'my-webapp', +}); + +unleash.start(); + +// Evaluate a flag with a default value. You may have to wait for your client to synchronize first. +unleash.isEnabled('test-flag'); + +Sentry.captureException(new Error('Something went wrong!')); +``` diff --git a/platform-includes/configuration/unleash/javascript.solid.mdx b/platform-includes/configuration/unleash/javascript.solid.mdx new file mode 100644 index 00000000000000..ff8e03545c9eac --- /dev/null +++ b/platform-includes/configuration/unleash/javascript.solid.mdx @@ -0,0 +1,24 @@ +Before using this integration, you need to install and instrument Unleash in your app. Learn more by reading [Unleash's SDK reference](https://docs.getunleash.io/reference/sdks/javascript-browser) and [quickstart](https://docs.getunleash.io/quickstart). + +```javascript +import * as Sentry from '@sentry/solid'; +import { UnleashClient } from 'unleash-proxy-client'; + +Sentry.init({ + dsn: '___PUBLIC_DSN___', + integrations: [Sentry.unleashIntegration({unleashClientClass: UnleashClient})], +}); + +const unleash = new UnleashClient({ + url: 'https:///api/frontend', + clientKey: '', + appName: 'my-webapp', +}); + +unleash.start(); + +// Evaluate a flag with a default value. You may have to wait for your client to synchronize first. +unleash.isEnabled('test-flag'); + +Sentry.captureException(new Error('Something went wrong!')); +``` diff --git a/platform-includes/configuration/unleash/javascript.solidstart.mdx b/platform-includes/configuration/unleash/javascript.solidstart.mdx new file mode 100644 index 00000000000000..369cf7803e0d91 --- /dev/null +++ b/platform-includes/configuration/unleash/javascript.solidstart.mdx @@ -0,0 +1,24 @@ +Before using this integration, you need to install and instrument Unleash in your app. Learn more by reading [Unleash's SDK reference](https://docs.getunleash.io/reference/sdks/javascript-browser) and [quickstart](https://docs.getunleash.io/quickstart). + +```javascript +import * as Sentry from '@sentry/solidstart'; +import { UnleashClient } from 'unleash-proxy-client'; + +Sentry.init({ + dsn: '___PUBLIC_DSN___', + integrations: [Sentry.unleashIntegration({unleashClientClass: UnleashClient})], +}); + +const unleash = new UnleashClient({ + url: 'https:///api/frontend', + clientKey: '', + appName: 'my-webapp', +}); + +unleash.start(); + +// Evaluate a flag with a default value. You may have to wait for your client to synchronize first. +unleash.isEnabled('test-flag'); + +Sentry.captureException(new Error('Something went wrong!')); +``` diff --git a/platform-includes/configuration/unleash/javascript.svelte.mdx b/platform-includes/configuration/unleash/javascript.svelte.mdx new file mode 100644 index 00000000000000..eea7c36e709347 --- /dev/null +++ b/platform-includes/configuration/unleash/javascript.svelte.mdx @@ -0,0 +1,24 @@ +Before using this integration, you need to install and instrument Unleash in your app. Learn more by reading [Unleash's SDK reference](https://docs.getunleash.io/reference/sdks/javascript-browser) and [quickstart](https://docs.getunleash.io/quickstart). + +```javascript +import * as Sentry from '@sentry/svelte'; +import { UnleashClient } from 'unleash-proxy-client'; + +Sentry.init({ + dsn: '___PUBLIC_DSN___', + integrations: [Sentry.unleashIntegration({unleashClientClass: UnleashClient})], +}); + +const unleash = new UnleashClient({ + url: 'https:///api/frontend', + clientKey: '', + appName: 'my-webapp', +}); + +unleash.start(); + +// Evaluate a flag with a default value. You may have to wait for your client to synchronize first. +unleash.isEnabled('test-flag'); + +Sentry.captureException(new Error('Something went wrong!')); +``` diff --git a/platform-includes/configuration/unleash/javascript.sveltekit.mdx b/platform-includes/configuration/unleash/javascript.sveltekit.mdx new file mode 100644 index 00000000000000..2443707b188773 --- /dev/null +++ b/platform-includes/configuration/unleash/javascript.sveltekit.mdx @@ -0,0 +1,24 @@ +Before using this integration, you need to install and instrument Unleash in your app. Learn more by reading [Unleash's SDK reference](https://docs.getunleash.io/reference/sdks/javascript-browser) and [quickstart](https://docs.getunleash.io/quickstart). + +```javascript +import * as Sentry from '@sentry/sveltekit'; +import { UnleashClient } from 'unleash-proxy-client'; + +Sentry.init({ + dsn: '___PUBLIC_DSN___', + integrations: [Sentry.unleashIntegration({unleashClientClass: UnleashClient})], +}); + +const unleash = new UnleashClient({ + url: 'https:///api/frontend', + clientKey: '', + appName: 'my-webapp', +}); + +unleash.start(); + +// Evaluate a flag with a default value. You may have to wait for your client to synchronize first. +unleash.isEnabled('test-flag'); + +Sentry.captureException(new Error('Something went wrong!')); +``` diff --git a/platform-includes/configuration/unleash/javascript.vue.mdx b/platform-includes/configuration/unleash/javascript.vue.mdx new file mode 100644 index 00000000000000..e284125f818c5e --- /dev/null +++ b/platform-includes/configuration/unleash/javascript.vue.mdx @@ -0,0 +1,24 @@ +Before using this integration, you need to install and instrument Unleash in your app. Learn more by reading [Unleash's SDK reference](https://docs.getunleash.io/reference/sdks/javascript-browser) and [quickstart](https://docs.getunleash.io/quickstart). + +```javascript +import * as Sentry from '@sentry/vue'; +import { UnleashClient } from 'unleash-proxy-client'; + +Sentry.init({ + dsn: '___PUBLIC_DSN___', + integrations: [Sentry.unleashIntegration({unleashClientClass: UnleashClient})], +}); + +const unleash = new UnleashClient({ + url: 'https:///api/frontend', + clientKey: '', + appName: 'my-webapp', +}); + +unleash.start(); + +// Evaluate a flag with a default value. You may have to wait for your client to synchronize first. +unleash.isEnabled('test-flag'); + +Sentry.captureException(new Error('Something went wrong!')); +```