fflag-ms

0.0.18 • Public • Published

A production grade feature flagging service.

The key to agile feature management. Use this service to update flags on the fly, do dark releases, run experiments, toggle functionality, and more!

Prerequisites

  1. Register for an API key from RapidAPI.
  2. Subscribe to the API.

Getting started

  1. Install the npm package.
$ npm i fflag-ms
  1. Initialize the module.
const FeatureFlags = require('fflag-ms');

const ff = new FeatureFlags({
  rapidAPIKey: 'xxx', 
  namespace: 'my-app'
});

By default this will automatically fetch flags every 1 minute. You can set the refreshIntervalMS value to change this.

  1. Use the our web interface to manage keys. Or use the sdk to manage flags.
...
await ff.put({
  timeoutMS: 30000,
  flag2: true,
  flag3: {
    nested: {
      object: 1
    }
  },
});
...
  1. Reference feature flag keys.
// Get timeoutMS value from feature flags, default to 10000 if not found.
ff.get('example-timeoutMS', 10000);

Config values

  • rapidAPIKey

    • REQUIRED
    • This is your application key generated on the RapidAPI dashboard.
  • namespace

    • REQUIRED
    • All flags must be associated to a namespace, if you are unsure, set this to something generic like general.
    • These will be treated as case-insensitive.
  • baseUrl

    • OPTIONAL - defaults to https://feature-flags2.p.rapidapi.com
    • The baseURL of the API requests, you should never have to change this.
  • showConsoleErrors

    • OPTIONAL - defaults to true
    • If you wish to mute all error logs from this module, set this to false.
  • refreshIntervalMS

    • OPTIONAL - defaults to 60000
    • Number of milliseconds between fetching for flags from the server.
    • This value cannot be less than 1 minute, it will be ignored.
    • Setting this to -1 will allow you to disable auto-fetching, where you will be required to call
    • fetch() manually.

Examples

Disabling auto-fetch, manual fetching

const FeatureFlags = require('fflag-ms');

const ff = new FeatureFlags({
  rapidAPIKey: 'xxx', 
  namespace: 'my-app',
  refreshIntervalMS: -1
});

...

// Fetch manually - an async method, updates local cache.
await ff.fetch();

...

// Get method is not async, uses local cache.
ff.get('example-timeoutMS', 10000);

Dependencies (1)

Dev Dependencies (3)

Package Sidebar

Install

npm i fflag-ms

Weekly Downloads

1

Version

0.0.18

License

ISC

Unpacked Size

6.35 kB

Total Files

4

Last publish

Collaborators

  • mythusiva