Skip to content
This repository has been archived by the owner on Jul 4, 2023. It is now read-only.

onebeyond/confabulous-postgres-loader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚠️ This repository is not longer maintained ⚠️

This project is not longer maintained and has been archived. More details in One Beyond Governance Tiers

Build Status

Confabulous Postgres Loader

Confabulous-Postgres-Loader is an PostgreSQL Loader for Confabulous - a hierarchical, asynchronous config loader and post processor.

TL;DR

const confabulous = require('confabulous')
const postgres = require('confabulous-postgres-loader')
const Confabulous = confabulous.Confabulous
const processors = confabulous.processors

new Confabulous()
    .add((config) => postgres({
        url: 'postgres://user:secret@localhost:5432/config',
        query: 'SELECT data FROM config WHERE key=$1',
        params: ['my-app']
    }, [
      (rows, cb) => cb(null, rows[0] && rows[0].data)
    ]))
    .on('loaded', (config) => console.log('Loaded', JSON.stringify(config, null, 2)))
    .on('reloaded', (config) => console.log('Reloaded', JSON.stringify(config, null, 2)))
    .on('error', (err) => console.error('Error', err))
    .on('reload_error', (err) => console.error('Reload Error', err))
    .end()

Options

Option Type Default Notes
url string Postgres connection url
query string Query for selecting config
params array [] Parameters to be passed to query
mandatory boolean true Causes an error/reload_error to be emitted if the configuration does not exist
watch object Configures the watcher { query: 'SELECT last_modified FROM config WHERE key=$1', params: ['my-app']}, interval: '5m' }