Skip to content

Allow approval node timeout to resolve as success (not just failure) #16528

Description

@RHatDev

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

  1. Build a Workflow Job Template with two or more nodes running
    in parallel.
  2. 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).
  3. Set a timeout on the Approval node.
  4. 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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions