airflow-provider-datris
An Apache Airflow provider for Datris. Airflow orchestrates; Datris executes. This package ships an operator that triggers a Datris tap, waits for the resulting pipeline to reach a terminal state, streams Datris logs into the Airflow task log, and pushes run tokens and metrics back as XComs.
No execution moves into Airflow — it only triggers and observes.
Requirements
- Apache Airflow 3.x
- A reachable Datris server (minimum version: the current Datris release at the time this provider was published)
Install
pip install airflow-provider-datris
Configure a connection
Add a connection of type Datris:
| Field | Value |
|---|---|
| Host | Datris base URL, e.g. https://datris.example.com |
| Password | API key (x-api-key) — only if the install requires one |
| Extra | {"verify": true, "timeout": 30} (optional) |
The API key is optional: leave it blank for a local single-tenant install
with useApiKeys=false. For a hosted/multi-tenant install, use a key that holds
the tap:run capability for the taps you trigger. A key scoped
tap:run:owner=self can only run taps it created.
Usage
from datris_provider.operators import DatrisRunTapOperator
ingest = DatrisRunTapOperator(
task_id="ingest_customers",
tap_name="customers_pg_to_snowflake",
datris_conn_id="datris_default",
wait_for_completion=True,
poll_interval=15,
tap_params={"since": "{{ ds }}"}, # optional per-run params (env vars in the tap)
)
Behavior
- Triggers the tap via
POST /tap/run(mode=run). - Polls
GET /pipeline/status?publishertoken=…&withrollup=trueto a terminal rollup, streaming Datris log events into the task log. - Pushes
publisher_token,pipeline_tokens,row_count, andduration_msas XComs (the operator's return value). - A debounced trigger (
status=skipped, persistedReason=debounced) is treated as success-with-warning. - On Airflow task kill/timeout, calls
POST /job/killfor the in-flight jobs.
One scheduler at a time
A tap is scheduled by either Datris or Airflow, never both. The operator enforces this from the tap's cron:
- Tap has a cron → Datris already schedules it → the operator refuses to trigger and fails the task.
- Tap has no cron (manual-only) → Airflow drives it → the operator triggers it normally.
To run a tap from Airflow, leave its cron empty in Datris.
Development
pip install -e ".[dev]"
pytest
License
Apache-2.0. The Datris engine itself is licensed separately (AGPL-3.0).
Metadata
Release files for airflow-provider-datris 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| airflow_provider_datris-0.1.3.tar.gz | 12.7 kB | With provenance | Details for airflow_provider_datris-0.1.3.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| airflow_provider_datris-0.1.3-py3-none-any.whl | Python 3 | none | any | Details for airflow_provider_datris-0.1.3-py3-none-any.whl |
Total release size: 25.4 kB
Release files / airflow_provider_datris-0.1.3.tar.gz
| Download URL | airflow_provider_datris-0.1.3.tar.gz |
|---|---|
| Size | 12.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0b6638b65e44accb826f152ad0c7e810a507a4a0aa3dfc850cc1e41b274fe1b6
|
|
BLAKE2b-256 checksum How to use checksums |
e38026640e80026c38dfacde1dbee94215c3ab6f5bc8d833e0e92907c952a5fe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 1, 2026.
Transparency logRelease files / airflow_provider_datris-0.1.3-py3-none-any.whl
| Download URL | airflow_provider_datris-0.1.3-py3-none-any.whl |
|---|---|
| Size | 12.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6e7228368255ad01c0fc258afc8f7027beacbadde8fcdab414cb392cd643c896
|
|
BLAKE2b-256 checksum How to use checksums |
2f8dee14012c568d1ba519215c54652e838a8c328f96fbe9ca311be305ac9301
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 1, 2026.
Transparency logSecurity for airflow-provider-datris 0.1.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for airflow_provider_datris-0.1.3.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 1, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.