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::Findingusinguuidas primary_key -
Update
Vulnerabilities::Feedback(usesfinding_uuid) -
Update
Security::Finding(usesuuidas foreign key) -
Update
Security::FindingEnrichment(usesfinding_uuid) -
Update scopes:
by_uuid,excluding_uuids
GraphQL
-
Update mutations accepting
uuidargument:Security::Finding::SeverityOverrideSecurity::Finding::CreateJiraIssueFormUrlSecurity::Finding::CreateExternalIssueLinkSecurity::Finding::CreateVulnerabilitySecurity::Finding::CreateMergeRequestSecurity::Finding::DismissSecurity::Finding::CreateIssueSecurity::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:
- Phase 1 (!220835 (merged)) merges
- Phase 2 (!220866) merges
- Phase 3 (!220869) merges
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