All Versions
73
Latest Version
Avg Release Cycle
50 days
Latest Release
-
Changelog History
Page 7
Changelog History
Page 7
-
v0.2.0 Changes
๐ฅ :warning: BREAKING
- Changed
NewRequest
toNewLambdaRequest
to support mock API gateway requests being made inexplore
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 forLambdaAWSInfo.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.
- Changed
: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 fromCloudFormationResourceName(...)
. - :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 explicitDependsOn
of the current function. - Sample output return value:
{ "SESMessageStoreBucketa622fdfda5789d596c08c79124f12b978b3da772": { "DomainName": "spartaapplication-sesmessagestorebucketa622fdfda5-1rhh9ckj38gt4.s3.amazonaws.com", "Ref": "spartaapplication-sesmessagestorebucketa622fdfda5-1rhh9ckj38gt4", "Tags": [ { "Key": "sparta:logicalBucketName", "Value": "Special" } ], "Type": "AWS::S3::Bucket", "WebsiteURL": "http://spartaapplication-sesmessagestorebucketa622fdfda5-1rhh9ckj38gt4.s3-website-us-west-2.amazonaws.com" }, "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
- :boom: Add
-
v0.1.5 Changes
- ๐ฅ :warning: BREAKING
- N/A
- :checkered_flag: CHANGES
- Add S3 Object Expiration warning message if the target bucket doesn't specify one.
- Replace internal CloudFormation polling loop with WaitUntilStackCreateComplete and WaitUntilStackUpdateComplete
- ๐ฅ :warning: BREAKING
-
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.
- ๐ฅ :warning: BREAKING
-
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 ajson.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 } }
- ๐ฅ :warning: BREAKING
-
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.
- Added
- ๐ฅ :warning: BREAKING
-
v0.1.1 Changes
- ๐ฅ :warning: BREAKING
sparta.Main()
signature changed to accept optionalS3Site
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
.
- Updated
- ๐ฅ :warning: BREAKING
-
v0.1.0 Changes
- ๐ฅ :warning: BREAKING
sparta.Main()
signature changed to accept optionalS3Site
pointer
- :checkered_flag: CHANGES
- Added
S3Site
type and optional static resource provisioning as part ofprovision
- 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 levelevent
andcontext
keys for proper unmarshaling. - Expose NewLambdaHTTPHandler() which can be used to generate an httptest
- Added
- ๐ฅ :warning: BREAKING
-
v0.0.7 Changes
- ๐ฅ :warning: BREAKING
- N/A
- :checkered_flag: CHANGES
- Documentation moved to gosparta.io
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.
- Documentation moved to gosparta.io
compliant value for
- ๐ฅ :warning: BREAKING
-
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
- Added LambdaAWSInfo.Decorator field (type TemplateDecorator ). If defined, the template decorator will be called during CloudFormation template creation and enables a Sparta lambda function to annotate the CloudFormation template with additional Resources or Output entries.
- See TestDecorateProvision for an example.
- Improved API Gateway
describe
output. - Added method response support.
- The DefaultMethodResponses map is used if Method.Responses is empty (
len(Responses) <= 0
) at provision time. - The default response map defines
201
for POST methods, and200
for all other methods. An API Gateway method may only support a single 2XX status code. - Added integration response support for to support HTTP status codes defined in status.go.
- The DefaultIntegrationResponses map is used if Integration.Responses is empty (
len(Responses) <= 0
) at provision time. - The mapping uses regular expressions based on the standard golang HTTP StatusText values.
- Added
SpartaHome
andSpartaVersion
template outputs.
- ๐ฅ :warning: BREAKING
-
v0.0.5 Changes
- ๐ฅ :warning: BREAKING
- Changed
Sparta.Main()
signature to accept API pointer as fourth argument. Parameter is optional.
- Changed
- :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.
- ๐ฅ :warning: BREAKING