Configuration schema¶
A configuration file has three top-level sections: identity, inheritance and settings.
Top-level keys¶
| Key | Type | Required | Description |
|---|---|---|---|
service |
string | yes | The service this file configures |
environment |
string | yes | Target environment |
extends |
string | no | Path to a base file to overlay |
settings |
map | yes | The settings to apply |
Settings¶
The settings map is validated against the per-service schema registered with
statera schema push. A schema entry declares a type, an optional range and a
default.
log_level:
type: enum
values: [debug, info, warn, error]
default: info
rate_limit:
type: integer
min: 1
max: 1000
default: 200
feature_flags:
type: map
of: boolean
Types¶
| Type | Notes |
|---|---|
string |
Any UTF-8 string |
integer |
Optional min / max |
number |
Floating point |
boolean |
true / false |
enum |
Constrained by values |
map |
Homogeneous map; element type set by of |
list |
Homogeneous list; element type set by of |
Secret references¶
Any string value may be a secret reference of the form
${secret:<path>}. References are resolved at apply time and excluded from the
stored revision history.
Merge rules¶
When extends is set:
- maps are merged key by key, local keys winning
- scalars are replaced
- lists are replaced, not concatenated