Files
devops-lib-gcp/docs/wiki/pages/policy/cac-validation.md
T
2026-08-26 02:02:24 +05:30

2.2 KiB

Generated 2026-05-12 at base-sha 28f54cf7bef9. Type: concept. 0 sources.

CAC (Config-as-Code) Validation

CAC validation runs resources/com/meesho/validate_configs_v2.py on PR builds for repos opted in via the ValidateCacConfig whitelist. It validates application YAML configs against a schema to catch misconfigurations before they reach staging.

Where it applies in this repo

src/com/meesho/utilities/constructParam.groovy:ValidateCacConfigForRepo

resources/com/meesho/validate_configs_v2.py

Trigger condition:

  • Build is a PR build (env.CHANGE_ID is set).
  • ValidateCacConfigForRepo(config.ValidateConfig, repo_name) returns true.
    • Either the repo is in the ValidateCacConfig.yaml whitelist, OR
    • config.yaml has ValidateConfig: true.

What gets validated: The script reads configs/<module>/application-*.yml files from the service repo and checks them against the CAC schema. Validation errors fail the PR build — the commit cannot be merged until the config is corrected.

Used primarily by Go and Maven services. Node, Python, and PHP builders do not call CAC validation.

Why this design

Application config files (application-stg.yml, application-prd.yml) define Spring/Gin/etc. runtime config. A typo or wrong data type in these files doesn't fail compilation but causes a runtime crash after deployment. CAC validation catches these at PR time — when the feedback loop is cheapest.

The validation script is bundled as a library resource (resources/com/meesho/validate_configs_v2.py) so it travels with the library version rather than requiring a separate checkout.

Sources

(no raw/ sources at bootstrap)

Notes


← Wiki index