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.ConfigExpression context
ConfigExpression context
The
ConfigValue to be validated.The
ConfigValue to be validated as a raw string as it is stored in the ConfigStore.The
Cfgu of the evaluated config.The
ConfigKey of the evaluated config.The origin of the
ConfigValue. One of empty, default, store, override, or const.An array containing all of the labels of the config. If the config has no labels, then the array will be empty. Acts
as syntax sugar for
$.cfgu.label for expression consistency.The
ConfigStore provided as input to the command.The
ConfigSet provided as input to the command.The
ConfigSchema provided as input to the command.Use this to access the
Cfgu properties of another ConfigKey.Use this to access the
value of another ConfigKey.Use this to access the
storedValue of another ConfigKey.ConfigExpression examples
ConfigExpression examples
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.ConfigExpression context
ConfigExpression context
The
Cfgu of the evaluated
config.The
ConfigKey of the evaluated config.An array containing all of the labels of the config. If the config has no labels, then the array will be empty. Acts as syntax sugar for
$.cfgu.label for expression consistency.The
ConfigStore provided as input to the
command.The
ConfigSet provided as input to the command.The
ConfigSchema
provided as input to the command.Use this to access the
Cfgu properties of another ConfigKey.Use this to access the
value of another ConfigKey.Use this to access the
storedValue of another ConfigKey.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
This property cannot be set together with
If
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.