Skip to main content

Hightouch Provider for Airflow

Project description

Apache Airflow Provider for Hightouch

Provides an Airflow Operator and Hook for Hightouch. This allows the user to initiate a run for a sync from Airflow.

Installation

Pre-requisites: An environment running apache-airflow >= 1.10, including >= 2.

pip install airflow-provider-hightouch

Configuration

In the Airflow Connections UI, create a new connection for Hightouch.

  • Conn ID: hightouch_default
  • Conn Type: HTTP
  • Host: https://api.hightouch.com
  • Password: enter the API key for your workspace. You can generate an API key from your Workspace Settings

The Operator uses the hightouch_default connection id by default, but if needed, you can create additional Airflow Connections and reference them in the operator

Modules

HightouchTriggerSyncOperator

Starts a Hightouch Sync Run. Requires the sync_id or the sync_slug for the sync you wish to run.

Returns the sync_run_id of the sync it triggers.

The run is synchronous by default, and the task will be marked complete once the sync is successfully completed.

However, you can request a asynchronous request instead by passing synchronous=False to the operator.

If the API key is not authorized or if the request is invalid the task will fail. If a run is already in progress, a new run will be triggered following the completion of the existing run.

HightouchSyncRunSensor

Monitors a Hightouch Sync Run. Requires the sync_id and the sync_run_id of the sync you wish to monitor. To obtain the sync_run_id of a sync triggered in Airflow, we recommend using XComs to pass the return value of HightouchTriggerSyncOperator.

Examples

Creating a run is as simple as importing the operator and providing it with a sync_id. An example dag is available as well.

from airflow_provider_hightouch.operators.hightouch import HightouchTriggerSyncOperator

with DAG(....) as dag:
...
    my_task = HightouchTriggerSyncOperator(task_id="run_my_sync", sync_id="123")
    my_other_task = HightouchTriggerSyncOperator(task_id="run_my_sync", sync_slug="my-sync-slug")

Issues

Please submit issues and pull requests in our official repo: https://github.com/hightouchio/airflow-provider-hightouch

We are happy to hear from you, for any feedback please email the authors at pedram@hightouch.io.

Acknowledgements

Special thanks to Fivetran for their provider and Marcos Marx's Airbyte contribution in the core Airflow repo for doing this before we had to so we could generously learn from their hard work.

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_hightouch-5.0.0.tar.gz (8.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_hightouch-5.0.0-py3-none-any.whl (13.1 kB view details)

Uploaded Python 3

File details

Details for the file airflow_provider_hightouch-5.0.0.tar.gz.

File metadata

  • Download URL: airflow_provider_hightouch-5.0.0.tar.gz
  • Upload date:
  • Size: 8.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for airflow_provider_hightouch-5.0.0.tar.gz
Algorithm Hash digest
SHA256 5122cba6a3ac012e79c94e4aa94850de3e170a2adba29608b0cdce39327eede0
MD5 a64ec9ef95032bbe68c84fcdbe838a08
BLAKE2b-256 13f53e5bb4371cc2b76733c8e787e855f9cc9c020ffa35740325a7447b8e2ee0

See more details on using hashes here.

File details

Details for the file airflow_provider_hightouch-5.0.0-py3-none-any.whl.

File metadata

  • Download URL: airflow_provider_hightouch-5.0.0-py3-none-any.whl
  • Upload date:
  • Size: 13.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for airflow_provider_hightouch-5.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1d43ecc17b79625befc7d597041b0c3999c043670745487b7b5a71726516456e
MD5 9503344e1ea083880fa9de5a44a857e4
BLAKE2b-256 f79334fa9d6002a3474f7543a077e64cd851c19da7c9eb9b8ce378f2c5b52a07

See more details on using hashes here.

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