Skip to content

Latest commit

 

History

History
688 lines (325 loc) · 31.2 KB

CHANGELOG.md

File metadata and controls

688 lines (325 loc) · 31.2 KB

GoFormation Versioning Changelog

5.2.10 (2021-10-05)

Bug Fixes

5.2.9 (2021-09-03)

Bug Fixes

5.2.8 (2021-08-27)

Bug Fixes

5.2.7 (2021-08-11)

Bug Fixes

5.2.6 (2021-07-16)

Bug Fixes

  • schema: Allow any type for Parameter AllowedValues (#392) (ccc7fb0)
  • schema: CloudFormation Updates (#390) (ac83603)

5.2.5 (2021-07-16)

Bug Fixes

  • schema: Support Version field in custom resource (#391) (eef8f36)

5.2.4 (2021-07-05)

Bug Fixes

5.2.3 (2021-06-29)

Bug Fixes

5.2.2 (2021-06-25)

Bug Fixes

5.2.1 (2021-06-21)

Bug Fixes

5.2.0 (2021-06-20)

Features

  • schema: Add AWS::Serverless::Function.Auth (#373) (fc2877f)

5.1.0 (2021-06-20)

Features

5.0.0 (2021-06-20)

Features

BREAKING CHANGES

  • schema: Improved implementation of Globals (in SAM tempates)

This PR introduces a new implementation for both defining SAM templates with Global values, as well as parsing templates containing them.

Note: Globals only apply to SAM templates - if you are using regular CloudFormation templates this breaking change should not impact you. The only impact you might see is if you are creating cloudFormation.Template structs manually rather than using the cloudformation.NewTemplate() constructor. As part of this change, a new field (Globals) was added to the Template{} struct. If you are not using the constructor, your compiler will probably complain that this field is missing from the struct instantiation in your code.

For more information about what Globals are in SAM templates, see this link: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-template-anatomy-globals.html

In previous versions of Goformation (before v5), goformation was able to parse SAM templates that contained a Globals section, however the implementation just overwrote the resource properties in the template, with the global values at parse time.

This meant that:

  • It was not possible to compose a template in Go that had a Globals section.
  • The JSON Schema generated by this repo, had no concept of Globals.

This new implementation DOES NOT does not overwrite the values in the template, like the previous implementation did. It replaces the old implementation completely, and exposes Globals as a series of structs that are marshalled/unmarshalled to/from JSON/YAML.

This allows you to compose a template:

template := cloudformation.NewTemplate()

template.Globals["Function"] = &global.Function{
    Timeout: 1800,
}

As well as parse a JSON/YAML template, and inspect the global properties:

template, err := goformation.Open("../some-template-with-globals.yml")
if err != nil {
    fmt.Printf("failed to open template: %s\n", err)
    os.Exit(1)
} 

fmt.Printf("%v", template.Globals["Function"])

// You can view the global as above, however it's type is downcast to a basic interface.
// If you want to inspect properties specific to the global type (e.g. the timeout for a Lambda function)
// then use the following helper methods to get the various global types from the template:

globalAPI, _:= template.GetServerlessGlobalApi()
globalFunction, _ := template.GetServerlessGlobalFunction()
globalHttpApi, _ := template.GetServerlessGlobalHttpApi()
globalSimpleTable, _ := template.GetServerlessGlobalSimpleTable()

fmt.Printf("Global Function Timeout: %d\n", globalFunction.Timeout)

4.19.5 (2021-06-10)

Bug Fixes

4.19.4 (2021-05-31)

Bug Fixes

4.19.3 (2021-05-21)

Bug Fixes

4.19.2 (2021-05-18)

Bug Fixes

4.19.1 (2021-04-17)

Bug Fixes

4.19.0 (2021-04-17)

Features

  • schema: Improve cloudformation If to accept structs (#368) (3c1bcd8)

4.18.3 (2021-04-07)

Bug Fixes

4.18.2 (2021-03-23)

Bug Fixes

4.18.1 (2021-03-08)

Bug Fixes

4.18.0 (2021-03-08)

Features

  • intrinsics: Add cloudformation.TransformFn() (#352) (9a1e331)

4.17.0 (2021-02-25)

Bug Fixes

Features

  • resources: Add DependOn, DeletionPolicy and others to CustomResource (#350) (6712019)

4.16.4 (2021-02-20)

Bug Fixes

4.16.3 (2021-02-17)

Bug Fixes

4.16.2 (2021-02-09)

Bug Fixes

4.16.1 (2021-02-09)

Bug Fixes

  • template: field Export on type Output should be pointer (#299) (7d5870e), closes #294

4.16.0 (2021-02-03)

Features

  • intrinsics: Allow for int in Fn::Equals (#346) (dd6cd2d)

4.15.9 (2021-01-29)

Bug Fixes

4.15.8 (2021-01-23)

Bug Fixes

4.15.7 (2021-01-05)

Bug Fixes

  • schema: S3Location or String support for AWS::Serverless::LayerVersion.ContentUri (#339) (6e39ebe), closes #337

4.15.6 (2020-11-22)

Bug Fixes

4.15.5 (2020-11-06)

Bug Fixes

4.15.4 (2020-11-01)

Bug Fixes

4.15.3 (2020-10-23)

Bug Fixes

4.15.2 (2020-10-11)

Bug Fixes

4.15.1 (2020-10-11)

Bug Fixes

  • intrinsics: Join function to allow to use parameters of type List<> (#309) (6cc1cd3)

4.15.0 (2020-08-16)

Features

  • schema: dummy commit - trigger CI for schema update (66bc344)

4.14.0 (2020-07-26)

Features

  • schema: Add support for Template Outputs (#291) (6875c50)

4.13.1 (2020-07-26)

Bug Fixes

  • schema: Add Change and Update policies to the Unmarshal method (#288) (989b05f)

4.13.0 (2020-07-26)

Features

  • schema: adding AWS::Serverless::StateMachine and FileSystemConfigs to Function (#284) (d2d23ca)

4.12.0 (2020-07-21)

Features

  • schema: Add new DynamoDBEvent options (#289) (741228d)

4.11.0 (2020-06-28)

Features

4.10.1 (2020-06-22)

Bug Fixes

  • generator: update the generation making it easier to fix CF schema errors to generate (#285) (6751e5b)

4.10.0 (2020-06-22)

Features

  • schema: Serverless eventbridgeruleevent (#279) (2a9e572)

4.9.0 (2020-06-22)

Features

  • schema: Add OpenApiVersion field to serverless Api (#281) (bccc71b)

4.8.0 (2020-04-04)

Features

  • schema: Add UpdateReplacePolicy to the templates and the policies so that it is generated for every resource (#272) (696c515)

4.7.1 (2020-04-04)

Bug Fixes

4.7.0 (2020-02-28)

Features

  • schema: Added CloudWatch Logs event for SAM (#271) (fedb013)

4.6.0 (2020-02-22)

Features

  • schema: CloudFormation Updates (2020-02-22) (#269) (ffd88a6)

4.5.1 (2020-02-14)

Bug Fixes

  • schema, parser: change Transform json schema to allow multiple macros (#268) (072fc74), closes #267

4.5.0 (2020-02-13)

Features

  • schema: CloudFormation Updates (2020-02-13) (#266) (bc75922)

4.4.0 (2020-01-30)

Features

  • schema: CloudFormation Updates (2020-01-30) (#263) (fda2d31)

4.3.0 (2020-01-30)

Features

  • schema: add CloudFormation parameter type (#259) (27fe204)

4.2.0 (2020-01-29)

Features

4.1.0 (2019-12-09)

Features

  • schema: CloudFormation Updates (2019-12-09) (#251) (a23ba41)

4.0.3 (2019-11-30)

Bug Fixes

  • schema: AWS::Serverless::Function S3 notification filters (#249) (a50ef92), closes #74

4.0.2 (2019-11-30)

Bug Fixes

4.0.1 (2019-11-30)

Bug Fixes

  • schema: AWS::Serverless::Api.MethodSettings should be a list (a1f340a), closes #242

4.0.0 (2019-11-30)

BREAKING CHANGES

  • This change refactors the DependsOn, Metadata, CreationPolicy, UpdatePolicy and DeletionPolicy methods on each resource to a new name. This is required, as some CloudFormation resources use these keywords as properties (AWS::AppMesh::Route.GrpcRouteMatch has a Metadata field for example), which causes a conflict.

resource.DependsOn() method is refactored to resource.AWSCloudFormationDependsOn field. resource.SetDependsOn() method is refactored to resource.AWSCloudFormationDependsOn field. resource.Metadata() method is refactored to resource.AWSCloudFormationMetadata field. resource.SetMetadata() method is refactored to resource.AWSCloudFormationMetadata field. resource.CreationPolicy() method is refactored to resource.AWSCloudFormationCreationPolicy field. resource.SetCreationPolicy() method is refactored to resource.AWSCloudFormationCreationPolicy field. resource.UpdatePolicy() method is refactored to resource.AWSCloudFormationUpdatePolicy field. resource.SetUpdatePolicy() method is refactored to resource.AWSCloudFormationUpdatePolicy field. resource.DeletionPolicy() method is refactored to resource.AWSCloudFormationDeletionPolicy field. resource.SetDeletionPolicy() method is refactored to resource.AWSCloudFormationDeletionPolicy field.

3.1.0 (2019-10-29)

Features

  • schema: AWS CloudFormation Update (2019-10-29) (#239) (7ff8499)

3.0.1 (2019-10-29)

Bug Fixes

  • schema: Ordered cloudformation/all.go file (#238) (91254f3)

3.0.0 (2019-10-27)

  • Group CloudFormation resources by AWS service name (#234) (d0749e6), closes #234

BREAKING CHANGES

  • this change moves all Cloudformation resources to packages based on the AWS service name. The main motivation for this is that building goformation on some platforms (Windows) failed due to too many files in the old cloudformation/resources package. This new package style has a nice benefit of slightly nicer to use API, but is a breaking change and will require refactoring existing codebases to update to v3.

Old usage:

import "github.com/awslabs/goformation/v2/cloudformation/resources"

... snip ...

topic := &resources.AWSSNSTopic{}

New usage:

import "github.com/awslabs/goformation/v4/cloudformation/sns"

...snip...

topic := &sns.Topic{}

Most tests are still failing at this point and need refactoring.

  • fix(schema): Tag handling

Fixed tag handling for new grouped resources style (via new tags.Tag struct).

  • fix(schema): SAM specification

SAM Specification now generates nicely with new grouped resources format. Also all tests are now passing \o/

2.3.0 (2019-03-20)

Bug Fixes

  • parser: Unmarshalling of resources with polymorphic properties (like S3 events) now works (#188) (8eff90a)

Features

  • sam: Add support for AWS::Serverless::Api.TracingEnabled, AWS::Serverless::Function.PermissionsBoundary, AWS::Serverless::Function.DynamoEvent.Enabled, AWS::Serverless::Function.KinesisEvent.Enabled, and AWS::Serverless::Function.SQSEvent.Enabled (#191) (38f0187)
  • schema: AWS CloudFormation Update (2019-03-15) (#189) (8b332a4)

2.2.2 (2019-03-13)

Bug Fixes

  • parser: Select the correct AWS CloudFormation resource type based on similarity (#183) (5749b23)

2.2.1 (2019-03-10)

Bug Fixes

  • parser: fix invalid YAML template error for custom tag marshaler (#177) (035d438)

2.2.0 (2019-03-10)

Features

  • schema: regenerated resources to apply SAM schema fixes from previous PR (b30c019)

2.1.5 (2019-03-10)

Bug Fixes

  • parser: do not break if a non-intrinsic Condition statement is found in a YAML template (#169) (e4671e3)

2.1.4 (2019-03-10)

Bug Fixes

  • schema: fixed incorrect field type for AWS::Serverless::Application.Location (#167) (3f1817b)

2.1.3 (2019-03-10)

Bug Fixes

  • schema: maps within YAML templates should allow unknown fields/properties (3b6e359)

2.1.2 (2019-03-10)

Bug Fixes

  • CI: fix broken GitHub PR integration (#185) (d42d00a)

2.1.1 (2019-03-10)

Bug Fixes

  • CI: only run semantic-release on push-to-master (not on pull requests) (#184) (c83945a)

2.1.0 (2019-03-10)

Features

  • CI: auto-generate AUTHORS.md file (b37af7b)

Semantic Versioning Changelog

2.0.0 (2019-03-10)

Code Refactoring

  • generator: moving resources and policies into their own packages (#161) (03a0123)

BREAKING CHANGES

  • generator: this PR refactors the auto-generated CloudFormation resources out of the cloudformation package and into a dedicated package (resources). This helps keep the auto generated files separate from others.

E.g. cloudformation.AWSSnsTopic{} becomes resources.AWSSnsTopic{}

1.4.1 (2019-03-10)

Bug Fixes

  • spec: corrected AWS::Serverless::Api.Auth.Authorizers to be of type JSON rather than string (#164) (4cf1bee)

1.4.0 (2019-03-09)

Features

  • parser: Default to parsing as YAML unless the filename ends in .json (#176) (42e7146)

1.3.0 (2019-03-09)

Bug Fixes

  • CI: speed up PR builds by only downloading the cfn spec and regenerating resources on cron schedule (not on every build) (7ae2a32)
  • CI: Update TravisCI configuration based on https://github.com/se… (#180) (88e1e85)
  • CI: Update TravisCI configuration for semantic-release to use jobs (f6c2fee)

Features

  • Added semantic-release CI setup (a9b368a)
  • Added semantic-release configuration file (3b25fdb)