Ingest Apache Airflow DAGs, tasks, and task dependencies through the stable Airflow REST API for pipeline and lineage analysis in Semantica.

Installation

Basic Usage

base_url must point to the Airflow webserver root. Do not include /api/v1 in base_url; the connector adds the stable REST API path automatically.

Authentication

Bearer Token

Username and Password

Username and password must be supplied together.

Filtering DAGs

Restrict ingestion to selected DAG IDs:
Exclude paused DAGs:
You can combine both options:

Pipeline Lineage

The connector derives task-level dependencies from each Airflow task’s downstream_task_ids. For example:
Duplicate dependency edges are removed automatically.

Exported Documents

export_as_documents() converts ingested Airflow metadata into GraphBuilder-friendly dictionaries. The connector exports three document types:
  • airflow_dag
  • airflow_task
  • airflow_dependency
Generated identifiers use these forms:

Private Airflow Deployments

All requests to the user-provided Airflow endpoint pass through Semantica’s SSRF protection. Private IP addresses are blocked by default. For a trusted Airflow deployment on a private network:
Only enable allow_private_ips=True for endpoints you trust.

Pagination

DAG results are retrieved using Airflow’s limit and offset pagination. The default page size is 100.
A different positive page size can be supplied when required.

Error Handling

The connector raises Semantica errors for common failures, including:
  • missing or invalid connection configuration
  • unsuccessful Airflow API requests
  • invalid JSON responses
  • unexpected API response structures
  • invalid pagination limits

API Coverage

The connector currently uses these stable Airflow REST API endpoints:
Task dependencies are derived from each task’s downstream_task_ids.

Read-Only Behaviour

The Airflow connector performs metadata ingestion only. It does not:
  • create DAGs
  • modify DAGs
  • trigger DAG runs
  • pause or unpause DAGs
  • modify tasks
  • delete DAGs or tasks

Closing the Connection

Close the underlying HTTP session when ingestion is complete: