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_defaultConn Type:HTTPHost:https://api.hightouch.comPassword: 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.
Metadata
Release files for airflow-provider-hightouch 5.0.0
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_hightouch-5.0.0.tar.gz | 8.0 kB | Without provenance | Details for airflow_provider_hightouch-5.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| airflow_provider_hightouch-5.0.0-py3-none-any.whl | Python 3 | none | any | Details for airflow_provider_hightouch-5.0.0-py3-none-any.whl |
Total release size: 21.0 kB
Release files / airflow_provider_hightouch-5.0.0.tar.gz
| Download URL | airflow_provider_hightouch-5.0.0.tar.gz |
|---|---|
| Size | 8.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5122cba6a3ac012e79c94e4aa94850de3e170a2adba29608b0cdce39327eede0
|
|
BLAKE2b-256 checksum How to use checksums |
13f53e5bb4371cc2b76733c8e787e855f9cc9c020ffa35740325a7447b8e2ee0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Release files / airflow_provider_hightouch-5.0.0-py3-none-any.whl
| Download URL | airflow_provider_hightouch-5.0.0-py3-none-any.whl |
|---|---|
| Size | 13.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1d43ecc17b79625befc7d597041b0c3999c043670745487b7b5a71726516456e
|
|
BLAKE2b-256 checksum How to use checksums |
f79334fa9d6002a3474f7543a077e64cd851c19da7c9eb9b8ce378f2c5b52a07
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Security for airflow-provider-hightouch 5.0.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A 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.