Daggie The Airflow DAG Quality Auditor

A friendly (and sometimes strict!) animated DAG auditor for Apache Airflow 3.1+

β€’
Apache AirflowΒ·
Python

Features πŸ” 1. Daggie-Score API (FastAPI Plugin)A FastAPI application embedded inside Airflow.It exposes the endpoint:GET /api/daggie-score/score?dag_id=<your_dag_id> Returns:Overall DAG score (0--100...

Screenshot 1

About this project

Features


πŸ” 1. Daggie-Score API (FastAPI Plugin)

A FastAPI application embedded inside Airflow.
It exposes the endpoint:

GET /api/daggie-score/score?dag_id=<your_dag_id>

Returns:

  • Overall DAG score (0--100)

  • Points earned vs max possible

  • Detailed checks with:

    • name

    • weight

    • passed / failed

    • reason

This works by scanning the DAG loaded in Airflow's DagBag.

🧠 2. Scoring Rules (Built-in)

Daggie evaluates:

  • Owner configured\

  • default_args defined\

  • retries & retry_delay\

  • schedule / timetable\

  • catchup behavior\

  • tags present\

  • DAG documentation\

  • max_active_runs sanity\

  • number of tasks\

  • snake_case task IDs\

  • placeholder check: no import-time side effects

All rules have weights and descriptive explanations.

🧩 3. Custom Scoring Plugins (Extensible)

You can add your own checks by adding Python callables:

Example:

from daggie_score import register_check @register_check def check_bigquery_usage(dag): if "bigquery" in dag.tags: return { "name": "BigQuery DAG Standards", "weight": 8, "passed": False, "reason": "Needs special review." }

Custom checks are merged into the official scoring pipeline.

🎨 4. React UI Plugin (Built for Airflow UI)

The React frontend appears in:

/dags/<dag_id>/plugin/simple-react-app

It shows:

  • Score summary\

  • Weighted check breakdown\

  • Clean Material-UI styled presentation\

  • Animated Daggie character whose mood changes:

    • πŸ˜€ Happy (score > 80)

    • 😐 Neutral (score 50--80)

    • 😒 Sad (score < 50)

Daggie Animation

Built entirely using CSS + React.
No Lottie/Javascript animations required.
Runs smoothly inside Airflow without external assets.

Stack:
Apache AirflowPython
Team

You must be logged in to comment

Sign in to comment

Comments

No comments yet

Be the first to share your thoughts!

Project Info

Published on Nov 24, 2025
View on GitHub