Configu Configuration-as-Code Format
The Cfgu
format defines the characteristics of a software configuration in Configu, providing metadata and constraints for ConfigValues
. When attached to a ConfigKey
in a ConfigSchema
, it enables validation of ConfigValues
, facilitating their implementation in the code.
Location
.cfgu
files essentially set the boundaries of different domains in the code relative to the configuration they use. Developers are free to organize and structure their .cfgu
files in a way that makes sense for their specific needs and workflow. There is no limit on the number of .cfgu
files that can be created, and they can be spread across different codebases, subfolders in the same project, and different repositories.
Format
The .cfgu
file can be written in one of the following formats: YAML
or JSON
. The name suffix of this file should be .cfgu.yaml|yml|json
according to the format used.
$schema
Include the $schema
property at the beginning of the file to specify the Cfgu
version to communicate to other readers and tooling which specification version is intended.
Also, most modern editors will use this property to provide IntelliSense and validation for the Cfgu
file.
Properties
Describe a ConfigKey
’s purpose within the application.
Use this property to validate a ConfigValue
. This property receives a string or an array of strings representing an
expression that evaluates to a boolean. If an array is provided, all expressions must evaluate to true
for the value
to be considered valid.
Define a constant value for a ConfigKey
through a ConfigExpression
, these ConfigKeys
are never queried through a
ConfigStore
. This property cannot be set together with lazy
, default
, or required
.
Define a regular expression a ConfigValue
must match. This property must be provided if the type
is RegEx
.
Specify a JSON schema a ConfigValue
must conform to. This property must be provided if the type
is JSONSchema
.
Specify a list of allowable ConfigValues
for a ConfigKey
. This property cannot be an empty array or contain empty
strings. Each option must be unique.
Set a default ConfigValue
for a ConfigKey
if not explicitly provided.
This property cannot be set together with required
, const
or lazy
properties.
If enum
is set, the default value must be one of the options.
Indicate whether a ConfigKey
is essential for the application’s functionality. When set to true
, a ConfigValue
must be found on EvalCommand
. This property cannot be set together with default
or const
.
Indicate that a ConfigValue
is set only during EvalCommand
execution, excluding it from UpsertCommand
assignments. This property cannot be set together with const
or default
.
Indicate that this ConfigKey
will be omitted from ExportCommand
results.
List labels to categorize ConfigKeys
for easier filtering on ExportCommand
.
Example
Was this page helpful?