dheerajturaga opened a new pull request, #75347: URL: https://github.com/apache/airflow/pull/75347
Part of [AIP-125 (Inbound Webhooks)](https://lists.apache.org/thread/p3dpnor4zwko8tldpncj6ftj1bpp18q7), which lets external services such as GitHub trigger Dags by sending webhooks to Airflow. Tasks can now wait for webhook deliveries through `BaseOperator.wait_for_webhook` (#75343), `WaitForWebhookOperator` (#75345) and `@task.webhook_wait` (#75346), but the core docs covered waits only from the Deployment Manager's side, and the 3.5 release note covered Phase 1 only. This adds `authoring-and-scheduling/webhook-waits.rst` for Dag authors, next to the topics page: the three ways to wait with a GitHub merge gate, the match grammar, what a task resumes with, timeouts, deliveries that arrive before the wait, retries and clears, why a wait is refused, and testing with `airflow dags test` and `airflow webhooks send-test`. It merges last of the Phase 2 layers. - `75167.significant.rst` (#75167), still the one significant newsfragment for 3.5, now also covers asset routes, webhook waits, the `inbound_wait` table, `awaiting_input` holding webhook waits, the `webhookWaits` route, the new outcomes and their redelivery rule, and upgrading the API servers before the workers. - The API servers that serve the Execution API check each wait against their own `[webhooks]` options and `webhook_<name>` connections, so they need the same options, connection access and source-type providers as the webhooks process, or every wait on those webhooks is refused. `webhooks.rst` and `web-stack.rst` say so. - `security_model.rst`'s leaked-secret risk now covers routed assets and waiting tasks. The GitHub page warns that a wait matching a `label` or `branch` can be resumed by whoever can set them, and that a delivery kept `early` for waits keeps its payload until `airflow db clean` removes its record after `delivery_retention`. - The GitHub page and the standard provider's connection page say what waits use the correlation key for: it decides which deliveries are kept early, while a wait matches attributes, not the key, and compares their values as strings. - The least-privilege grants for a delivery that goes to a wait come from the tables such a delivery was measured to read and write; as `webhooks.rst` says, no test pins those tables. - `webhooks.rst` narrows the `ended` status that #75344 describes: a delivery ends only a `registered` wait whose try stopped, since a `received` wait is offered no other delivery. - Pages that said `awaiting_input` means Human-in-the-loop now include webhook waits. The public interface lists `wait_for_webhook`, `WebhookWaitUnsupported`, the event shapes, the match grammar and the standard provider's operator and decorator, and keeps the register-wait Execution API route internal. The connection form's `store_payload` text now says it also bounds what a wait puts in XCom, so `get_provider_info.py` is regenerated. --- ##### Was generative AI tooling used to co-author this PR? - [X] Yes — Claude Code (Opus 5.5) Generated-by: Claude Code (Opus 5.5) following [the guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions) --- * Read the **[Pull Request Guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#pull-request-guidelines)** for more information. Note: commit author/co-author name and email in commits become permanently public when merged. * For fundamental code changes, an Airflow Improvement Proposal ([AIP](https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow+Improvement+Proposals)) is needed. * When adding dependency, check compliance with the [ASF 3rd Party License Policy](https://www.apache.org/legal/resolved.html#category-x). * For significant user-facing changes create newsfragment: `{pr_number}.significant.rst`, in [airflow-core/newsfragments](https://github.com/apache/airflow/tree/main/airflow-core/newsfragments). You can add this file in a follow-up commit after the PR is created so you know the PR number. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
