Apache Airflow provider for Datris — trigger and monitor Datris taps from DAGs.
Project description
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.
Tip: avoid double-firing
If a tap is driven by Airflow, mark it externally scheduled in Datris so the built-in scheduler doesn't also fire it.
Development
pip install -e ".[dev]"
pytest
License
Apache-2.0. The Datris engine itself is licensed separately (AGPL-3.0).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file airflow_provider_datris-0.1.1.tar.gz.
File metadata
- Download URL: airflow_provider_datris-0.1.1.tar.gz
- Upload date:
- Size: 11.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e00c7efc8f332ad882314b2ece67d8c2daa11ecd01383c623f6b3fb67428a0a9
|
|
| MD5 |
962a2e61351e79f2f44d9d16afac5708
|
|
| BLAKE2b-256 |
97b2ad5d1d5c0d351ccb3db912f138b8f3660bc3c7ae88ae1ad7d65017615a3a
|
Provenance
The following attestation bundles were made for airflow_provider_datris-0.1.1.tar.gz:
Publisher:
release.yml on datris/airflow-provider-datris
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
airflow_provider_datris-0.1.1.tar.gz -
Subject digest:
e00c7efc8f332ad882314b2ece67d8c2daa11ecd01383c623f6b3fb67428a0a9 - Sigstore transparency entry: 1696420859
- Sigstore integration time:
-
Permalink:
datris/airflow-provider-datris@5a7e636095516a21732bcdab3fec524f4554c961 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/datris
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@5a7e636095516a21732bcdab3fec524f4554c961 -
Trigger Event:
push
-
Statement type:
File details
Details for the file airflow_provider_datris-0.1.1-py3-none-any.whl.
File metadata
- Download URL: airflow_provider_datris-0.1.1-py3-none-any.whl
- Upload date:
- Size: 12.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7a8f4d6d9f0c31fe394a5c114a367269c878d744a401014c5ff1c520a687192
|
|
| MD5 |
a3f222e4e41b06c04b497802e95d758d
|
|
| BLAKE2b-256 |
c6a55a954094a3954123a41d9dc4012e1f08267b19ec82e4cc1511074af7a426
|
Provenance
The following attestation bundles were made for airflow_provider_datris-0.1.1-py3-none-any.whl:
Publisher:
release.yml on datris/airflow-provider-datris
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
airflow_provider_datris-0.1.1-py3-none-any.whl -
Subject digest:
b7a8f4d6d9f0c31fe394a5c114a367269c878d744a401014c5ff1c520a687192 - Sigstore transparency entry: 1696420988
- Sigstore integration time:
-
Permalink:
datris/airflow-provider-datris@5a7e636095516a21732bcdab3fec524f4554c961 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/datris
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@5a7e636095516a21732bcdab3fec524f4554c961 -
Trigger Event:
push
-
Statement type: