Metadata-Version: 2.4
Name: prizm-airflow-plugin
Version: 0.1.0
Summary: Airflow plugin that pushes DAG run metadata to Prizm on DAG run success/failure
Author-email: Prizm Team <team@prizm.com>
Maintainer-email: Prizm Team <team@prizm.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/prizm/prizm-common
Project-URL: Repository, https://github.com/prizm/prizm-common.git
Keywords: prizm,airflow,plugin,data-lineage,observability
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: Apache Airflow
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: requests>=2.31.0

# Prizm Airflow Plugin

Airflow plugin that registers a DAG run listener and pushes DAG run, task and
lineage metadata to Prizm when a DAG run succeeds or fails.

## Install

Install into the same environment as the Airflow scheduler (and workers):

```bash
pip install prizm-airflow-plugin
```

Restart the scheduler. Airflow discovers the plugin via the `airflow.plugins`
entry point; no file needs to be copied into `$AIRFLOW_HOME/plugins`.
`apache-airflow` is not installed by this package. Remove any previously
copied `prizm_airflow_plugin.py` from `$AIRFLOW_HOME/plugins` to avoid loading
it twice.

## Configuration (Admin -> Variables)

| Variable | Description |
|---|---|
| `prizm_url` | Prizm base URL (plugin appends `/api/v1/schedule/airflow/plugin`) |
| `prizm_api_token` | Prizm API access token (`prizm_plugin_token` is a deprecated alias) |
| `prizm_connection_name` | Must match the Prizm source connection name |
| `prizm_allowed_dags` | Optional comma-separated globs, e.g. `dag_*` |
| `prizm_excluded_dags` | Optional comma-separated globs |
| `prizm_extract_source_code` | Optional, default `true`; set `false` to skip sending DAG source |
| `prizm_include_full_log` | Optional, default `false`; `true` sends the full log of failed tasks |

## Build and publish

```bash
make build
python -m twine upload dist/*
```

Or use the manual "Publish to PyPI" GitHub workflow with `prizm-airflow-plugin`.

## License

MIT License
