Skip to content

Feature or Permissions Toggle: Disable manual approval flows (UI) during drag/drop + freight selection #5287

@etetar

Description

@etetar

Checklist

  • I've searched the issue queue to verify this is not a duplicate feature request.
  • I've pasted the output of kargo version, if applicable.
  • I've pasted logs, if applicable.

Proposed Feature

Add the ability to hide/disable manual approval flows in the UI based on user permissions or configuration.

Specific Capabilities

  1. Prevent drag-and-drop of ineligible (unverified/unpromoted upstream) freight to ineligible stages
  2. Disable manual freight selection for ineligible freight (those displaying a warning icon)

Implementation Approach

Recommended approach: Tie these restrictions to the freights/status permission. Users without this permission would have no access to manual approval workflows in the UI.

Alternative approaches:

  • Configuration toggles at the Stage level
  • Configuration toggles at the Warehouse/Freight level
  • Configuration toggles at the Project level

Note: Configuration-based approaches may be more complex to implement or less practical, as few admins would want to fully disable manual approvals (for all users).

Motivation

Current Behavior

As of version 1.8.0, two new UI features allow users to initiate promotions of ineligible freight:

  1. Drag-and-drop: Users can drag ineligible freight to ineligible stages with no visual indication that the freight is ineligible during the drag operation
  2. Manual freight selection: Users can click "Select" on freight objects marked with a warning icon

Freight with warning icons

Both actions trigger a manual approval dialog:

Manual approval dialog

Currently, the system properly enforces permissions—users without freights/status permissions receive an error when clicking "Approve" in the dialog, preventing unauthorized manual approvals.

The Problem

While the permission enforcement works correctly, the UI allows users to initiate workflows they can never complete, leading to:

  1. User confusion: Users without approval permissions can drag freight and open the manual promotion dialog, only to be denied when they click "Approve"
  2. UI clutter: During manual freight selection, ineligible freight objects (with warning icons) are visible and clickable even when the user will never be able to approve them
  3. Poor user experience: There's no indication during drag-and-drop that freight is ineligible for the target stage

Use Case

In many production environments, the majority of users should never be allowed to bypass verifications or perform manual approvals. For these users, the current UI presents options they cannot use, creating unnecessary confusion and friction.

Desired Outcome

Users without manual approval permissions should have a cleaner, more intuitive experience:

  • Cannot drag ineligible freight to ineligible stages
  • Cannot click "Promote" on freight objects with warning indicators, or even see this option

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/enhancementAn entirely new featurekind/proposalIndicates maintainers have not yet committed to a feature requestneeds/areaIssue or PR needs to be labeled to indicate what parts of the code base are affectedneeds/priorityPriority has not yet been determined; a good signal that maintainers aren't fully committed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions