Skip to content

Fix schema false positives and add VirtualName validation rules#4456

Open
kddejong wants to merge 1 commit intoaws-cloudformation:mainfrom
kddejong:fix/schema-false-positives
Open

Fix schema false positives and add VirtualName validation rules#4456
kddejong wants to merge 1 commit intoaws-cloudformation:mainfrom
kddejong:fix/schema-false-positives

Conversation

@kddejong
Copy link
Copy Markdown
Contributor

Schema corrections

  • AmazonMQ::Broker: Use enumCaseInsensitive for StorageType (accepts efs/EFS)
  • CloudFormation::StackSet: Allow / in ExecutionRoleName for IAM role paths
  • Bedrock::Guardrail: Increase RegexesConfig maxItems from 10 to 30
  • MSK::Cluster: Remove NumberOfBrokerNodes maximum (adjustable quota)
  • Lambda::Function: Remove global Layers maxLength, add regional rule E3716
  • Logs::LogAnomalyDetector: Add * to LogGroupArnList pattern for ARN wildcards
  • EC2::NetworkInterface: Add interface to InterfaceType enum
  • AutoScaling::ASG: Replace HealthCheckType enum with pattern for comma-separated values
  • Backup::BackupSelection: Remove 50-char length limit from SelectionName pattern
  • Glue::Job: Remove NumberOfWorkers maximum (adjustable quota)

New rules

  • E3715: Validate VirtualName requires ephemeralN format when no Ebs specified
  • W3698: Warn on non-ephemeral VirtualName alongside Ebs block device
  • E3716: Regional Lambda layer ARN maxLength validation (commercial regions only)

Bug fixes

  • Fix update_specs_from_pricing.py crash on None instanceType from pricing API
  • Add skip_resource_property_paths to smithy script for per-resource overrides
  • Regenerate manual patches via update_schemas_manually.py

@codecov
Copy link
Copy Markdown

codecov bot commented Apr 10, 2026

Codecov Report

❌ Patch coverage is 88.09524% with 5 lines in your changes missing coverage. Please review.
✅ Project coverage is 93.44%. Comparing base (0bbabc9) to head (4eeacfe).
⚠️ Report is 70 commits behind head on main.

Files with missing lines Patch % Lines
...lint/rules/resources/ectwo/VirtualNameEphemeral.py 76.47% 2 Missing and 2 partials ⚠️
...s/resources/ectwo/BlockDeviceMappingVirtualName.py 93.33% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4456      +/-   ##
==========================================
- Coverage   93.54%   93.44%   -0.11%     
==========================================
  Files         418      452      +34     
  Lines       14145    14886     +741     
  Branches     2817     2891      +74     
==========================================
+ Hits        13232    13910     +678     
- Misses        567      597      +30     
- Partials      346      379      +33     
Flag Coverage Δ
unittests 93.44% <88.09%> (-0.09%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@kddejong kddejong force-pushed the fix/schema-false-positives branch 4 times, most recently from 17838d9 to 8fe5fe4 Compare April 11, 2026 13:59
Schema corrections:
- AmazonMQ::Broker: Use enumCaseInsensitive for StorageType (accepts efs/EFS)
- CloudFormation::StackSet: Allow / in ExecutionRoleName for IAM role paths
- Bedrock::Guardrail: Increase RegexesConfig maxItems from 10 to 30
- MSK::Cluster: Remove NumberOfBrokerNodes maximum (adjustable quota)
- Lambda::Function: Remove global Layers maxLength, add regional rule E3716
- Logs::LogAnomalyDetector: Add * to LogGroupArnList pattern for ARN wildcards
- EC2::NetworkInterface: Add interface to InterfaceType enum
- AutoScaling::ASG: Replace HealthCheckType enum with pattern for comma-separated values
- Backup::BackupSelection: Remove 50-char length limit from SelectionName pattern
- Glue::Job: Remove NumberOfWorkers maximum (adjustable quota)

New rules:
- E3715: Validate VirtualName requires ephemeralN format when no Ebs specified
- W3698: Warn on non-ephemeral VirtualName alongside Ebs block device
- E3716: Regional Lambda layer ARN maxLength validation (commercial regions only)

Bug fixes:
- Fix update_specs_from_pricing.py crash on None instanceType from pricing API
- Add skip_resource_property_paths to smithy script for per-resource overrides
- Regenerate manual patches via update_schemas_manually.py
@kddejong kddejong force-pushed the fix/schema-false-positives branch from 8fe5fe4 to 4eeacfe Compare April 11, 2026 14:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant