aws-cloudformation / aws-cloudformation/cloudformation-validate
FATAL rule classification needs to be stricter
- Dominant language
- Rust
- Stars
- 7
- Forks
- 4
- Avg merge
- 17h 36m
- Merged PRs (30d)
- 64
Description
We need to have a clearer discussion of FATAL vs ERROR.
FATAL was agreed to have clear semantics:
- Guaranteed to fail your deployment
- Cannot be suppressed (no point in that, because it's guaranteed to fail your deployment)
I'm seeing a lot of rules currently marked as FATAL that currently do some service-specific content filtering, like "oh this value is too high or too low or doesn't match a regex". Those are all subject to data pollution (service can advertise the constraints incorrectly) or change (service may stretch the boundaries in the future).
If that happens, our users will be stuck with an error that is incorrect, but also one that is insuppressible by the rules that we set for FATAL.
We should probably only use FATAL for "malformed CloudFormation template"-level errors, where we are 100% certain that this won't execute correctly. This is AWS, which means that any rule you think you can divine will be broken by some team somewhere. Any guess is apt to be wrong, and we can't subject our users to those.
Contributor guide
Research direction
Start by inventorying the rules currently classified as FATAL and compare each one with the stated guarantee that deployment must fail and suppression must be impossible. Done means genuinely malformed-template failures remain FATAL, while uncertain or service-specific constraints are classified as ERROR and can be suppressed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- devops, infrastructure
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100