Split
Use Split with the Flags SDK
Split can be used with the Flags SDK through OpenFeature. Set up the Flags SDK adapter for OpenFeature, along with the Split OpenFeature provider to get started.
Installation
Install the following packages:
npm install flags @flags-sdk/openfeature @splitsoftware/openfeature-js-split-provider @openfeature/js-sdk @splitsoftware/splitioSetup
Set up your Split OpenFeature provider as a Flags SDK adapter.
// adapter.ts
import { OpenFeature } from "@openfeature/server-sdk";
import { createOpenFeatureAdapter } from "@flags-sdk/openfeature";
import { OpenFeature } from "@openfeature/js-sdk";
import { SplitFactory } from "@splitsoftware/splitio";
import { OpenFeatureSplitProvider } from "@splitsoftware/openfeature-js-split-provider";
export const openFeatureAdapter = createOpenFeatureAdapter(async () => {
const authorizationKey = 'your auth key';
const splitClient = SplitFactory({core: { authorizationKey }}).client();
const provider = new OpenFeatureSplitProvider({ splitClient });
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
Split 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.