Skip to content

feature: Add archived status for workflows older than 30 days.

Summary

Implement an archived status for workflows that are older than 30 days, making them read-only in the UI while maintaining their visibility for historical reference.

Context

Following the implementation of daily time-based partitioning for the duo_workflows_checkpoints table (#470469 (closed)), we automatically drop workflow checkpoints after 30 days. This feature will align the UI behavior with this data retention policy.

Problem Statement

Currently, workflows older than 30 days appear as if they can be restarted or modified, even though their underlying checkpoint data has been removed. This creates a confusing user experience.

Proposed Solution

Backend Changes:

  • Add archived boolean field to workflow GraphQL schema
  • A workflow is archived if it is older than 30 days and is not in created status and is older than 1 day.
  • Update workflow API endpoints to include archived status
  • Mark workflows as archived when they exceed 30 days

Frontend Changes:

Display archived workflows as grayed out and non-clickable in:

  • GitLab IDE
  • GitLab UI workflow lists
  • Any other workflow interfaces

Add visual indicators (e.g., archive icon, "Archived" label) Disable all interactive actions on archived workflows

Acceptance Criteria

  • Workflows older than 30 days are automatically marked as archived
  • [TBD] UI implementation: Archived workflows appear grayed out in all UI locations with no interaction
  • GraphQL and REST APIs return archived status
  • Successful workflows with no checkpoints appear as stalled.

Technical nodes

  • Consider performance implications when querying archived status
Edited by Alper Akgun