Manage configuration variable obtains from environment or docker secrets
npm install unify-secrets!GitHub package.json version
!GitHub
!Travis (.org)
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.
`javascript
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