Skip to main content

SkaleData's Airflow extensions: drop-in replacements for upstream Airflow providers that talk to SkaleData-managed services. Imports live under the `skale.providers.*` namespace, mirroring Airflow's own provider layout.

Project description

airflow-provider-skaledata

SkaleData's Airflow extensions. Pre-installed in ghcr.io/skaledata/airflow — if you're using the SkaleData base image you don't need to do anything.

If you're running your own Airflow image:

pip install airflow-provider-skaledata

The PyPI distribution is airflow-provider-skaledata (matches the Apache community-provider naming convention). Imports live under the skale.providers.* namespace.

Namespace

Mirrors Airflow's own provider layout (airflow.providers.<name>.{hooks,operators,triggers}.<name>) under skale.providers.*:

from skale.providers.airbyte.hooks.airbyte    import AirbyteHook
from skale.providers.airbyte.operators.airbyte import AirbyteTriggerSyncOperator
from skale.providers.airbyte.sensors.airbyte  import AirbyteJobSensor
from skale.providers.airbyte.triggers.airbyte  import AirbyteSyncTrigger

Subsequent SkaleData providers (skale.providers.<other>...) slot in here.

What's in it today

skale.providers.airbyte — bearer-auth shim for managed Airbyte

Drop-in replacements for the upstream Airbyte provider's hook, operator, sensor, and trigger that authenticate via a static bearer token (your SkaleData sdk_* API key) instead of the upstream OAuth2 /applications/token flow.

SkaleData ships its managed Airbyte with global.auth.enabled: false. The Caddy ingress in front of Airbyte validates the API key at the edge, so the standard apache-airflow-providers-airbyte connector — which only supports OAuth2 client credentials or no-auth — can't talk to it.

Airflow connection setup

Field Value
Conn Type Airbyte
Host https://<cluster>.skaledata.run/api/public/v1/
Password (client secret) sdk_... (your SkaleData API key)
Login / Token URL leave blank

DAG usage

from datetime import datetime
from airflow.decorators import dag
from skale.providers.airbyte.operators.airbyte import AirbyteTriggerSyncOperator


@dag(start_date=datetime(2026, 1, 1), schedule=None, catchup=False)
def run_airbyte_sync():
    AirbyteTriggerSyncOperator(
        task_id="sync_postgres_to_warehouse",
        airbyte_conn_id="airbyte_default",
        connection_id="<your-airbyte-connection-uuid>",
        deferrable=True,
    )


run_airbyte_sync()

AirbyteTriggerSyncOperator is a drop-in for the upstream AirbyteTriggerSyncOperator — same arguments, same async/deferrable semantics.

Asynchronous (idempotent) usage

With asynchronous=True the operator returns the Airbyte job id immediately and AirbyteJobSensor waits on it as a separate task. Because the submit and the wait are split, a sensor retry re-checks the existing job instead of kicking off a duplicate sync — mirroring the upstream async example:

from datetime import datetime
from airflow.decorators import dag
from skale.providers.airbyte.operators.airbyte import AirbyteTriggerSyncOperator
from skale.providers.airbyte.sensors.airbyte import AirbyteJobSensor


@dag(start_date=datetime(2026, 1, 1), schedule=None, catchup=False)
def run_airbyte_sync_async():
    trigger_sync = AirbyteTriggerSyncOperator(
        task_id="trigger_airbyte_sync",
        airbyte_conn_id="airbyte_default",
        connection_id="<your-airbyte-connection-uuid>",
        asynchronous=True,
    )
    wait_for_sync = AirbyteJobSensor(
        task_id="wait_for_airbyte_sync",
        airbyte_conn_id="airbyte_default",
        airbyte_job_id=trigger_sync.output,
        deferrable=True,
    )
    trigger_sync >> wait_for_sync


run_airbyte_sync_async()

AirbyteJobSensor supports both poke mode (default) and deferrable=True, same as upstream.

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_skaledata-0.4.0.tar.gz (6.0 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_skaledata-0.4.0-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file airflow_provider_skaledata-0.4.0.tar.gz.

File metadata

File hashes

Hashes for airflow_provider_skaledata-0.4.0.tar.gz
Algorithm Hash digest
SHA256 f6eab7e76a27dad27bbcc3bdcd355611a0dbe8f61f3047b3cc3a320836f472fa
MD5 8fa577510fcd58ef3b69a3c86d022f0d
BLAKE2b-256 9a4489ddeff004a233eb4f02cd0f453c69692ab6991a34890d47a754172e3851

See more details on using hashes here.

Provenance

The following attestation bundles were made for airflow_provider_skaledata-0.4.0.tar.gz:

Publisher: release.yml on skaledata/airflow-base

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_skaledata-0.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for airflow_provider_skaledata-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 359db9b02250f33a51b7776965086f1cf5a2f4a7e4ece194ef17e42d96063a3f
MD5 dd3f0fa8dda8384ead0d4d273457a4d0
BLAKE2b-256 9bab8196aa11ff0d759aef0a5f9f72daea20c83b1a03bbd6f5630658e3a18a0c

See more details on using hashes here.

Provenance

The following attestation bundles were made for airflow_provider_skaledata-0.4.0-py3-none-any.whl:

Publisher: release.yml on skaledata/airflow-base

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