@flipt-io/flipt
v1.2.0
Published
Flipt Server SDK
Downloads
76,203
Readme
Flipt Node
This directory contains the TypeScript source code for the Flipt server-side client.
Documentation
API documentation is available at https://www.flipt.io/docs/reference/overview.
Installation
npm i @flipt-io/flipt@{version}
Usage
In your Node code you can import this client and use it as so:
import { FliptClient } from "@flipt-io/flipt";
const fliptClient = new FliptClient();
async function evaluate() {
const variantEvaluationResponse = await fliptClient.evaluation.variant({
namespaceKey: "default",
flagKey: "flag1",
entityId: "entity",
context: { fizz: "buzz" }
});
console.log(variantEvaluationResponse);
}
There is a more detailed example in the examples directory.
Metrics
There is support for Datadog RUM through this client. This allows you to track the values of feature flag evaluation and how it relates to active browser sessions.
You can first install the datadog RUM client like so:
npm install --save @datadog/browser-rum
To start tracking feature flags on Datadog:
import { datadogRum } from "@datadog/browser-rum";
import { FliptClient, FliptMetrics } from "@flipt-io/flipt";
datadogRum.init({
applicationId: "<APPLICATION_ID>",
clientToken: "<CLIENT_TOKEN>",
site: "datadoghq.com",
service: "<SERVICE_NAME>",
env: "<ENV_NAME>",
enableExperimentalFeatures: ["feature_flags"],
sessionSampleRate: 100,
sessionReplaySampleRate: 20,
trackUserInteractions: true,
trackResources: true,
trackLongTasks: true,
defaultPrivacyLevel: "mask-user-input"
});
datadogRum.startSessionReplayRecording();
const metricsClient = new FliptMetrics(
new FliptClient({
url: "http://localhost:8080"
}).evaluation,
datadogRum
);
const response = await metricsClient.variant({
namespaceKey: "default",
flagKey: "hello-this",
entityId: uuidv4(),
context: {}
});