name: Formal RFC about: Submit a formal Request For Comments for consideration by the team. title: ‘Single Source Of Truth (SSOT) system for CouchDBs configuration files’ labels: rfc, discussion assignees: ‘ronny@apache.org’
This document describes the design of a Single Source Of Truth (SSOT) system for generating configuration files and values used by CouchDB.
Currently, there are two main files for defining and setting default values of CouchDBs database system. These are default.ini
and local.ini
. In these two files, configuration keys and values can be set explicitly (they are defined), implicitly (defined, but commented out) and sometimes not mentioned at all and defined only in the source files (e.g. some internal config values).
There is no easy / no overview at all for administrators, users and developers to lookup for defined configuration keys and values. The documentation provides a Configuration Help for Administrators, a Configuration Quick Reference for an overview of hopefully all documented keys in different configuration sections. It‘s not clear if the values in the help are default values or only example values and looked into the default config files, it’s unclear too, if commented out values are the defaults or not.
To avoid these problems, implement a Single Source Of Truth (SSOT) system which resolves the named issues and providing features for generating and checking configuration files at build-time and at run-time.
The keywords “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119.
SSOT
system: Single Source Of Truth system. Every data element is mastered (or edited) in only one place.
The SSOT-system MUST provide the following features:
Idea:
Questions:
default.ini
only readable?