Skip to content
Novus Examples
json2.5 KB

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.

Preview — first 50 linesjson
{
  "__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",
98 lines total — download for the full file.

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))

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