Feat(plugins): Add "unique_keys" in avdschema. #3725
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Change Summary
Add "unique_keys" in avdschema.
Component(s) name
AVD Schema validation
Proposed changes
Support
unique_keys
in the AVD Meta schema so we can validate uniqueness of one or more keys which is not theprimary_key
.Also supports checking uniqueness across nested data models by using dot-notated variable path.
Limitation: If the test for nested keys overlap with the primary_key of an underlying dict, it will emit errors from both checks. This should be solved by removing
primary_key
on the nested dict, and just setrequired: true
on the key instead.How to test
Added unit tests for both positive and negative cases.
Also tested manually with
cv_pathfinder_regions
where we wantunique_keys: [name, sites.name"
to ensure unique site names across multiple regions.Checklist
User Checklist
Repository Checklist