Store pipeline variables as encrypted pipeline_artifacts for dual writes

Context

Partitions of p_ci_pipeline_variables take a lot of space. Our goal is to offload pipeline variables to object storage so we can eventually drop p_ci_pipeline_variables.

Overall approach

Through multiple MR iterations/discussions, we decided that the simplest way forward is to leverage the existing pipeline_artifacts framework to store pipeline variables into object storage. This involves formatting the variables data as JSON, encrypting it, and storing it as a new pipeline artifact with file_type = :pipeline_variables.

We have a POC MR that includes the full approach for the writes implementation: Draft: POC Write and read pipeline variables fr... (!218525 - closed).

Proposal

Following approval of the writes approach in the POC MR (!218525 (closed)), we should implement it in multiple incremental changes. These will be tracked using child tasks in this issue.

Edited Jan 16, 2026 by Leaminn Ma
Assignee Loading
Time tracking Loading