A tiny module to make it easier to work with configurations - especially secrets - held in either environment variables, or docker secrets. Useful when a single code base may be used either directly on the local machine (using environment variables), or under docker-compose or a docker swarm, where environment variables are not secure and docker secrets should be used.
npm install --save unify-config
When developing a server application in node it is good practice to use environment variables for configurations, especially for secrets. With docker-compose and docker swarm however, whilst environment variables can be used, they are not secure, and docker secrets are a better solution. (Despite not being obvious from the docker documentations, secrets work with docker-compose as well as docker swarm.)
Docker secrets are made available as files mounted at /run/secrets
, whereas environment variable are found at process.env
. If you use both a local environment with environment variables, and a docker environment with secrets in your development process, your code needs to handle two possible sources of config.
const UnifySecrets = require('unify-secrets')
const c = new UnifySecrets()
c.addList(['API_TOKEN', 'DATABASE_URL'])
const connection = connectToDatabase(c.DATABASE_URL).
Kind: global class
- UnifySecrets
- new UnifySecrets()
- .config
- .addEnv(name) ⇒
string
- .addSecret(name) ⇒
string
- .add(name) ⇒
string
- .addList(names) ⇒
Array.<string>
- .addAllSecrets() ⇒
Array.<string>
Support setting application config values from either environment values or docker secrets
Provides a unified mechanism to load configurations whether running as:
- directly on local machine with environment variables
- under docker-compose using docker secrets
- under docker swarm using docker secrets
Get full config object
Kind: instance property of UnifySecrets
Read only: true
Try to add a config value from an environment variable
Kind: instance method of UnifySecrets
Returns: string
- - found config value
Param | Type |
---|---|
name | string |
Try to add a config value from a docker secret
Kind: instance method of UnifySecrets
Returns: string
- - found config value
Param | Type |
---|---|
name | string |
Try to add config value from either environment variable or docker secret
If both sources exist, the docker secret will be used.
Kind: instance method of UnifySecrets
Returns: string
- - found config value
Param | Type |
---|---|
name | string |
Try to add all config value in a list
Kind: instance method of UnifySecrets
Returns: Array.<string>
- - list of found values (or null for those not found)
Param | Type |
---|---|
names | Array.<string> |
Add all docker secrets
Kind: instance method of UnifySecrets
Returns: Array.<string>
- - list of found secrets