Migration
Schema versioning with chained migration functions. Auto-backup before migration. Validator ensures configs conform to the current schema before commit.
Migration Pipeline
graph TD
LOAD["Load YAML"] --> DET{"schema_version<br/>< current?"}
DET -->|yes| BAK["backup_before_migration()"]
BAK --> CHAIN["Chain migrations<br/>through every prior schema version"]
CHAIN --> VAL["Validator.validate()"]
DET -->|no| VAL
VAL --> CHK["check_required_fields()"]
CHK --> DES["deserialize<T>()"]
DES --> GIT["Commit to Git"]
Migration Registration
| Field | Type | Description |
|---|---|---|
| from_version | u32 | Source schema version |
| to_version | u32 | Target schema version |
| function | fn(Value) -> Result<Value> | Transform function |
| description | &'static str | Human-readable description |
Validation Errors
| Error | Detail |
|---|---|
| ParseError | YAML parse failure with path and line number |
| MissingField | Required field absent at path |
| TypeError | Expected type vs actual type at path |
Config Models
LayoutConfig— schema_version + LayoutDefinition (tree, sizes, active_pane)AppStateConfig— schema_version + ThemeSettings + SidebarSettings + RenderingSettings + MonitoringSettings
Questions?
Reach out for help with integration, deployment, or custom domain codecs.