Store artifacts:expose_as into a different table
Problem
options => artifacts:expose_as is needed long term for the MR widgets exposing artifacts and it's used when has_exposed_artfacts: true
This should be considered intrinsic data because it's used in MR widgets to display artifacts.
Proposal
However, rather than copying it into ci_builds, we should look into extracting it out into a dedicated table. This is likely a low-usage feature. We can isolate the data and evaluate whether to deprecate it.
Alternate proposal
Investigate the feasibility of adding the columns exposed_as and exposed_paths to p_ci_job_artifacts as detailed in #549079 (comment 2573177199).
Implementation plan
POC MR: Draft: POC - Store and read expose_as data from... (!196910 - closed)
We've decided to migrate the artifacts:expose_as data to p_ci_job_artifacts for long term storage. The implementation steps are:
| Description | Issue |
|---|---|
1. Add the columns exposed_as and exposed_paths to p_ci_job_artifacts with the applicable model validations per POC. The text validation on exposed_as should be done asynchronously (see !197728 (comment 2629677384)). |
|
| 2. Add the logic to start updating the columns going forward and read from both old/new data sources. |
|
3. Migrate the existing data from p_ci_builds_metadata to the new columns in p_ci_job_artifacts. |
#555430 (closed) |