Git Based Application Configuration

Konfigraf is a Git-based configuration service that provides management for application configuration/settings. Konfigraf is built as Postgres extension which provides functions for reading and writing arbitrary files to Git repositories which are backed by Postgres tables rather than a file store.

Why Should You Use Konfigraf?

"Configuration" is a broad term, in the context of software applications it can have several meanings:

Storing application configuration in a simple CRUD accessed database has a number of drawbacks. If this configuration is used as an input to control flow or branch logic, and particularly as complexity increases and for systems for which distinct "administration" and "user" functions play a significant role, this can easily become a sort of application code which is present only in production and has no source control applied.

Ideally in these cases we'd like to have something like Git to keep a log of changes, perform change diff reports, and perhaps even move changes into other environments for testing. Unfortunately fulling implementing such a system for an application's runtime configuration is a substatial project in and of itself. Konfigraf is designed to bridge this gap, allowing configuration to be stored in a conventional database but using a more appropriate model.

Konfigraf on GitHub