knobz-consul
v0.2.1
Published
Storage engine for knobz's features flags backed by Consul KV.
Downloads
5
Maintainers
Readme
knobz-consul
Storage engine for knobz's features flags library backed by Consul KV.
Store your feature flags as individual keys under a common prefix (e.g. config/feature-flags), as in the following example.
/
|-- config/
| |-- feature-flags/
| | |-- featureOne
| | |-- featureTwo
| |-- database/
| |-- mysql
+-- vault/
knobz-consul will then recursively read all keys with the same prefix, parse the value of each key to JSON, and return an array with all the features to be used by knobz.
By default, knobz-consul uses stale consistency mode when reading from Consul KV for higher availability and scalable reads. This mode allows reads without a leader, meaning a cluster that is unavailable will still be able to respond.
Quick Start
Install the module using npm:
npm install knobz-consul --save
Usage example in Node.js:
const knobz = require('knobz');
const knobzConsul = require('knobz-consul')({
host: '127.0.0.1',
port: 8500,
prefix: 'config/feature-flags/'
});
knobz.configure({
features: knobzConsul.fetchFeatures,
reloadInterval: 30000
}).then(() => {
// features have been loaded from Consul KV and will be refreshed every 30s
});
knobzConsul([options])
Initialize a new Knobz's Consul client.
Options
host
(String, default: 127.0.0.1): agent addressport
(Integer, default: 8500): agent HTTP(S) portsecure
(Boolean, default: false): enable HTTPSca
(String, optional): string with trusted certificates in PEM formattimeout
(Integer, default: 10000): timeout in ms for read requests to Consul KVprefix
(String, default: /): prefix used to store the feature flagsstripFileExtension
(Boolean, default: false): strip file extensions from key name