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

description
String|Markdown

Describe a ConfigKey’s purpose within the application.

test
ConfigExpression|ConfigExpression[]

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.

const
ConfigExpression

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.

pattern
String

Define a regular expression a ConfigValue must match. This property must be provided if the type is RegEx.

schema
JSON Schema

Specify a JSON schema a ConfigValue must conform to. This property must be provided if the type is JSONSchema.

enum
String[]

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.

default
String

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.

required
Boolean

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.

lazy
Boolean

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.

hidden
Boolean

Indicate that this ConfigKey will be omitted from ExportCommand results.

label
String|String[]

List labels to categorize ConfigKeys for easier filtering on ExportCommand.

Example