Skip to main content

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=true to a terminal rollup, streaming Datris log events into the task log.
  • Pushes publisher_token, pipeline_tokens, row_count, and duration_ms as 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/kill for 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).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

airflow_provider_datris-0.1.3.tar.gz (12.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

airflow_provider_datris-0.1.3-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

Details for the file airflow_provider_datris-0.1.3.tar.gz.

File metadata

  • Download URL: airflow_provider_datris-0.1.3.tar.gz
  • Upload date:
  • Size: 12.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for airflow_provider_datris-0.1.3.tar.gz
Algorithm Hash digest
SHA256 0b6638b65e44accb826f152ad0c7e810a507a4a0aa3dfc850cc1e41b274fe1b6
MD5 1a7481cc605f100c06e164ee6d7d665d
BLAKE2b-256 e38026640e80026c38dfacde1dbee94215c3ab6f5bc8d833e0e92907c952a5fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for airflow_provider_datris-0.1.3.tar.gz:

Publisher: release.yml on datris/airflow-provider-datris

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file airflow_provider_datris-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for airflow_provider_datris-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6e7228368255ad01c0fc258afc8f7027beacbadde8fcdab414cb392cd643c896
MD5 5368f8cf50f51d6bc17e97878855c1c5
BLAKE2b-256 2f8dee14012c568d1ba519215c54652e838a8c328f96fbe9ca311be305ac9301

See more details on using hashes here.

Provenance

The following attestation bundles were made for airflow_provider_datris-0.1.3-py3-none-any.whl:

Publisher: release.yml on datris/airflow-provider-datris

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page