Validation and compile
Validation layers
Section titled “Validation layers”- YAML root must be a mapping.
includeexpands with path/merge validation, existence checks and cycle detection.- Typed Pydantic models validate known sections.
- Version validators enforce runner/entry, v2/v3 contracts and selected cross-field rules.
- Compile parsers validate storage/feed/mapping/reduce/compute/embed backend constraints.
- Cross-section compile checks link metrics to
metric_defs, attach feeds to routing indexes, and embed datasets/columns.
New cross-field checks belong in manifest_validate/ or the owning parser, not as ad-hoc runtime guards.
Compile
Section titled “Compile”compile_step_manifest(manifest, merged_params=…) builds runtime plans:
| Plan | Source |
|---|---|
StoragePlan |
datasets + bindings + flush/checkpoint |
MappingPlan |
mapping / mapping_read |
ReduceMergePlan |
reduce_merge pattern |
ComputePlan |
compute.* params |
StepFeedPlan |
datasets.*.feed |
| embed plans | embed_train / embed_infer |
Compile does not open data files or write parquet.
Backend whitelist
Section titled “Backend whitelist”parquet | postgres | qdrant | neo4jneo4j is accepted at parse time; the builtin adapter raises NotImplementedError until transport exists.
Known strictness gaps
Section titled “Known strictness gaps”Document these honestly when authoring contracts:
- Root
StepManifestusesextra="allow". Unknown root sections can survive load until a parser/consumer exists. - Strict UI and
metrics.views.panelsvalidators currently run on the v2 path; v3 still gets typedmetrics.prometheusvalidation, but does not apply the same panel/UI strictness. - Dataset
materializemay appear in YAML and is stripped by the datasets bridge; it is not aStoragePlanfield. storage.resumeis typed in the plan, but the storage parser does not currently enforce a whitelist at parse time.mapping_read, attach/routing indexes and fixed-width wide lists are implemented and tested, but may not have many production YAML examples yet.
A field that loads but has no compiled plan or runtime consumer is not a supported feature.