config-mate loads one root configuration, recursively resolves its $ref
values, and serializes the collected document.
config-mate [OPTIONS] CONFIG
config-mate --help
config-mate config.yaml
config-mate config.yaml --output build/config.yaml
config-mate config.yaml --ext json --output build/config.jsonCONFIG is required. It can be a local path or a supported URI.
| Option | Value | Default | Description |
|---|---|---|---|
--ext |
json, yaml, or xml |
yaml |
Serialization format of the collected output. The match is case-insensitive. |
--output |
path | standard output | Write to a file. Missing parent directories are created and an existing file is overwritten. |
--oci-hostname |
text | OCI_HOSTNAME |
Hostname used by the OCI transport adapter. |
--oci-username |
text | OCI_USERNAME |
Username used by the OCI transport adapter. |
--oci-password |
text | OCI_PASSWORD |
Password used by the OCI transport adapter. |
--oauth2-bearer |
text | OAUTH2_BEARER |
Bearer token sent for HTTP and HTTPS requests. |
--help |
— | — | Show command help and exit. |
The output format is controlled by --ext, not by the extension in
--output. For example, this command writes JSON despite the .txt suffix:
config-mate config.yaml --ext json --output build/config.txtWithout --output, the collected document is written to standard output.
Operational logs are emitted separately, so the data can be redirected or
piped:
config-mate config.yaml --ext json > build/config.jsonPrefer --output when the command itself should create missing parent
directories:
config-mate config.yaml --output build/nested/config.yamlThe root CONFIG and external $ref values can use the transports mounted by
the CLI:
| Location | Example | Notes |
|---|---|---|
| Local path | config/root.yaml |
Converted internally to an absolute file:// URI. |
| File URI | file:///workspace/config/root.yaml |
Must use a valid file URI. |
| HTTP(S) | https://example.org/config/root.yaml |
Optional bearer authentication is applied to both HTTP and HTTPS. |
| S3 | s3://configuration/root.yaml |
Uses the S3 session adapter and its credential discovery behavior. |
| OCI | oci://registry.example.org/team/root.yaml |
Uses the OCI options or their environment-variable equivalents. |
Input may be YAML, JSON, or XML. For remote inputs, the response
Content-Type selects the parser; when that header is absent, Config Mate
assumes YAML. Gzip-compressed response bodies are detected and decompressed.
See the $ref reference for fragments and relative
resolution.
Pass a token as an option:
config-mate https://config.example.org/root.yaml \
--oauth2-bearer "$CONFIG_TOKEN"Or expose it through the supported environment variable:
export OAUTH2_BEARER="$CONFIG_TOKEN"
config-mate https://config.example.org/root.yamlThe same HTTP adapter is used when following HTTP or HTTPS references inside the root document.
Pass credentials directly:
config-mate oci://registry.example.org/team/root.yaml \
--oci-hostname registry.example.org \
--oci-username "$OCI_USER" \
--oci-password "$OCI_PASS"Or use environment variables:
export OCI_HOSTNAME=registry.example.org
export OCI_USERNAME="$OCI_USER"
export OCI_PASSWORD="$OCI_PASS"
config-mate oci://registry.example.org/team/root.yamlEnvironment variables keep credentials out of shell history, but they are still visible to processes with access to the environment. Use the secret facility provided by your CI system.
The input and output formats are independent. A YAML root can be collected as JSON or XML:
config-mate config.yaml --ext json --output build/config.json
config-mate config.yaml --ext xml --output build/config.xmlYAML is the default:
config-mate config.json --output build/config.yamlThe command exits with:
0after successful resolution and serialization;1when loading, parsing, resolving, or writing fails; and- Click's non-zero usage exit when arguments or option values are invalid.
Failures are logged with a FAIL marker and the underlying exception. Success is logged with a SUCCESS marker. Do not treat a partially created output file as valid after a failure; only consume the artifact when the command exits successfully.