Remote Config Client
Implements a Remote Config Client for NodeJS, with cache support
Installation
Using npm:
npm install --save remote-config-client
Usage
To use this client, instance it as
const remoteConfigClient = require('remote-config-client-node')({
application: 'APPLICATION-NAME',
cache: <ioredis or node-redis instance>,
environment: 'ENV',
host: 'http://HOSTNAME',
httpClient: <object with functions>
password: 'REMOTE-CONFIG-HTTP-BASIC-PASSWORD',
username: 'REMOTE-CONFIG-HTTP-BASIC-USERNAME'
})
Where:
-
application
: Application (hello-world, chubaca...) -
cache
: Cache instance to be used (supported: ioredis and node-redis) (optional) -
environment
: Enviroment (test, int, staging, production...) -
host
: Remote config host url (http://remote-config.internal) -
httpClient
: Object which implements a custom http client (optional) -
password
: HTTP Basic Auth Password -
username
: HTTP Basic Auth Username
Available methods
get (string clientId, string config = null) : object
Returns client's config. If a value is passed on config
, it will return only this value.
del (string clientId) : integer
Purges cache data for the specified client. Returns the number of deleted keys.
getSettings () : object
Returns remote-config settings object (passed when it was instantiated)
Custom HTTP Client
Internally, this lib uses axios to execute HTTP requests. If you want to implement a custom http client yourself, create one that respect the same method signatures and outputs as axios.
For instance, only axios.get ()
is used. It should use the following signature:
- Method:
get(url : string, { auth: { username : string, password : string } } : object)
- Output:
{ status : integer, data : object }
For more info, check axios documentation.