All Versions
Latest Version
Avg Release Cycle
50 days
Latest Release

Changelog History
Page 5

  • v0.11.2 Changes

    • ๐Ÿ’ฅ :warning: BREAKING
    • :checkered_flag: CHANGES

      • Added --inplace/-c command line option to support safe, concurrent updating of Lambda code packages
      • If enabled AND the stack update changeset reports only modifications to Lambda functions, then Sparta will use the AWS Lambda API to update the function code.
      • If enabled AND additional mutations are reported, you'll see an error as in:
      ERRO[0022] Unsupported in-place operations detected:
        Add for IAMRole9fd267df3a3d0a144ae11a64c7fb9b7ffff3fb6c (ResourceType: AWS::IAM::Role),
        Add for mainhelloWorld2Lambda32fcf388f6b20e86feb93e990fa8decc5b3f9095 (ResourceType: AWS::Lambda::Function)
      • Prefer NewRecorder to internal type for CGO marshalling
      • Added --format/-f command line flag [text, txt, json] to specify logfile output format. Default is text.
      • See logrus.Formatters
    • ๐Ÿ›  :bug: FIXED

  • v0.11.1 Changes

    • ๐Ÿ’ฅ :warning: BREAKING
    • :checkered_flag: CHANGES

      • Support Go 1.8 newly optional GOPATH environment variable
      • Python proxied cgo builds now preserve the transformed source in the ./sparta scratch space directory.
      • Sparta assigned AWS Lambda function names now strip the leading SCM prefix. Example:


    • Upgrade to Mermaid 7.0.0
    • Use stable PolicyName in IAM::Role definitions to minimize CloudFormation resource update churn

      • ๐Ÿ›  :bug: FIXED
    • Fixed latent bug where S3 bucket version check didn't respect --noop mode.

    • Fixed latent cgo bug where command line arguments weren't properly parsed

  • v0.11.0 Changes

    • ๐Ÿ’ฅ :warning: BREAKING
    • :checkered_flag: CHANGES
      • :tada: Python CGO support added. See the project for example usage!
      • In preliminary testing, the Python CGO package provides significant cold start and hot-execution performance benefits.
      • Migrated dependency management to dep
    • ๐Ÿ›  :bug: FIXED
      • Fixed latent bug where DynamoDB EventSource mappings ResourceARNs weren't properly serialized.
      • Fixed latent bug where code pushed to S3 version-enabled buckets didn't use the latest VersionID in the AWS Lambda Code value.
  • v0.10.0 Changes

    • ๐Ÿ’ฅ :warning: BREAKING
      • describe option now requires -b/--s3Bucket argument
      • Changed signature of aws/s3/CreateS3RollbackFunc to accept full S3 URL, including versionId query param
      • Signatures for sparta.Provision and sparta.Discover updated with new arguments
    • :checkered_flag: CHANGES

      • Add -p/--codePipelineTrigger command line option to generate CodePipeline deployment package
      • Add sparta.RegisterCodePipelineEnvironment to define environment variables in support of CloudFormation Deployments. Example:
      func init() {
        sparta.RegisterCodePipelineEnvironment("test", map[string]string{
          "MESSAGE": "Hello Test!",
        sparta.RegisterCodePipelineEnvironment("production", map[string]string{
          "MESSAGE": "Hello Production!",
    • Add support for Environment and KmsKeyArn properties to LambdaFunctionOptions. See AWS for more information.
    • Move all build artifacts to ./sparta directory
    • -n/--noop argument orphans S3 artifacts in ./sparta directory
    • Add support for S3 version policy enabled buckets
      • Artifacts pushed to S3 version-enabled buckets now use stable object keys. Rollback functions target specific versions if available.
    • Cleanup log statements
    • Add sparta/aws/session.NewSessionWithLevel() to support AWS LogLevel parameter

      • ๐Ÿ›  :bug: FIXED
    • 34

    • 37

    • 38

  • v0.9.3 Changes

    • ๐Ÿ’ฅ :warning: BREAKING
    • :checkered_flag: CHANGES

      • Added LambdaFunctionOptions.SpartaOptions struct
      • The primary use case is to support programmatically generated lambda functions that must be disambiguated by their Sparta name. Sparta defaults to reflection based function name identification.
      • Added --ldflags support to support lightweight dynamic string variables
      • Usage: go run main.go provision --level info --s3Bucket $(S3_BUCKET) --ldflags "-X main.dynamicValue=SampleValue"
    • ๐Ÿ›  :bug: FIXED

  • v0.9.2 Changes

    • ๐Ÿ’ฅ :warning: BREAKING
    • :checkered_flag: CHANGES
      • Move Sparta-related provisioning values from stack Outputs to Tags.
      • Add support for go BuildTags to support environment settings.
      • Added Sparta/aws/cloudformation functions to support stack creation.
      • Added Sparta/aws/s3 functions to encapsulate common S3 operations.
      • Added Sparta/zip functions to expose common ZIP related functions.
      • Legibility enhancements for describe output
      • sparta.CloudFormationResourceName proxies to The sparta package function is deprecated and will be removed in a subsequent release.
    • ๐Ÿ›  :bug: FIXED
      • Fixed latent bug in where the supplied ZipWriter was incorrectly closed on function exit.
      • Fixed latent parsing userdata input
      • Fixed latent issue where empty ChangeSets were applied rather than deleted.
  • v0.9.1 Changes

    • ๐Ÿ’ฅ :warning: BREAKING
    • :checkered_flag: CHANGES
      • Improved describe output. Includes APIGateway resources and more consistent UI.
      • Additive changes to WorkflowHooks
      • Context property to set the initial context for Workflow hook execution
      • ServiceDecorator type to define service-scoped AWS resources. Previously, template decoration was bound to specific Lambda functions.
      • Published related SpartaVault: use AWS KMS to encrypt secrets as Go variables. See the KMS Docs for information.
      • Add Godeps support
    • ๐Ÿ›  :bug: FIXED
      • Fixed latent bug when adding custom resources to the ZIP archive via ArchiveHook. ArchiveHook is now called after core Sparta assets are injected into archive.
  • v0.9.0 Changes

    • ๐Ÿ’ฅ :warning: BREAKING

      • NewMethod and NewAuthorizedMethod for APIGateway definitions have been changed to include new, final parameter that marks the default integration response code.
      • Prior to this change, Sparta would automatically use http.StatusOK for all non-POST requests, and http.StatusCreated for POST requests. The change allows you to control whitelisted headers to be returned through APIGateway as in:
      // API response struct
      type helloWorldResponse struct {
        Location string `json:"location"`
        Body     string `json:"body"`
      // Promote the location key value to an HTTP header
      apiGWMethod, _ := apiGatewayResource.NewMethod("GET", http.StatusOK)
      apiGWMethod.Responses[http.StatusOK].Parameters = map[string]bool{
        "method.response.header.Location": true,
      apiGWMethod.Integration.Responses[http.StatusOK].Parameters["method.response.header.Location"] = "integration.response.body.location"
    • :checkered_flag: CHANGES

      autoIncrementingInfo, autoIncrementingInfoErr := spartaCF.AddAutoIncrementingLambdaVersionResource(serviceName,
      if nil != autoIncrementingInfoErr {
        return autoIncrementingInfoErr
      • Added new CloudWatch Metrics for lambda execution
      • Removed all NodeJS shim dependencies from ./resources/provision/package.json
      • Added utility CloudFormation script ./aws/cloudformation/cli/describe.go which produces a JSON serialization of a DescribeStacksOutput struct for build-time discovery of cluster-scoped resources.
      • Relaxed constraint that an API GW resource is bound to single Sparta lambda function. You can now register per-HTTP method name lambda functions for the same API GW resource.
      • Added Contributors section to README
    • ๐Ÿ›  :bug: FIXED

  • v0.8.0 Changes

    • ๐Ÿ’ฅ :warning: BREAKING
      • TemplateDecorator signature changed to include context map[string]interface{} to support sharing state across WorkflowHooks (below).
    • :checkered_flag: CHANGES
      • Add SpartaBuildID stack output with build ID
      • WorkflowHooks
      • WorkflowHooks enable an application to customize the ZIP archive used as the AWS Lambda target rather than needing to embed resources inside their Go binary
      • They may also be used for Docker-based mixed topologies. See
      • Add optional -i/--buildID parameter for provision.
      • The parameter will be added to the stack outputs
      • A random value will be used if non is provided on the command line
      • Artifacts posted to S3 are now scoped by serviceName
      • Add sparta.MainEx for non-breaking signature extension
    • ๐Ÿ›  :bug: FIXED

      • (@sdbeard) Fixed latent bug in Kinesis event source subscriptions that caused ValidationErrors during provisioning:
      ERRO[0028] ValidationError: [/Resources/IAMRole3dbc1b4199ad659e6267d25cfd8cc63b4124530d/Type/Policies/0/PolicyDocument/Statement/5/Resource] 'null' values are not allowed in templates
          status code: 400, request id: ed5fae8e-7103-11e6-8d13-b943b498f5a2
      • Fixed latent bug in ConvertToTemplateExpression when parsing input with multiple AWS JSON fragments.
      • Fixed latent bug in sparta.Discover which prevented dependent resources from being discovered at Lambda execution time.
      • Fixed latent bug in explore.NewAPIGatewayRequest where whitelisted param keynames were unmarshalled to method.request.TYPE.VALUE rather than TYPE.
  • v0.7.1 Changes

    • ๐Ÿ’ฅ :warning: BREAKING
    • :checkered_flag: CHANGES
    • ๐Ÿ›  :bug: FIXED
      • N/A