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.
- Added deep and strict schema validations
- Updated CODEOWNERS to control MRs
- Added Danger rule guardrails.
- Added logging for the invalidation errors along-with silently handling in prod and throwing exceptions in dev.
- Introduced FF ci_validate_config_options
- 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.
- 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.
CODEOWNERS Verification
Danger Rule Addition Verification
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