aws-cloudformation / aws-cloudformation/cloudformation-validate

FATAL rule classification needs to be stricter

Open
#69 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.