Update Import::Offline::Configuration to optionally belong to a BulkImport
What does this MR do and why?
This adds an optional :belongs_to relationship to BulkImport on Import::Offline::Configuration so that it may be used for both offline transfer imports and exports. offline_export_id is also made nullable on import_offline_configurations so that each record may belong to an offline transfer or bulk import, but not both.
During offline transfer exports, an offline configuration belongs to Import::Offline::Export to store object storage credentials during export. However, offline transfer imports will take advantage of existing direct transfer architecture, so this new association to bulk import objects allows object storage configuration to be used instead of GitLab API connection credentials.
References
- Offline transfer ADR: https://handbook.gitlab.com/handbook/engineering/architecture/design-documents/offline_direct_transfer_migrations/
How to set up and validate locally
Ensure specs pass and direct transfers can be performed normally. There are no changes to GitLab behavior to verify and there is currently no code that uses this association.
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Related to #588518 (closed)