Draft: Finding UUID Migration Phase 4: Transition GitLab to use new_uuid

What does this MR do and why?

Implements Phase 4 of the Finding UUID migration (#587800).

This is a draft/placeholder MR that will be expanded to include the full transition from uuid to new_uuid.

Scope of Work

The full transition requires updating:

Model Layer

  • Update associations in Vulnerabilities::Finding using uuid as primary_key
  • Update Vulnerabilities::Feedback (uses finding_uuid)
  • Update Security::Finding (uses uuid as foreign key)
  • Update Security::FindingEnrichment (uses finding_uuid)
  • Update scopes: by_uuid, excluding_uuids

GraphQL

  • Update mutations accepting uuid argument:
    • Security::Finding::SeverityOverride
    • Security::Finding::CreateJiraIssueFormUrl
    • Security::Finding::CreateExternalIssueLink
    • Security::Finding::CreateVulnerability
    • Security::Finding::CreateMergeRequest
    • Security::Finding::Dismiss
    • Security::Finding::CreateIssue
    • Security::Finding::RevertToDetected
  • Update GraphQL types exposing uuid
  • Update resolvers using uuid

Serializers & API

  • Update Vulnerabilities::FindingEntity
  • Update Vulnerabilities::FeedbackEntity
  • Update REST API endpoints

Services & Finders

  • Update ingestion services
  • Update dismissal services
  • Update finders using uuid

Feature Flag

The use_new_uuid_for_findings feature flag enables incremental rollout:

if Feature.enabled?(:use_new_uuid_for_findings, project)
  finding.new_uuid
else
  finding.uuid
end

Dependencies

This MR targets the Phase 3 branch and cannot be merged until:

Migration Plan

Phase Issue MR Status
1 #587625 (closed) !220835 (merged) In Review
2 #587798 !220866 Pipeline Running
3 #587799 !220869 Pipeline Running
4 #587800 This MR Draft
5 #587801 - Not Started

MR acceptance checklist

Please evaluate this MR against the MR acceptance checklist.

Relates to #587800

Merge request reports

Loading