Skip to content

Latest commit

 

History

History
192 lines (172 loc) · 8.35 KB

CHANGELOG.md

File metadata and controls

192 lines (172 loc) · 8.35 KB

Roadmap

  • Be able to test transforms (include)
  • Add tests around common resource types
    • AutoScaling
    • Ec2 Instances
    • Load Balancers
    • RDS
  • Create a framework to test ARNs
  • Test Ref resources to IAM Roles have good assume role documents. Example: Lambda Function Ref refers to an IAM Role that can be assume by Lambda.
  • More Warnings around hard coded values (Regions, AccountIds) to help with the practice of reusability

0.4.2

Features
  • Update rule E3020 to support AAAA record checks
Fixes
  • Fix many rules that would fail if a sub parameter had a space at the beginning or end
  • Fix crashing issues when trying to get resources that aren't properly configured

0.4.1

Features
  • Update CloudFormation Specs to July 20th, 2018
Fixes
  • Fix an issue with Exclusive resource properties and RDS with Snapshot and Password

0.4.0

Features
  • Update CloudFormation specs to July 16th, 2018
  • Support comma lists for regions, append rules, and ignore check parameters
  • Added documentation explaining Resource Specification based rules
Fixes
  • Fix a bunch of typos across many different rules
  • Support DeepCopy with Template and custom String classes used for marking up templates
  • Fix Rule E3002 to support CommaDelimitedList when looking for List Parameters
  • Fix core engine to check that something is a Dict instead of assuming it is

0.3.5

Features
  • Update CloudFormation Specs to July 12th, 2018
  • Rule E7012 added to check the limits of attributes in a Mapping
  • Rule E2012 added to check maximum size of a parameter value
  • Rule E1003 added to check the maximum length of the template Description
  • Guide created to help new users write new rules
Fixes
  • Catch KeyError when trying to discover the line and column number of an error
  • Update Lambda rules to support dotnet core
  • Fix rule E1017 so we unpack first element of select as a dict
  • Fix rule E1024 to support ImportValue and appropriately checking number for the last element

0.3.3

Features
  • Support for Yaml C Parser when available.
  • Catch rule processing errors and raise a lint error in their place.
  • Add rules for the limit on Parameter, Mapping, Resource and Output names
  • Add Rule W3005 to warn for when DependsOn is specified but not needed
  • Add Rule E2509 to check if Security Group Descriptions are properly configured
  • Add source_url to rules so rule reference documentation can be provided
Fixes
  • Fixed issues when Conditions had lists for values
  • Fixed issue where underscore was allowed for AlphaNumeric names

0.3.2

Features
  • Try/Catch added to rule processing so code failures in rules won't crash cfn-lint
  • Parse YAML files using C parser when available. Greatly speeds up YAML parsing.
Fixes
  • Template class updated to handle conditions where lists are in the true/false values
  • Fix regex for checking Resource, Output, etc. names to not include underscore

0.3.1

Features
  • Update rule E3020 to validate A recordsets
Fixes
  • Require "aws-sam-translator" dependency be at least 1.6.0
  • Add support for wildcards in rule E3013
  • Support conditions in Lists for rule E3002
  • Include filename when we run into Null and Duplicate values when parsing yaml
  • Rule W2510 now allows for AllowedValues instead of just Min/MaxValue for compliance of Lambda MemorySize
  • Rule E2530 updated to checked AllowedValues for compliance of Lambda MemorySize

0.3.0

Features
  • Serverless Transforms now handled by SAM libraries
  • Add Rule E2508: Add checks for IAM
    • Managed Policies attached to IAM user, group or role can't be more than 10
    • An IAM user can be a member of no more than 10 groups
    • There can only be 1 role in an instance profile
    • AssumeRolePolicyDocument size is less than <2048 characters
  • Add Rule E1002: Check overall template size to make sure its below
  • Add Rule E3013: CloudFront aliases should contain valid domain names
  • Add Rule E3020: Check if all RecordSets are correctly configured
    • Strings end and start with double quotes
    • Size is less than 256 characters
    • Record Types are within the specification
  • Short hand parameter switches and no longer need --template
