# kazana-config

> Kazana core module for configuration

Latest version **5.4.5** (published 2016-03-24) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install kazana-config
pnpm add kazana-config
yarn add kazana-config
bun add kazana-config
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 5.4.5 |
| Published | 2016-03-24 |
| First published | 2015-07-21 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=4.2.0 |
| Dependencies | 3 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Gregor Martynus |
| Maintainers | ehealthafrica, gr2m |
| Keywords | kazana |

## Links

- npm: https://www.npmjs.com/package/kazana-config
- Repository: https://github.com/eHealthAfrica/kazana-config
- Issues: https://github.com/eHealthAfrica/kazana-config/issues
- npm.io page: https://npm.io/package/kazana-config

## Dependencies (3)

- [rc](https://npm.io/package/rc.md) ^1.1.6
- [lodash](https://npm.io/package/lodash.md) ^4.5.0
- [npmlog](https://npm.io/package/npmlog.md) ^2.0.2

## Recent versions

- 5.4.5 (latest) — 2016-03-24
- 5.4.4 — 2015-12-09
- 5.4.3 — 2015-12-08
- 5.4.2 — 2015-12-07
- 5.4.1 — 2015-12-07
- 5.4.0 — 2015-12-03
- 5.3.0 — 2015-11-02
- 5.2.0 — 2015-09-19
- 5.1.0 — 2015-09-03
- 5.0.0 — 2015-08-26
- 4.0.0 — 2015-08-25
- 3.1.0 — 2015-08-14
- 3.0.0 — 2015-08-14
- 2.0.0 — 2015-07-28
- 1.0.1 — 2015-07-21
- … 1 more at https://npm.io/package/kazana-config/versions

## README

# kazana-config

> Kazana core module for configuration

[![NPM version](https://badge.fury.io/js/kazana-config.svg)](https://www.npmjs.com/package/kazana-config)
[![Dependency Status](https://david-dm.org/eHealthAfrica/kazana-config.svg)](https://david-dm.org/eHealthAfrica/kazana-config)
[![Build Status](https://travis-ci.org/eHealthAfrica/kazana-config.svg?branch=master)](https://travis-ci.org/eHealthAfrica/kazana-config)
[![Coverage Status](https://coveralls.io/repos/eHealthAfrica/kazana-config/badge.svg?branch=master)](https://coveralls.io/r/eHealthAfrica/kazana-config?branch=master)

## Usage

Kazana apps can be configured in 4 ways

1. `config: {}` setting in the app / plugin manifests

   ```
   module.exports = {
     name: 'myApp',
     version: '1.0.0',
     config: {
       kazana: {
         admin: {
           password: 'supersecret'
         }
       },
       myApp: {
         mySetting: 'value'
       }
     }
   }
   ```

2. `.kazanarc` files, using the [rc package](https://www.npmjs.com/package/rc).

   ```ini
   [kazana.admin]
     password = supersecret
   [myApp]
     mySetting = value
   ```

3. Environment variables

   ```
   kazana_kazana__admin__password='supersecret' kazana_myApp__mySetting=value npm start
   ```

4. command 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

<table>
  <thead>
    <tr>
      <th aling=left>Setting Path</th>
      <th>Default / Example</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>
        <strong>kazana.port</strong>
      </td>
      <td><code>5000</code></td>
    </tr>
    <tr>
      <td>
        <strong>kazana.log.level</strong>
      </td>
      <td><code>warn</code></td>
    </tr>
    <tr>
      <td>
        <strong>kazana.admin.username</strong><br>
        Database admin username
      </td>
      <td><code>kazana</code></td>
    </tr>
    <tr>
      <td>
        <strong>kazana.admin.password</strong><br>
        Database admin password
      </td>
      <td><code>secret</code></td>
    </tr>
    <tr>
      <td>
        <strong>kazana.backend.name</strong><br>
        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
      </td>
      <td><code>-no default-</code></td>
    </tr>
    <tr>
      <td>
        <strong>kazana.backend.port</strong>
      </td>
      <td><code>4999</code></td>
    </tr>
    <tr>
      <td>
        <strong>kazana.backend.location</strong><br>
        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"
      </td>
      <td><code>./.db</code></td>
    </tr>
    <tr>
      <td>
        <strong>kazana.backend.log.file</strong><br>
        Does not apply if backend.name="couchdb"
      </td>
      <td><code>./.db/pouch.log</code></td>
    </tr>
    <tr>
      <td>
        <strong>kazana.backend.log.level</strong><br>
        Does not apply if backend.name="couchdb"
      </td>
      <td><code>info</code></td>
    </tr>
    <tr>
      <td>
        <strong>kazana.backend.config.file</strong><br>
        Does not apply if backend.name="couchdb"
      </td>
      <td><code>./.db/config.json</code></td>
    </tr>
    <tr>
      <td>
        <strong>kazana.backend.timeout</strong><br>
        Time to connect database in milliseconds
      </td>
      <td><code>30000</code></td>
    </tr>
    <tr>
      <td>
        <strong>kazana.db.rawData</strong><br>
        Name of database containing submitted raw data
      </td>
      <td><code>kazana-raw-data</code></td>
    </tr>
    <tr>
      <td>
        <strong>kazana.db.integratedData</strong><br>
        Name of database containing integrated data
      </td>
      <td><code>kazana-raw-data</code></td>
    </tr>
    <tr>
      <td>
        <strong>kazana.db.options</strong><br>
        Database ajax options, as passed to the PouchDB constructor.
      </td>
      <td><code>{ timeout: 10000 }</code></td>
    </tr>
    <tr>
      <td>
        <strong>kazana.email.service</strong><br>
        Nodemailer Email Service
      </td>
      <td><code>gmail</code></td>
    </tr>
    <tr>
      <td>
        <strong>kazana.email.auth.username</strong><br>
        Nodemailer Email Service Username
      </td>
      <td>e.g. <code>joe@example.com</code></td>
    </tr>
    <tr>
      <td>
        <strong>kazana.email.auth.password</strong><br>
        Nodemailer Email Service Password
      </td>
      <td>e.g. <code>secret</code></td>
    </tr>
  </tbody>
</table>

## Local setup and Testing

```
git clone git@github.com:eHealthAfrica/kazana-config.git
cd kazana-config
npm install
npm test
```

## Test

[![devDependency Status](https://david-dm.org/eHealthAfrica/kazana-config/dev-status.svg)](https://david-dm.org/eHealthAfrica/kazana-config#info=devDependencies)

```
npm test
```

## Credit

Brought to you by [eHealth Africa](http://ehealthafrica.org/)
— good tech for hard places.

## License

[Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

---
_Source: https://npm.io/package/kazana-config · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
