- 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
- Update rule E3020 to support AAAA record checks
- 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
- Update CloudFormation Specs to July 20th, 2018
- Fix an issue with Exclusive resource properties and RDS with Snapshot and Password
- 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
- 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
- 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
- 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
- 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
- Fixed issues when Conditions had lists for values
- Fixed issue where underscore was allowed for AlphaNumeric names
- 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.
- 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
- Update rule E3020 to validate A recordsets
- 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
- 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
- Don't report a Condition not being used if it is used by another Condition
- 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
- 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
- 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
- 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)
- 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
- 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
- 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)
- 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
- 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
- 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
- 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
- Fix for supporting more parameter types when checking REFs to parameters for Security Groups
- Exit code non zero on errors or warnings
- 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