Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@flipt-io/flipt

Package Overview
Dependencies
Maintainers
1
Versions
28
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@flipt-io/flipt

[![npm](https://img.shields.io/npm/v/@flipt-io/flipt?label=%40flipt-io%2Fflipt)](https://www.npmjs.com/package/@flipt-io/flipt)

  • 0.2.17
  • npm
  • Socket score

Version published
Weekly downloads
14K
decreased by-9.97%
Maintainers
1
Weekly downloads
 
Created
Source

Flipt Node Library

npm

Documentation

API documentation is available at https://www.flipt.io/docs/reference/overview.

Breaking Changes

Version 0.2.2 of this client introduced a breaking change as it requires the passing of namespace parameter to all methods that require it. This is to support the new namespace functionality added to Flipt v1.20.0.

:warning: If you are running an older version of Flipt server (< v1.20.0), you should use a pre 0.2.2 version of this client.

Install

npm i @flipt-io/flipt@{version}

Usage

import { FliptApiClient } from '@flipt-io/flipt';

const client = new FliptApiClient({
  environment: "http://localhost:8080",
  auth: {
    credentials: {
      username: "YOUR_USERNAME",
      password: "YOUR_PASSWORD",
    },
  },
});

Evaluation

In v1.24.0 of Flipt server, we added a new set of Evaluation API endpoints to allow evaluating of both boolean and multivariate flags. This SDK supports both sets of evaluation APIs (old and new) as of v0.2.7.

The previous API endpoints at /api/v1/evaluate have been deprecated and may be removed in a future release. We recommend using the new Evaluation API at /evaluate/v1/ for all new projects.

For more information on the new Evaluation API, please see the API documentation or blog post on Flipt v1.24.0.

const response = await client.evaluation.variant({
  namespaceKey: DEFAULT_NAMESPACE,
  flagKey: "abc123",
  entityId: uuidv4(),
  context: {},
});

console.log("Received response from Flipt!", response);

Type Safe Flags

If you are using TypeScript, you can use our new flipt-io/typed CLI to generate Flag and Context definitions from flag state which will allow you to get type safety on your flags and their values.

// Generated by @flipt-io/typed
export type Flag = {
  key: "maintenance-mode";
  value?: "on" | "off";
};

Check out the flipt-io/typed repository and our blog post for more information.

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.

To start tracking feature flags on Datadog:

import { datadogRum } from '@datadog/browser-rum';
import { FliptMetrics } from '@flipt-io/flipt/metrics';

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 FliptApiClient({
  environment: "http://localhost:8080",
  auth: {
    credentials: {
      username: "YOUR_USERNAME",
      password: "YOUR_PASSWORD",
    },
  },
}).evaluation, datadogRum);

const response = await metricsClient.variant({
  namespaceKey: "default",
  flagKey: "hello-this",
  entityId: uuidv4(),
  context: {},
});

Contributing

While we value open-source contributions to this SDK, this library is generated programmatically. Additions made directly to this library would have to be moved over to our generation code, otherwise they would be overwritten upon the next generated release. Feel free to open a PR as a proof of concept, but know that we will not be able to merge it as-is. We suggest opening an issue first to discuss with us!

On the other hand, contributions to the README are always very welcome!

FAQs

Package last updated on 20 Dec 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc