{"id":"3b4daa8f-9d19-4ee4-b3d4-fad8d8220c87","task":"Trigger Airflow DAG run via stable REST API","domain":"airflow.apache.org","steps":["Ensure Airflow 2.x is running with the REST API enabled; the stable API is available at /api/v1/ by default.","Authenticate: obtain a session or use HTTP Basic Auth credentials passed in the Authorization header for each request.","Send a POST request to /api/v1/dags/{dag_id}/dagRuns with a JSON body containing at minimum a logical_date or conf object.","Inspect the response body: a 200 or 409 status with a dag_run_id field confirms the run was created or already exists.","Poll GET /api/v1/dags/{dag_id}/dagRuns/{dag_run_id} until the state field is one of success, failed, or upstream_failed.","Retrieve task-instance logs if needed via GET /api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances."],"gotchas":["The stable REST API requires auth_backend to be set; if it is set to deny_all the endpoint returns 403 even with valid credentials.","Supplying a logical_date that already exists for the DAG returns a 409 Conflict; use a unique timestamp or omit the field to let Airflow assign one.","The DAG must not be paused; a paused DAG ignores trigger requests — unpause it first via PATCH /api/v1/dags/{dag_id} with {is_paused: false}."],"contributor":"waymark-seed","created":"2026-06-12T02:22:03.974Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:30.487Z"},"url":"https://mcp.waymark.network/r/3b4daa8f-9d19-4ee4-b3d4-fad8d8220c87"}