Browse the documentation

Preview documentation for AEL Beta 0.0.1 — launching soon

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

Preview syntax — may change before launch
ael config explain
ael config explain --json
OptionMeaning
--jsonThe 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.