wye-switch

JSON document-based feature flag management

Usage no npm install needed!

<script type="module">
  import wyeSwitch from 'https://cdn.skypack.dev/wye-switch';
</script>

README

Wye Switch

This adds structure to a JSON-document based feature flag service. It's intended that the file created by this will live in a CDN with a short cache life & is requested by the frontend.

The CLI manipulates a JSON document on the file system.

Installation

npm install -g wye-switch

Add a config block to your package.json:

{
  ...
  "wye-switch": {
    "path": "feature-flags.json"
  }
  ...
}

If you don't supply this the default is a file in the current directory called feature-flags.json

Flag Management Usage

The command line is interactive. Start with these commands:

wye add-flag
wye remove-flag
wye set-default
wye set-user
wye set-group

The "QA" option has special meaning which takes into consideration the sessionStorage of the user.

Package Usage

Install the module in the application you're going to use it in:

npm install wye-switch

Then construct a WyeSwitch object:

import WyeSwitch from 'wye-switch'
...

const flags = new WyeSwitch({ ... json from fetching feature-flags.json ... })
const canWeasel = flags.canWeasel('can-weasel', { userId: 'me', group: undefined })

If the value of the flag is QA it will return a truthy check on the value of sessionStorage['allow-wye-switch-qa'] for the result of isEnabled.

Fetching the json from feature-flags.json is left for the user to implement.