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 Testaroo 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))Generated by generation/pipelines.py. Free for any use, no attribution required, license.
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.
