Move delayed deletion filters to CE in groups API

What does this MR do and why?

Due to a recent data-loss incident, the decision was made to down-tier delayed deletion. This MR moves delayed deletion API filters to CE for GraphQL and REST.

References

#535263 (closed)

Screenshots or screen recordings

Before After

How to set up and validate locally

  1. Run GDK in FOSS mode by setting FOSS_ONLY=1 or deleting the ee directory.

  2. Enable the downtier_delayed_deletion feature flag.

    Feature.enable(:downtier_delayed_deletion)
  3. Delete a group. This will cause it to be marked for deletion.

  4. Retrieve the groupss that were marked for deletion on a specific date. You should use the current date to return the group you just deleted.

    curl --header 'PRIVATE-TOKEN: TOKEN 'http://127.0.0.1:3000/api/v4/groups?marked_for_deletion_on=2025-04-15'
  5. Ensure GraphQL filters work

    query GroupsMarkedForDeletion {
      groups(markedForDeletionOn: "2025-04-15") {
        nodes {
          id
          name
          fullPath
          markedForDeletionOn
        }
      }
    }
Edited by Ayush Billore

Merge request reports

Loading