Metadata-Version: 2.4
Name: datus-scheduler-airflow
Version: 0.1.2
Summary: Apache Airflow scheduler adapter for Datus
Project-URL: Homepage, https://github.com/Datus-ai/datus-scheduler-adapters
Project-URL: Repository, https://github.com/Datus-ai/datus-scheduler-adapters
Author-email: DatusAI <support@datus.ai>
License: Apache-2.0
Keywords: adapter,airflow,datus,scheduler
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.12
Requires-Dist: datus-scheduler-core>=0.1.1
Requires-Dist: httpx>=0.27.0
Requires-Dist: pydantic>=2.0.0
Description-Content-Type: text/markdown

# datus-scheduler-airflow

Apache Airflow scheduler adapter for Datus.

## Install

```bash
pip install datus-scheduler-airflow
```

## Quick Start

```python
from datus_airflow import AirflowSchedulerAdapter
from datus_scheduler_core.config import AirflowConfig
from datus_scheduler_core.models import SchedulerJobPayload

config = AirflowConfig(
    name="airflow_prod",
    type="airflow",
    api_base_url="http://localhost:8080/api/v1",
    username="admin",
    password="admin",
    dags_folder="/opt/airflow/dags",
)

adapter = AirflowSchedulerAdapter(config)
adapter.test_connection()

job = adapter.submit_job(SchedulerJobPayload(
    job_name="daily_report",
    sql="SELECT count(*) FROM orders",
    db_connection={"url": "postgresql://user:pass@host/db"},
    schedule="0 8 * * *",
))
print(job.job_id)
```

## Integration Tests

```bash
# Start Airflow (docker-compose lives next to the tests)
cd tests/integration
docker compose up -d
cd ../..

# Run tests (from the workspace root; AIRFLOW_PASSWORD matches
# _AIRFLOW_WWW_USER_PASSWORD in tests/integration/docker-compose.yml)
AIRFLOW_PASSWORD=admin uv run pytest tests/integration/ -v -m integration
```
