{"adoption": {"forks": 392, "observed_at": "2026-08-28T04:05:34.124678+00:00", "stars": 1771}, "canonical_url": "https://ross.abutalabs.com/products/airflow-maintenance-dags", "card": {"archived": false, "artifact_type": "plugin", "description": "A series of DAGs/Workflows to help maintain the operation of Airflow", "domain": ["self-hosted"], "enriched": true, "function": ["workflow-automation", "scheduling", "backup", "developer-tools"], "health_score": 20, "homepage": null, "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["teamclairvoyant/airflow-maintenance-dags"], "name": "teamclairvoyant/airflow-maintenance-dags", "platform": ["python", "self-hosted"], "pushed_at": "2024-06-18T05:33:47+00:00", "repo": "teamclairvoyant/airflow-maintenance-dags", "stars": 1771, "tags": ["apache-airflow", "airflow-dags", "maintenance", "log-cleanup", "database-cleanup", "orchestration", "devops", "data-engineering", "automation", "docker", "linux"], "topics": ["airflow", "dag", "workflow", "airflow-maintenance-dags", "maintenance", "cleanup", "apache-airflow"], "urls": [], "use_cases": ["clean up airflow metadata database", "delete old airflow task logs automatically", "backup airflow configuration files", "remove missing dags from airflow web server", "kill orphaned airflow tasks running in background", "generate sla miss reports for airflow", "delete broken dags with import errors"], "what_it_is": "A collection of maintenance DAGs for Apache Airflow that automate operational housekeeping tasks such as database cleanup, log cleanup, config backups, and removing stale or broken DAG entries. Each workflow is deployed directly into an Airflow instance and runs on a schedule.", "when_to_avoid": ["you don't use Apache Airflow", "you need a general-purpose workflow orchestrator rather than Airflow maintenance utilities", "you need actively supported enterprise tooling with guaranteed updates"], "when_to_choose": ["you run a long-lived Airflow instance whose metadata DB and logs keep growing", "you want scheduled, automated Airflow housekeeping without manual scripts", "you need to clean stale DAG entries or orphaned background tasks"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/airflow-maintenance-dags", "repo": "teamclairvoyant/airflow-maintenance-dags", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.124678+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:26:01.712213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04ef8a8bcd97aba08ba372b49c99d9e15a3d79522e04029bcba1282b14ca1106", "fetched_at": "2026-08-28T04:05:34.124678+00:00", "kind": "readme", "missing": false, "url": "https://github.com/teamclairvoyant/airflow-maintenance-dags"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.124678+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:26:01.712213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04ef8a8bcd97aba08ba372b49c99d9e15a3d79522e04029bcba1282b14ca1106", "fetched_at": "2026-08-28T04:05:34.124678+00:00", "kind": "readme", "missing": false, "url": "https://github.com/teamclairvoyant/airflow-maintenance-dags"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:26:01.712213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04ef8a8bcd97aba08ba372b49c99d9e15a3d79522e04029bcba1282b14ca1106", "fetched_at": "2026-08-28T04:05:34.124678+00:00", "kind": "readme", "missing": false, "url": "https://github.com/teamclairvoyant/airflow-maintenance-dags"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.124678+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.124678+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.124678+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:26:01.712213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04ef8a8bcd97aba08ba372b49c99d9e15a3d79522e04029bcba1282b14ca1106", "fetched_at": "2026-08-28T04:05:34.124678+00:00", "kind": "readme", "missing": false, "url": "https://github.com/teamclairvoyant/airflow-maintenance-dags"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.124678+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.124678+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:26:01.712213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04ef8a8bcd97aba08ba372b49c99d9e15a3d79522e04029bcba1282b14ca1106", "fetched_at": "2026-08-28T04:05:34.124678+00:00", "kind": "readme", "missing": false, "url": "https://github.com/teamclairvoyant/airflow-maintenance-dags"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.124678+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.124678+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.124678+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:26:01.712213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04ef8a8bcd97aba08ba372b49c99d9e15a3d79522e04029bcba1282b14ca1106", "fetched_at": "2026-08-28T04:05:34.124678+00:00", "kind": "readme", "missing": false, "url": "https://github.com/teamclairvoyant/airflow-maintenance-dags"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.124678+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.124678+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:26:01.712213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04ef8a8bcd97aba08ba372b49c99d9e15a3d79522e04029bcba1282b14ca1106", "fetched_at": "2026-08-28T04:05:34.124678+00:00", "kind": "readme", "missing": false, "url": "https://github.com/teamclairvoyant/airflow-maintenance-dags"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:26:01.712213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04ef8a8bcd97aba08ba372b49c99d9e15a3d79522e04029bcba1282b14ca1106", "fetched_at": "2026-08-28T04:05:34.124678+00:00", "kind": "readme", "missing": false, "url": "https://github.com/teamclairvoyant/airflow-maintenance-dags"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:26:01.712213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04ef8a8bcd97aba08ba372b49c99d9e15a3d79522e04029bcba1282b14ca1106", "fetched_at": "2026-08-28T04:05:34.124678+00:00", "kind": "readme", "missing": false, "url": "https://github.com/teamclairvoyant/airflow-maintenance-dags"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:26:01.712213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04ef8a8bcd97aba08ba372b49c99d9e15a3d79522e04029bcba1282b14ca1106", "fetched_at": "2026-08-28T04:05:34.124678+00:00", "kind": "readme", "missing": false, "url": "https://github.com/teamclairvoyant/airflow-maintenance-dags"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3548, "days_push": 806, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}