Cohort B: Migrate remaining org-sharded tables to support organization transfer
## Summary
This epic tracks the work to migrate the remaining org-sharded tables that are currently marked as `todo` in their `organization_transfer_support` field. These tables must be updated to support organization transfer as part of Cohort B migration.
## Background
The tables requiring migration are tracked in `spec/lib/gitlab/organizations/organization_transfer_support_spec.rb` under the `allowed_todo_tables` array. Each table sharded by `organization_id` must have its `db/docs/*.yml` file updated to `organization_transfer_support: supported` after implementing transfer logic in the appropriate service.
## Carried over from Cohort A
The following open issues from the Cohort A epic are being incorporated as child issues:
- https://gitlab.com/gitlab-org/gitlab/-/work_items/593762 - Add Missing belongs_to Associations for Database Foreign Keys
- https://gitlab.com/gitlab-org/gitlab/-/work_items/591686 - Clean up orphaned labels with organization_id
- https://gitlab.com/gitlab-org/gitlab/-/work_items/581616 - Transfer TLG to Org: Support organization_users
## Exit Criteria
- [ ] All tables in `allowed_todo_tables` have been migrated with `organization_transfer_support: supported`
- [ ] Transfer specs validate all supported tables
- [ ] The `allowed_todo_tables` array in the spec file is empty
## Implementation Notes
- Reference: `spec/lib/gitlab/organizations/organization_transfer_support_spec.rb`
- Transfer services: `app/services/**/organizations/transfer/`
- Database docs: `db/docs/*.yml`
<!-- STATUS NOTE START -->
## Status 2026-04-23
<!-- Create a high level summary (optional but encouraged) -->
:clock1: **total hours spent this week by all contributors**: ~40
:airplane: **in progress**:
- https://gitlab.com/gitlab-org/gitlab/-/work_items/593762+ \
14/15 MR's merged. \
running into random CI failures that have nothing to do with the final MR. \
been happening the whole week.
- https://gitlab.com/gitlab-org/gitlab/-/work_items/594592+ \
Currently have a plan for `sbom_*` tables.
:issue-blocked: **blockers**:
- N/A
:arrow_forward: **next**:
- https://gitlab.com/gitlab-org/gitlab/-/work_items/593762+ \
1 more MR to get over the line :sweat_smile: \
this will help with https://gitlab.com/gitlab-org/gitlab/-/work_items/594594+ so that we can get a better picture of the various associations between tables and find a pattern for migrating the other tables.
- https://gitlab.com/gitlab-org/gitlab/-/work_items/594592+ \
Working on `vulnerability_export_*` tables next
_Copied from https://gitlab.com/groups/gitlab-com/gl-infra/-/epics/2010#note_3277477617_
<!-- STATUS NOTE END -->
epic