Fixes
  • Don't report a Condition not being used if it is used by another Condition

0.2.2

Fixes
  • Fixed issues with Yaml and Json parsing for complex strings in Python 2.7
  • Added eu-central-1 Availability Zones to acceptable AZ list
  • Added nodejs8.10 to supported Lambda
  • Added Version as an attribute for a Custom Resource
  • Parseable output is now colon(:) delimited

0.2.1

Features
  • Added AllowedValues for Cidr parameter checking Rule W2509
  • Add Rule E2004 to check Allowed values for Cidr parameters are a valid Cidr range
  • Disable mapping Name checks W7001 if dynamic mapping names are used (Ref, FindInMap)
  • New Rule E1026 to make sure Ref's in 'Conditions' are to parameters and not resources
  • Updated CloudFormation specs to June 5th, 2018
Fixes
  • Fixed an issue with Rule E1019 not giving errors when there was a bad pseudo parameter
  • Fixed an issue where conditions with Refs were validated as strings instead of Refs
  • Fix crash errors when an empty yaml file is provided
  • Updated condition functions to return the full object (Ref isn't translated while looking for AWS::NoValue)
  • Support Map Type properties when doing PrimitiveType check E3012
  • Fix an issue when boolean values not being checked when using check_value

0.2.0

Features
  • Standard cfn-lint Errors (E0000) for null, duplicate, and parse errors
  • Add a new check for CloudFormation limits
  • Add a new check for Parameter, Resource, Output, and Mapping names
  • Update specs to those released on May 25th, 2018
  • Strong type checking for property values result in Errors (E3012)
Fixes
  • Transform logic updated to not add a Role if one is specified for a serverless function
  • Fixed logic around Fn::If when the result is an object
  • Fix conditions when checking property value structure

0.1.0

Features
  • Update CloudFormation specs to include recent releases
  • Add checks for duplicate resource names
  • Add checks for null values in templates
  • Add support in Circular Dependency checks to go multiple levels deep
  • Add check for unused mappings
  • Add check for unused and not found conditions
  • Convert Errors to Warnings that don't cause a failure when implementing a template
Fixes
  • Fix check for cfn-lint configurations in templates
  • Fix Sub Functions checks failing on sub stacks or custom resources
  • Fix Serverless Transforms not failing when trying to create multiple RestApiIds
  • Fix TOX encoding issues with certain JSON files
  • Update Lambda Memory size to 3008
  • Fix FindInMap failing when the first parameter is also FindInMap
  • Fix key search function to appropriately respond to nested finds (FindInMap inside a FindInMap)

0.0.10

Features
  • Capability to merge and modify the CloudFormation spec with provided JSON
    • Allows for changing what properties are required
    • Can change what resource types are allowed
  • Remove warnings that were in error checks to keep errors focused on issues preventing success
  • Improve circular dependency checks to go multiple levels deep
  • Check null and duplicate values in JSON and YAML templates
Fixes
  • Some primitive type properties were not getting checked
  • Include support for Long as a number based check
  • Improve get condition values to support more complex scenarios

0.0.8

Features
  • Added a rule to check for only one resource property in a set
  • Added a rule for more than one of resource properties in a set
  • Added a rule for mutually exclusive resource properties
Fixes
  • Support parsing JSON files that have tabs
  • Better error handling for when a property is a list instead of an object
  • Error handling for when files can't be read or don't exist

0.0.7

Features
  • Fix for supporting more parameter types when checking REFs to parameters for Security Groups

0.0.6

Features
  • Exit code non zero on errors or warnings

0.0.5

Features
  • Testing CloudFormation resources against the Resource Spec
  • Test Functions against supported included functions
  • Test overall CloudFormation structure
  • Test Regionalization of a template against the Resource Spec
  • Ability to add additional rules on parameter
  • In depth checks of values around AWS::EC2::VPC, AWS::EC2::Subnet, and AWS::EC2::SecurityGroup