Repository navigation
fix(rules): accept neptune and sqlserver-dev engines in E3690/E3691 - #4830
Merged
kddejong merged 1 commit intoOct 22, 2026
Merged
Conversation
kddejong
approved these changes
Oct 22, 2026
kddejong
approved these changes
Oct 22, 2026
E3690 (DBCluster) and E3691 (DBInstance) rejected Engine values that RDS serves and CloudFormation accepts: neptune on both resources, and sqlserver-dev-ee / sqlserver-dev-se on DBInstance (both documented as valid). The engine lists are hand-maintained in scripts/update_schemas_from_aws_api.py, so add the missing engines there and in the generated extension schemas. Fixes aws-cloudformation#4822.
kddejong
force-pushed
the
fix/rds-engine-enum-4822
branch
from
October 22, 2026 15:10
a8e9181 to
833f7ed
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #4830 +/- ##
=======================================
Coverage 94.68% 94.68%
=======================================
Files 439 439
Lines 15973 15973
Branches 3097 3097
=======================================
Hits 15124 15124
Misses 467 467
Partials 382 382
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
kddejong
approved these changes
Oct 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Issue #, if available:
#4822
Description of changes:
E3690 (
AWS::RDS::DBCluster) and E3691 (AWS::RDS::DBInstance) rejectedEnginevalues that RDS serves and CloudFormation accepts, producing false positives on valid templates:Engine: neptuneon bothAWS::RDS::DBClusterandAWS::RDS::DBInstance(RDS serves theneptuneengine, the resource schemas typeEngineas a plain string, and CloudFormation creates the stack)Engine: sqlserver-dev-eeandEngine: sqlserver-dev-seonAWS::RDS::DBInstance(both are documented valid values)Root cause: the engine allowlists are hand-maintained in
scripts/update_schemas_from_aws_api.py(_ENGINE_SUPPORTEDand the cluster engine lists) rather than derived from what RDS serves, and the three engines were missing. The generated extension schemas (aws_rds_dbinstance/engine_version.json,aws_rds_dbcluster/engine_version.json) inherited the gap.Changes:
scripts/update_schemas_from_aws_api.py: addedneptuneto_ENGINE_SUPPORTEDand to the DB cluster engine lists (including the cluster deprecated writer, keeping it in parity with the cluster writer); addedsqlserver-dev-eeandsqlserver-dev-seto_ENGINE_SUPPORTED. The DB instance deprecated writer keeps its existing 4-engine subset, matching the established pattern for the other supported engines.Engineenum inaws_rds_dbinstance/engine_version.json,neptuneadded to theEngineenum inaws_rds_dbcluster/engine_version.json. Per-engineEngineVersionentries for the new engines will populate on the next script run with API access; until thenEngineVersionis unconstrained for these engines (fail-open, the safe direction).test/unit/rules/resources/rds/test_db_engine_version_data.py: regression tests that load the real extension schemas and assert the issue's cases pass while unknown engines still fail.Verification:
Neptunecase), all 9 pass post-fix.test/unit/rules/suite: 2033 passed.ruff checkandruff format --checkclean on changed files.By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.