Dynamic, declarative configurations

Usage no npm install needed!

<script type="module">
  import hapipalConfidence from 'https://cdn.skypack.dev/@hapipal/confidence';



Dynamic, declarative configurations

Build Status Coverage Status

Lead Maintainer: Sunny Bhanot


npm install @hapipal/confidence


See also the API Reference

Confidence is intended for use with nodejs v12+ (see v4 for lower support).

Confidence is a configuration document format, an API, and a foundation for A/B testing. The configuration format is designed to work with any existing JSON-based configuration, serving values based on object path ('/a/b/c' translates to a.b.c). In addition, Confidence defines special $-prefixed keys used to filter values for a given criteria.


Below is an example configuring a hapi server using a dynamic Confidence configuration.

const Hapi = require('@hapi/hapi');
const Confidence = require('@hapipal/confidence');

const store = new Confidence.Store({
    server: {
        host: 'localhost',
        port: {
            $param: 'PORT',
            $coerce: 'number',
            $default: 3000
        debug: {
            $filter: 'NODE_ENV',
            $default: {
                log: ['error'],
                request: ['error']
            production: {
                request: ['implementation']

const config = store.get('/', process.env);

const server = Hapi.server(config);


Confidence originated in the hapijs organization, and was adopted by hapi pal in April 2019.


confidence Logo