README
kazana-config
Kazana core module for configuration
Usage
Kazana apps can be configured in 4 ways
config: {}setting in the app / plugin manifestsmodule.exports = { name: 'myApp', version: '1.0.0', config: { kazana: { admin: { password: 'supersecret' } }, myApp: { mySetting: 'value' } } }.kazanarcfiles, using the rc package.[kazana.admin] password = supersecret [myApp] mySetting = valueEnvironment variables
kazana_kazana__admin__password='supersecret' kazana_myApp__mySetting=value npm startcommand line arguments
npm start -- --kazana.admin.password='supersecret'
See https://www.npmjs.com/package/rc#standards for more details on how configuration is retrieved, and it what order.
The settings become available as server.settings.app.<setting path> within
the app and the plugins, for example server.settings.app.kazana.admin.password
or server.settings.app.config.myApp.mySetting
Kazana Settings
| Setting Path | Default / Example |
|---|---|
| kazana.port | 5000 |
| kazana.log.level | warn |
|
kazana.admin.username Database admin username |
kazana |
|
kazana.admin.password Database admin password |
secret |
|
kazana.backend.name When undefined, defaults to pouchdb-server's built-in "leveldown". Can be set to "couchdb" or any levelup storage back-ends: https://github.com/Level/levelup/wiki/Modules#storage-back-ends |
-no default- |
| kazana.backend.port | 4999 |
|
kazana.backend.location Location option as it gets passed to levelup https://github.com/Level/levelup#leveluplocation-options-callback If backend.name="couchdb", set the couchdb url without credententials, e.g. "https://my.couch.com" |
./.db |
|
kazana.backend.log.file Does not apply if backend.name="couchdb" |
./.db/pouch.log |
|
kazana.backend.log.level Does not apply if backend.name="couchdb" |
info |
|
kazana.backend.config.file Does not apply if backend.name="couchdb" |
./.db/config.json |
|
kazana.backend.timeout Time to connect database in milliseconds |
30000 |
|
kazana.db.rawData Name of database containing submitted raw data |
kazana-raw-data |
|
kazana.db.integratedData Name of database containing integrated data |
kazana-raw-data |
|
kazana.db.options Database ajax options, as passed to the PouchDB constructor. |
{ timeout: 10000 } |
|
kazana.email.service Nodemailer Email Service |
gmail |
|
kazana.email.auth.username Nodemailer Email Service Username |
e.g. joe@example.com |
|
kazana.email.auth.password Nodemailer Email Service Password |
e.g. secret |
Local setup and Testing
git clone git@github.com:eHealthAfrica/kazana-config.git
cd kazana-config
npm install
npm test
Test
npm test
Credit
Brought to you by eHealth Africa — good tech for hard places.