Add YamlDefinitionUploader for AI Catalog YAML storage
What does this MR do and why?
Adds a CarrierWave uploader for storing AI Catalog YAML definitions in object storage:
-
Ai::Catalog::YamlDefinitionUploaderwithObjectStorage::Concern - Storage location:
:ai_catalog - Hashed path structure:
yaml_definitions/<version_id>withroot_hash: ai_catalog_item_id - Fixed filename:
definition.yml
This is Part 2 of a series splitting up !227895 to add object storage support for large YAML definitions in the AI Catalog.
MR Series
| MR | Description | Dependencies |
|---|---|---|
| 1a | !228120 (merged) - Database columns | None |
| 1b | !228122 (merged) - Infrastructure (feature flag, object storage config) | None |
| 2 (this MR) | YamlDefinitionUploader (CarrierWave uploader) | 1b |
| 3 | Model layer: Mount uploader, add transparent accessor | 1a, 2 |
| 4 | Service layer & schema: Upload in services, make yaml_definition optional | 3 |
Dependencies
This MR depends on !228122 (merged) (1b) being merged first, as it provides the storage_location :ai_catalog configuration.
Issue: #591638
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.