Skip to main content

Formal Apache Airflow provider facade for dpone self-service DAGs

Project description

apache-airflow-providers-dpone

The formal Apache Airflow provider facade for dpone self-service DAGs.

Install

Use a supported Airflow matrix cell. This example uses Python 3.12, Airflow 3.2.0, and the CNCF Kubernetes provider 10.14.0. Use Apache Airflow's official constraints for the Airflow install only, then pin Airflow again while adding this provider:

AIRFLOW_VERSION=3.2.0
PYTHON_VERSION=3.12
AIRFLOW_CONSTRAINTS_URL="https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt"

python -m pip install \
  "apache-airflow[cncf.kubernetes]==${AIRFLOW_VERSION}" \
  --constraint "${AIRFLOW_CONSTRAINTS_URL}"
python -m pip install \
  "apache-airflow==${AIRFLOW_VERSION}" \
  "apache-airflow-providers-cncf-kubernetes==10.14.0" \
  "apache-airflow-providers-dpone==0.73.21"
python -m pip check
python -c "from airflow.providers.dpone import load_dpone_dags; print(load_dpone_dags.__module__)"

The provider installs dpone-airflow-pack==0.73.21; it does not require the full dpone runtime or connector drivers in the scheduler image.

Load DAGs

from airflow.providers.dpone import load_dpone_dags, write_dpone_loader_ack

index_path = "/opt/airflow/dags/.dpone-cache/current/airflow-index.json"
load_report = load_dpone_dags(
    globals(),
    index_path=index_path,
)
write_dpone_loader_ack(
    load_report,
    index_path=index_path,
    ack_path="/opt/airflow/dags/.dpone-cache/status/loader-ack.json",
)
if load_report.fatal:
    error_code = (
        load_report.errors[0].get("code", "DPONE_AIRFLOW_INDEX_INVALID")
        if load_report.errors
        else "DPONE_AIRFLOW_INDEX_INVALID"
    )
    raise RuntimeError(
        f"{error_code}: dpone Airflow deployment index could not be loaded"
    )

write_dpone_loader_ack(...) performs bounded local filesystem I/O only. It atomically binds the completed parse report to the exact deployment and index digest, allowing an external controller to prove that visible DAG metadata is fresh. Keep the acknowledgement under the cache status/ directory.

The distribution owns Airflow provider discovery and the typed canonical namespace. The dependency-light dpone-airflow-pack package owns static pack reading and DAG construction. Importing the provider performs no remote cache, Airflow metadata, Connection, Variable, Vault, Kubernetes, or database I/O.

The deployment index read is bounded to 8 MiB and each listed artifact to 64 MiB by default. An index-level error returns fatal=True; do not represent that as a successful empty parse. After a trusted index is loaded, DAG spec and workload-pack size/SHA-256 failures are isolated to the affected DAG under the default skip_and_report policy. Recover by rematerializing the immutable release/deployment from trusted storage, never by editing cache artifacts in place.

DponeDag.from_spec(...) and DponeTaskGroup.from_pack(...) are typed escape hatches for hybrid DAGs. The recommended path is load_dpone_dags(...).

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

apache_airflow_providers_dpone-0.73.21.tar.gz (3.3 kB view details)

Uploaded Source

Built Distribution

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

File details

Details for the file apache_airflow_providers_dpone-0.73.21.tar.gz.

File metadata

File hashes

Hashes for apache_airflow_providers_dpone-0.73.21.tar.gz
Algorithm Hash digest
SHA256 ccb610412b7cb9b8b628ed06386201d6d213535b1a9fd0f622f4b1eb4d8266e6
MD5 7067dff21cde867b427f877e233f7616
BLAKE2b-256 39d3756e5ea1aed3c1b3daa095d4c4e76b4603f1eb2c0c355818448736e122f8

See more details on using hashes here.

File details

Details for the file apache_airflow_providers_dpone-0.73.21-py3-none-any.whl.

File metadata

File hashes

Hashes for apache_airflow_providers_dpone-0.73.21-py3-none-any.whl
Algorithm Hash digest
SHA256 4905b16e99672e4587e0dafc532d72b465d6d1b4a8112f062704a6343cc52c7a
MD5 0545d25d1ebd567a98f356866e500016
BLAKE2b-256 23bccd60214ce4978ca205c602516dfc0361b07479ce299464b924ce7b4b5856

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