Allow approval node timeout to resolve as success (not just failure)
Please confirm the following
- I agree to follow this project's code of conduct.
- I have checked the current issues for duplicates.
- I understand that AWX is open source software provided for free and that I might not receive a timely response.
Feature type
New Feature
Feature Summary
ISSUE TYPE
- Feature Idea
SUMMARY
Currently, an approval node's timeout always resolves as "timed out"/failed, routing the workflow down the failure/always path. There's no way to configure a timeout to resolve as success instead. This makes approval nodes unusable as a pure "convergence point" unless a human clicks approve every single run.
USE CASE
When multiple nodes run in parallel, I want to converge them into a single node before continuing, purely to keep the workflow visualizer diagram clean and readable (one funnel point instead of multiple fan-out edges reconnecting later). An approval node is the natural convergence node type for this in the UI (it accepts multiple parent edges the way "All" convergence works).
However, using an approval node for this purpose today means every workflow run pauses and requires a human to manually click "approve," even though no actual approval decision is needed. it's being used structurally, not for gating. This creates unnecessary manual work and notification noise for users who just want the visual convergence, not an approval gate.
If a timeout could be configured to resolve as success, I could set a short timeout (e.g. a few seconds) on the convergence approval node and let it continue automatically, giving me clean visual convergence without requiring anyone to click approve.
PROPOSED IMPLEMENTATION
Add a field on the approval node (e.g. timeout_action) with values
fail (current/default, for backward compatibility) and succeed.
On timeout, the node routes to the success path if timeout_action is
succeed.
This would need to be surfaced in:
- The approval node model/API (workflow_job_template_nodes)
- The AWX UI (approval node creation/edit form)
- The awx.awx collection's workflow_job_template_node module
ADDITIONAL CONTEXT
An alternative solution to this same problem would be a dedicated "convergence" or "join" node type that isn't an approval node at all, used purely to merge multiple parent edges into one for layout/visual purposes, with no wait/approval semantics. Either approach (configurable approval timeout, or a new join-node type) would solve this use case, noting both here in case the maintainers prefer a different design direction.
Select the relevant components
- UI
- API
- Docs
- Collection
- CLI
- Other
Steps to reproduce
- Build a Workflow Job Template with two or more nodes running in parallel.
- Add an Approval node as the convergence point for those parallel branches (used only to merge the visual flow, not for an actual approval decision).
- Set a timeout on the Approval node.
- Run the workflow.
Current results
Every run pauses and requires a user to manually click "Approve." On timeout, the node is always marked failed with no option to route it to success instead.
Sugested feature result
Expected: the convergence node continues automatically down the success path without requiring manual approval, while still showing a clean converged flow in the Workflow Visualizer.
Additional information
Would also speed up test runs of workflows, which currently need to stub out approval or wait on a timeout to proceed.
Source: ansible/awx