GitHub

FeatBit

Use FeatBit with the Flags SDK

FeatBit can be used with the Flags SDK through OpenFeature. Set up the Flags SDK adapter for OpenFeature, along with the FeatBit OpenFeature provider to get started.

Installation

Install the following packages:

npm install flags @flags-sdk/openfeature @featbit/node-server-sdk @featbit/openfeature-provider-node-server

Setup

Set up your FeatBit OpenFeature provider as a Flags SDK adapter.

// adapter.ts
import { OpenFeature } from "@openfeature/server-sdk";
import { createOpenFeatureAdapter } from "@flags-sdk/openfeature";
import { FbProvider } from '@featbit/openfeature-provider-node-server';
 
export const openFeatureAdapter = createOpenFeatureAdapter(async () => {
  const provider = new FbProvider({
    sdkKey: '<your-sdk-key>',
    streamingUri: '<your-streaming-uri>',
    eventsUri: '<your-events-uri>'
  });
  await OpenFeature.setProviderAndWait(provider);
  return OpenFeature.getClient();
});

See the OpenFeature adapter for more details.

Usage

Use your newly configured adapter when declaring flags.

// flags.ts
import { flag } from "flags/next";
import type { EvaluationContext } from "@openfeature/server-sdk";
import { openFeatureAdapter } from "./adapter";
 
export const exampleFlag = flag<boolean, EvaluationContext>({
  key: "example-flag",
  defaultValue: false,
  adapter: openFeatureAdapter.booleanValue(),
});

Resources

Flags SDK adapter for OpenFeature

FeatBit OpenFeature Provider

Note that OpenFeature providers may require additional configuration for optimal performance and compatibility. Setup instructions are provided on a best effort basis. Refer to each provider's own documentation.

If there is a native Flags SDK adapter for your provider, we recommend using that instead. Native Flags SDK adapters tune your flag provider's SDK for optimal performance and integrate with Flags Explorer and Edge Config. See available adapters.

If you are a feature flag provider interested in developing a native adapter please open a GitHub issue to get in touch.