airflow-supervisor
Run and monitor supervisord-managed jobs from Apache Airflow.
Manage a dedicated supervisord instance on an Airflow worker or an SSH host.
Define its programs directly in a Python DAG or in airflow-config YAML.
from datetime import datetime, timezone
from airflow import DAG
from airflow_supervisor import ProgramConfiguration, Supervisor, SupervisorAirflowConfiguration
with DAG(
dag_id="nightly-supervisor",
schedule="@daily",
start_date=datetime(2025, 1, 1, tzinfo=timezone.utc),
catchup=False,
) as dag:
supervisor = Supervisor(
dag=dag,
cfg=SupervisorAirflowConfiguration(
working_dir="/var/tmp/nightly-supervisor",
port="127.0.0.1:9001",
program={"nightly": ProgramConfiguration(command="/bin/sleep 5")},
),
)
The lifecycle writes configuration, starts supervisord and its programs, monitors
program state with airflow-ha, and stops and removes the instance on successful
completion. SupervisorSSH runs configuration and daemon commands over SSH;
program control and checks use the remote XML-RPC endpoint.
Documentation
Start with the tutorial to run a self-contained local job and check its cleanup. For an existing deployment, choose a how-to guide:
| Execution | Inline Python | airflow-config YAML |
|---|---|---|
| Local worker | Run a local job | Configure a local job |
| SSH host | Run a job over SSH | Configure an SSH job |
The API reference describes configuration fields, defaults, and DAG constraints. Why Airflow delegates process ownership explains worker placement, SSH and XML-RPC, and the Python/YAML configuration choices.
Use the log forwarding and health-check guide to collect program output in task logs and monitor retained services between runs.
Published documentation is available at airflow-laminar.github.io/airflow-supervisor.
Ecosystem
- supervisor-pydantic supplies supervisord models and lifecycle tools.
- systemd-pydantic and cron-pydantic model alternative runtimes.
- airflow-systemd provides the analogous systemd lifecycle.
- airflow-cron converts cron jobs into ordinary Airflow tasks.
- airflow-pydantic supplies declarative task, host, and connection models.
- airflow-config produces YAML-driven DAGs.
Metadata
Release files for airflow-supervisor 1.11.2
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 | |
|---|---|---|---|---|
| airflow_supervisor-1.11.2.tar.gz | 26.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| airflow_supervisor-1.11.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 65.9 kB
Release files / airflow_supervisor-1.11.2.tar.gz
| Download URL | airflow_supervisor-1.11.2.tar.gz |
|---|---|
| Size | 26.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
29616c832bb606776422f5224089fcf74bbf481631da0c54c0fa4570355b0fea
|
|
BLAKE2b-256 checksum How to use checksums |
8b7061384eb2000e9e5fcb7f531adee61eb01764728c8e2d15d9e112079130bb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / airflow_supervisor-1.11.2-py3-none-any.whl
| Download URL | airflow_supervisor-1.11.2-py3-none-any.whl |
|---|---|
| Size | 39.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c968e0ea90716849b31d4a2915de084dea56d5be86c88922882dd2d46d715787
|
|
BLAKE2b-256 checksum How to use checksums |
3b0e14497256a1defb2405db1435744fd79a4d27b4c34f82d12e2c1ee3af2cae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Security for airflow-supervisor 1.11.2
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.