Skip to content

Add schema validations and guardrails for config_options (JSONB) column in build_metadata table

What does this MR do and why?

This MR controls/regulates the data persisted in config_options in build metadata.

  1. Added deep and strict schema validations
  2. Updated CODEOWNERS to control MRs
  3. Added Danger rule guardrails.
  4. Added logging for the invalidation errors along-with silently handling in prod and throwing exceptions in dev.
  5. Introduced FF ci_validate_config_options
  6. Local Testing - Validated schema assertions locally in rails console as well as ensured to check application logs locally for validation failures (silent in production, enforced otherwise). Also validated with turning the FF on vs off locally.
  7. Wrapped the entire change under the FF.

Testing Done with different combinations of env and FF enable/disable configurations for valid/invalid config_option schema. Screenshot_2025-07-04_at_1.35.53_AM Screenshot_2025-07-04_at_1.37.34_AM Screenshot_2025-07-04_at_2.23.30_AM Screenshot_2025-07-04_at_2.23.20_AM Screenshot_2025-07-04_at_2.24.02_AM Screenshot_2025-07-04_at_2.25.28_AM

CODEOWNERS Verification

Screenshot_2025-07-04_at_3.28.18_AM

Danger Rule Addition Verification

Screenshot_2025-08-13_at_2.34.37_PM

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 #547426 (closed)

Edited by Madhusudan Vaishnao

Merge request reports

Loading