All Versions
73
Latest Version
Avg Release Cycle
50 days
Latest Release
-
Changelog History
Page 5
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 istext
. - See logrus.Formatters
- Added
๐ :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:
github.com/mweagle/SpartaPython.HelloWorld
becomes:
mweagle/SpartaPython.HelloWorld
- 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 https://github.com/mweagle/SpartaPython 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, includingversionId
query param - Signatures for
sparta.Provision
andsparta.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:
- Add
func init() { sparta.RegisterCodePipelineEnvironment("test", map[string]string{ "MESSAGE": "Hello Test!", }) sparta.RegisterCodePipelineEnvironment("production", map[string]string{ "MESSAGE": "Hello Production!", }) }
- Add support for
Environment
andKmsKeyArn
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
- ๐ฅ :warning: BREAKING
-
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 togithub.com/mweagle/Sparta/aws/cloudformation.CloudFormationResourceName
. Thesparta
package function is deprecated and will be removed in a subsequent release.
- ๐ :bug: FIXED
- Fixed latent bug in
github.com/mweagle/Sparta/zip.AddToZip
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.
- Fixed latent bug in
-
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
- Improved
- ๐ :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
andNewAuthorizedMethod
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, andhttp.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
- (@sdbeard) Added sparta.NewNamedLambda that allows you to set stable AWS Lambda FunctionNames
- Added spartaCF.AddAutoIncrementingLambdaVersionResource to support Lambda function versions. Should be called from a TemplateDecorator. Usage:
autoIncrementingInfo, autoIncrementingInfoErr := spartaCF.AddAutoIncrementingLambdaVersionResource(serviceName, lambdaResourceName, cfTemplate, logger) 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 includecontext map[string]interface{}
to support sharing state acrossWorkflowHooks
(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 forprovision
. - 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
- Add
๐ :bug: FIXED
- (@sdbeard) Fixed latent bug in Kinesis event source subscriptions that caused
ValidationError
s 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 thanTYPE
.
- (@sdbeard) Fixed latent bug in Kinesis event source subscriptions that caused
- ๐ฅ :warning: BREAKING
-
v0.7.1 Changes
- ๐ฅ :warning: BREAKING
- :checkered_flag: CHANGES
- Upgrade to latest go-cloudformation that required internal refactoring.
- ๐ :bug: FIXED
- N/A