Airflow-Shaped Serialized DAG (JSON)
The serialized-DAG shape Airflow stores in its metadata database, as standalone JSON: per-task metadata with explicit downstream_task_ids. Carries the same six-task topology as the Python, Argo, Graphviz and Mermaid fixtures.
{
"__version": 1,
"dag": {
"_dag_id": "orders_etl",
"description": "Nightly orders extract, validate, transform and publish.",
"schedule_interval": "17 2 * * *",
"timezone": "UTC",
"start_date": "2026-01-01T00:00:00+00:00",
"catchup": false,
"max_active_runs": 1,
"tags": [
"orders",
"etl",
"example"
],
"default_args": {
"owner": "example-data-team",
"retries": 2,
"depends_on_past": false
},
"fileloc": "dags/orders_etl.py",
"tasks": [
{
"task_id": "ingest_orders",
"_task_type": "EmptyOperator",
"_task_module": "airflow.operators.empty",
"ui_color": "#e8f0fe",
"pool": "default_pool",
"retries": 2,
"trigger_rule": "all_success",
"downstream_task_ids": [
"validate_orders"
]
},
{
"task_id": "validate_orders",
"_task_type": "EmptyOperator",
"_task_module": "airflow.operators.empty",
"ui_color": "#e8f0fe",
"pool": "default_pool",
"retries": 2,
"trigger_rule": "all_success",
"downstream_task_ids": [
"transform_orders"
]
},
{
"task_id": "transform_orders",
"_task_type": "EmptyOperator",
"_task_module": "airflow.operators.empty",Specifications
- System
- Airflow (shape only)
- Tasks
- 6
- Edges
- 6
- Downstream Lists Per Task
- true
- Schedule Interval
- 17 2 * * *
- Topological Order
- ingest_orders, validate_orders, transform_orders, load_warehouse, refresh_dashboard, notify_owner
Testing contract
Expected to pass- Scenario
- Rebuild a DAG from serialized JSON in which edges live on each task as downstream ids
- Expected result
- Six tasks yield six edges, and only notify_owner carries trigger_rule all_done
What is a .json file?
JSON (JavaScript Object Notation) is a lightweight, text-based data-interchange format representing objects, arrays, strings, numbers, booleans, and null. It is language-independent, human-readable, and the dominant format for web APIs and configuration. It requires a single well-formed root value.
How to use this file
Use an example JSON file to test parsers and serializers, schema validation, Unicode and number-precision handling, and API request or response processing.
How to use this file for testing
“Airflow-Shaped Serialized DAG (JSON)” is a deterministic Novus Examples fixture for Graph data, Data engineering, Conversion testing. Node/edge datasets in GraphML and GEXF (directed and undirected, with attributes and weights) — for testing network importers, layout tools, and graph converters.
Documented properties for this file: 6 edges. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
Pipeline and infrastructure fixtures are inert configuration: steps reference fictional images and scripts, and nothing here executes. Run your linter, schema validator, migrator, or policy engine against them, and expect the deprecated-syntax and intentionally invalid variants to be rejected.
Code examples
import json
with open("airflow-serialized-dag.json") as f:
data = json.load(f)
print(type(data), len(data))Related files
- pyAirflow TaskFlow API DAGA decorator-based Airflow TaskFlow DAG where dependencies are implied by function calls rather than >> operators — the shape static DAG extractors most often get wrong. Every task returns a literal, so nothing performs I/O.

- yamlArgo Workflow DAG TemplateAn Argo Workflows DAG template carrying the same six-task ETL topology as the Airflow, Graphviz and Mermaid fixtures in this category, so a converter or visualiser can be scored against one known answer across four formats.

- yamlArgo Workflow Steps TemplateArgo's steps template, whose double-nested list is a genuine parser trap: the outer list is sequential and the inner list is parallel, so a reader that flattens it reports four sequential steps instead of three groups.

- cwlCWL Scatter and Cross-ProductCWL scatter in both forms: a single-parameter scatter over an array input, and a two-parameter scatter with scatterMethod flat_crossproduct. The scatter dimensionality is what distinguishes correct CWL engines from approximate ones.

- cwlCWL Workflow (Six-Step Topology)A CWL Workflow carrying the same six-step ETL topology as the Airflow and Argo fixtures, with dependencies expressed as step output references and a multi-source input resolved by pickValue. For cross-format DAG conversion tests.

- dotGraphviz Pipeline DAGThe shared six-task ETL topology as a Graphviz digraph, with node and edge defaults, per-node attribute overrides, a same-rank constraint and C-style comments. Carries the identical graph to the Airflow, Argo, CWL and Mermaid fixtures.

Generated by generation/pipelines.py. Free for any use, no attribution required — license.