DRTML overview
DRTML is the YAML contract shipped with a step package (*.drtml plus optional fragments). It is the source of truth for execution, params, datasets, feed, storage, metrics, generated UI, dashboard views and orchestration metadata.
Load and compile
Section titled “Load and compile”main *.drtml → resolve relative include files → merge fragments → StepManifest (Pydantic) → version and cross-section validation → compile_step_manifest → immutable runtime plansThe DRTML layer performs no dataset I/O. Runtime consumes compiled plans.
Versions
Section titled “Versions”- v3: builtin
patternor explicitexecution.entry. - legacy:
execution.modeandrunnerremain supported where documented.
New steps should use v3 and a thin adjacent hook only when an entry is needed.
Package layout
Section titled “Package layout”src/acme_pipeline_steps/normalize/ normalize.drtml fragments/ params.drtml ui.drtml metrics.drtml hooks.py processor.pyPackage DRTML files as distribution data. Airflow/UI discover their root through deployment configuration; manifest_path_adjacent resolves a main manifest from a thin hook.
What to read next
Section titled “What to read next”- Manifest reference
- Datasets and storage
- Feed reference
- Metrics and dashboards
- Streamlit form schema
- Execution and orchestration
- Extending DRTML
Boundaries
Section titled “Boundaries”Steps do not parse DRTML. The parser does not perform parquet/database I/O. A YAML field without a compiled/runtime consumer is not a supported feature.