All Versions
Latest Version
Avg Release Cycle
50 days
Latest Release

Changelog History
Page 7

  • v0.2.0 Changes

    • ๐Ÿ’ฅ :warning: BREAKING

      • Changed NewRequest to NewLambdaRequest to support mock API gateway requests being made in explore mode
      • TemplateDecorator signature changed to support go-cloudformation representation of the CloudFormation JSON template.
      • /ht @crewjam for go-cloudformation
      • Use sparta.EventSourceMapping rather than aws.CreateEventSourceMappingInput type for LambdaAWSInfo.EventSourceMappings slice
      • Add dependency on crewjam/go-cloudformation for CloudFormation template creation
      • /ht @crewjam for the great library
      • CloudWatch log output no longer automatically uppercases all first order child key names.
    • :checkered_flag: CHANGES

      • :boom: Add LambdaAWSInfo.DependsOn slice
      • Lambda functions can now declare explicit dependencies on resources added via a TemplateDecorator function
      • The DependsOn value should be the dependency's logical resource name. Eg, the value returned from CloudFormationResourceName(...).
      • :boom: Add sparta.Discovery() function
      • To be called from a Go lambda function (Eg, func echoEvent(*json.RawMessage, *LambdaContext, http.ResponseWriter, *logrus.Logger)), it returns the Outputs (both Fn::Att and Ref ) values of dynamically generated CloudFormation resources that are declared as explicit DependsOn of the current function.
      • Sample output return value:
          "SESMessageStoreBucketa622fdfda5789d596c08c79124f12b978b3da772": {
            "DomainName": "",
            "Ref": "spartaapplication-sesmessagestorebucketa622fdfda5-1rhh9ckj38gt4",
            "Tags": [
                "Key": "sparta:logicalBucketName",
                "Value": "Special"
            "Type": "AWS::S3::Bucket",
            "WebsiteURL": ""
          "golangFunc": "main.echoSESEvent"
      • See the SES EventSource docs for more information.
      • Added TS (UTC TimeStamp) field to startup message
      • Improved stack provisioning performance
      • Fixed latent issue where CloudFormation template wasn't deleted from S3 on stack provisioning failure.
      • Refactor AWS runtime requirements into lambdaBinary build tag scope to support Windows builds.
      • Add SESPermission type to support triggering Lambda functions in response to inbound email
      • See doc_sespermission_test.go for an example
      • Storing the message body to S3 is done by assigning the MessageBodyStorage field.
      • Add NewAPIGatewayRequest to support localhost API Gateway mock requests
  • v0.1.5 Changes

  • v0.1.4 Changes

    • ๐Ÿ’ฅ :warning: BREAKING
      • N/A
    • :checkered_flag: CHANGES
      • Reduce deployed binary size by excluding Sparta embedded resources from deployed binary via build tags.
  • v0.1.3 Changes

    • ๐Ÿ’ฅ :warning: BREAKING
      • API Gateway responses are only transformed into a standard format in the case of a go lambda function returning an HTTP status code >= 400
      • Previously all responses were wrapped which prevented integration with other services.
    • :checkered_flag: CHANGES

      • Default integration mappings now defined for:
      • application/json
      • text/plain
      • application/x-www-form-urlencoded
      • multipart/form-data
      • Depending on the content-type, the Body value of the incoming event will either be a string or a json.RawMessage type.
      • CloudWatch log files support spawned golang binary JSON formatted logfiles
      • CloudWatch log output includes environment. Sample:
            "AWS_SDK": "2.2.25",
            "NODE_JS": "v0.10.36",
            "OS": {
                "PLATFORM": "linux",
                "RELEASE": "3.14.48-33.39.amzn1.x86_64",
                "TYPE": "Linux",
                "UPTIME": 4755.330878024
  • v0.1.2 Changes

    • ๐Ÿ’ฅ :warning: BREAKING
      • N/A
    • :checkered_flag: CHANGES
      • Added explore.NewRequest to support localhost testing of lambda functions.
      • Clients can supply optional event data similar to the AWS Console feature.
      • See explore_test for an example.
  • v0.1.1 Changes

    • ๐Ÿ’ฅ :warning: BREAKING
      • sparta.Main() signature changed to accept optional S3Site pointer
    • :checkered_flag: CHANGES

      • Updated describe CSS font styles to eliminate clipping
      • Support {Ref: 'MyDynamicResource'} for SourceArn values. Example:
      lambdaFn.Permissions = append(lambdaFn.Permissions, sparta.SNSPermission{
        BasePermission: sparta.BasePermission{
          SourceArn: sparta.ArbitraryJSONObject{"Ref": snsTopicName},
      • Where snsTopicName is a CloudFormation resource name representing a resource added to the template via a TemplateDecorator.
      • Add CloudWatch metrics to help track container reuse.
      • Metrics are published to Sparta/ namespace.
      • MetricNames: ProcessCreated, ProcessReused, ProcessTerminated.
  • v0.1.0 Changes

    • ๐Ÿ’ฅ :warning: BREAKING
      • sparta.Main() signature changed to accept optional S3Site pointer
    • :checkered_flag: CHANGES
      • Added S3Site type and optional static resource provisioning as part of provision
      • See the SpartaHTML application for a complete example
      • Added API.CORSEnabled option (defaults to false).
      • If defined, all APIGateway methods will have CORS Enabled.
      • Update logging to use structured fields rather than variadic, concatenation
      • Reimplement explore command line option.
      • The explore command line option creates a localhost server to which requests can be sent for testing. The POST request body MUST be application/json, with top level event and context keys for proper unmarshaling.
      • Expose NewLambdaHTTPHandler() which can be used to generate an httptest
  • v0.0.7 Changes

    • ๐Ÿ’ฅ :warning: BREAKING
      • N/A
    • :checkered_flag: CHANGES
      • Documentation moved to compliant value for go test integration.
      • Add context struct to APIGatewayLambdaJSONEvent
      • Default description based on Go function name for AWS Lambda if none provided
      • Added SNS Event types for unmarshaling
      • Added DynamoDB Event types for unmarshaling
      • Added Kinesis Event types for unmarshaling
      • Fixed latent issue where IAMRoleDefinition CloudFormation names would collide if they had the same Permission set.
      • Remove API Gateway view from describe if none is defined.
  • v0.0.6 Changes

    • ๐Ÿ’ฅ :warning: BREAKING
      • Changed:
      • type LambdaFunction func(*json.RawMessage, *LambdaContext, *http.ResponseWriter, *logrus.Logger)
        • TO
      • type LambdaFunction func(*json.RawMessage, *LambdaContext, http.ResponseWriter, *logrus.Logger)
      • See also FAQ: When should I use a pointer to an interface?.
    • Add .travis.yml for CI support.
    • :checkered_flag: CHANGES
  • v0.0.5 Changes

    • ๐Ÿ’ฅ :warning: BREAKING
      • Changed Sparta.Main() signature to accept API pointer as fourth argument. Parameter is optional.
    • :checkered_flag: CHANGES
      • Preliminary support for API Gateway provisioning
      • See API type for more information.
      • describe output includes:
      • Dynamically generated CloudFormation Template
      • API Gateway json
      • Lambda implementation of CustomResources for push source configuration promoted from inline ZipFile JS code to external JS files that are proxied via index.js exports.
      • Fixed latent bug where remote push source registrations were deleted during stack updates.