Skip to content

A Connect-based app server to realize complex user-defined feature flags in thick-client applications.

Notifications You must be signed in to change notification settings

jkintscher/shunter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shunter

Requirements

An app server to serve thick-client (only) applications. Supports user-defined feature flags for conditional distribution.

  1. Server has some way of create Feature Flag tuples, i.e. { name, accounts, branch }

  2. Any UID scheme should work

  3. Store in flags.json

  4. App server serves FC app, queries FFs, serves the right bundle of HTML/CSS/JS for req

  5. those bundles are indexed, obviously, by SHA (of a feature branch)

Sync flags between client-server and the API-server

Install it

$ npm install

Configure it

Server

You can transparently specify the location of the manifest file, the feature releases directory, as well as the port for the Connect server in index.js.

Feature Flags

Define your feature flags in the manifest file at config/flags.json following the format of

{
  "branch-name": [  ],
}

where you list all accepted values of the account-id request cookie header in the array.

If a request is made with an account-id value that is not contained in any of the defined feature flags (or if it’s not set at all), Shunter will always default to serve the current release from features/master/.

Use it

Start the Connect server from the shunter/ directory with

$ npm index.js

About

A Connect-based app server to realize complex user-defined feature flags in thick-client applications.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published