Skip to content

Document and implement the CIEL release flow in CIEL Lab (Release > Deploy → QA Bulk Validation → Export version) #2474

@filiperochalopes

Description

@filiperochalopes

User story

As a release maintainer, I want a documented and guided release flow in CIEL Lab so I can run QA, deploy a version, and generate exports with clear gating and outcomes.

Use case

Start a release from Release > Deploy, run QA gating, create a version when allowed, and generate exports via Release > Export version with background processing and clear status.

Requirements

  • Provide a release flow with phases:
    • Configuration
    • QA
    • Deploy
    • Export
  • Configuration phase:
    • Input for version name
    • Default version name format: v[yyyy-mm-dd]
  • QA phase:
    • Run QA checks against CIEL/HEAD
    • If any QA error exists, stop the flow and do not proceed
    • Keep the QA report available at /qa/bulk-validation (HEAD source)
  • Deploy phase:
    • If there are only warnings (or lower severity), allow proceeding to create the version via OCL API
  • Export phase:
    • After creating the version, poll export availability every 10 minutes
    • Abort if export is not available after 72 attempts, and mark the release as incomplete
    • Once export is available:
      • Run QA bulk-validation for the export
      • If no errors, proceed with export scripts for:
        • SQL - CIEL Admin (OpenMRS v1.11)
        • mysqldump from CIEL Admin v2+?
        • Test: run Liquibase scripts from the new mysqldump (optional test step)
  • Storage and lifecycle:
    • Store exported files temporarily in local RustFS (S3-like bucket)
    • Make downloads available for 21 days
    • Automatically remove exports after 21 days to avoid consuming local storage
  • UI flow and orchestration:
    • The process starts in Release > Deploy
    • It runs in background, triggering steps in order across:
      • Release > QA Bulk Validation
      • Release > Export version
    • Export must be accessible from a dedicated page: Release > Export version

Acceptance criteria

  • A release can be started from Release > Deploy with a version name (default v[yyyy-mm-dd]).
  • If HEAD QA ends with any error, the release stops and the report remains accessible at /qa/bulk-validation (HEAD).
  • If HEAD QA has only warnings (or lower), the system can create a version via OCL API.
  • After version creation, the system polls export readiness every 10 minutes and aborts after 72 attempts if not available.
  • When export becomes available, QA bulk-validation is run on the export and blocks export scripts if errors exist.
  • Export artifacts are stored in RustFS, downloadable for 21 days, and automatically removed after that period.
  • The user can access export results via Release > Export version.

Metadata

Metadata

Labels

signal/large-scopeAffects multiple areas or systemsstage/triagedAI triage complete — scored and classifiedtype/docsDocumentation

Type

Projects

Status

Requirements

Relationships

None yet

Development

No branches or pull requests

Issue actions