Explaining configuration
In AEL, the Agent Engineering Language, a setting's value will be able to come from several layers: defaults, shared configurations, named environment variables and files, the deployment and run overrides. ael config explain (command names may change before launch) will explain where each value comes from.
Status
Planned for AEL Beta 0.0.1. AEL is not available yet.
Usage
ael config explain
ael config explain --json
| Option | Meaning |
|---|---|
--json | The explanation in machine-readable form. |
What it shows
For every field of every configuration in the project, it will show:
- The value it will have.
- The layer that set it: the configuration's defaults, a shared configuration, a named environment variable or file, the deployment, or an override for one run.
- What it overrides: the values from lower layers that it replaces, field by field.
- External values: for a value that refers to an environment variable, a file or a secret, the reference, and whether it will be resolved when a run starts.
Layers will apply in the order you declare, and a higher layer will override a lower one for each field separately. The order in which files are found will never decide a value. Configuration describes the layers.
Secrets will stay secret
ael config explain will never print a secret value. A secret will be shown as its reference, masked, never as the value it will hold. Secret values will appear nowhere in your source, in compiled files or in the explanation.
Problems it reports
It will apply the same rules as ael check, and name the field and the layers involved in each problem:
- a field that the configuration does not declare;
- a required field that no layer sets;
- a value of the wrong type, or text longer than its field allows;
- two layers of the same rank that set one field;
- configurations that refer to each other in a cycle.
Snapshots
Before a run is admitted, its configuration will be resolved, validated and pinned, and the run will keep that snapshot to the end. What ael config explain shows will be what a run starting with the same deployment settings would be pinned to. A value that changes later will apply to runs that start afterwards.
What it never does
It will read no environment variable, file or secret value, open no connection, call no model and run none of your code. It will change nothing.
Not settled yet
How you will choose the deployment and run overrides to explain, and ask about one field or one configuration, will be described when the command is final.
Related
- Configuration: configuration files, layers and snapshots.
- Effects and capabilities: what configuration can never grant.