Skip to content

Releases: tmaiaroto/aegis

1.16.3

28 Jul 18:09
Compare
Choose a tag to compare

A few minor adjustments to help make things a little less confusing. The output of go build is now shown when running aegis deploy and the GO111MODULE=on environment variable was removed from the internal build command. In order to use it, or any other environment variables at build time, add them to aegis.yaml under app.buildEnvVars.

1.16.1

03 Mar 15:45
Compare
Choose a tag to compare

Found a way to catch false positive base64 decoded values from API Gateway stage variables, this patch version issues a quick fix for that. If you never tried to store a character API Gateway didn't support, you'd be fine. If you knew to base64 decode yourself, you'd be fine. However, this ensures you don't need to worry about what API Gateway supports and doesn't support.

1.16.0

03 Mar 01:21
Compare
Choose a tag to compare

This release fixes the deploy command using the default generated role (it adds VPC policy). It also fixes issue of hitting a AWS SDK rate limit when using Cognito example and changes the way the Aegis Cognito service works. More variables need to be defined now is all that means.

Speaking of variables, the automatic base64 decoding of variables is removed (for now) as there were false positives.

Beta 1.15.2

05 Jul 23:17
Compare
Choose a tag to compare

This patch release includes additional fixes for deploy that include the addition a retry and delay. After creating new IAM roles, it is possible that they are not yet available to be used by a Lambda function. Previously there was a short delay in the deploy command. Now there's a longer delay, but it is done so incrementally in a retry loop/goroutine. This puts a limit on how many times things get retried, but also doesn't wait longer than necessary.

Additionally, an Error field has been added to the CognitoToken struct in the Cognito client service. This allows end user code to handle errors coming back from Cognito. Such cases can arise based on the pool configuration. More work on this service to come, but for now the ability to know there's an issue has been put in place.

1.15.0

SQS triggers have been added by AWS! This release provides a new, easy to use, router for working with them. This release also focused on wrapping up documentation (including SQS router).

  • SQS message router
  • Various fixes to TraceStrategy and Tracer

1.14.0

  • The S3ObjectRouter received a couple of fixes (among them #29)
  • TraceStrategy interface was overhauled making it easier to implement your own trace strategies as well as making it easier for Aegis to run unit tests.
  • More test cases were added and the S3 router has high coverage now (more tests to come for other routers)

1.12.0

  • Moved local HTTP server to Aegis interface; it will eventually handle more than just
    HTTP requests (which mimicks APIGatewayProxyRequest) - this creates a very small breaking
    change, the old router.Gateway() is simply replaced by app.StartServer() where app
    is an instance of Aegis interface
  • Moved test cases accordingly, many of the functions to convert requests/responses
    were simply moved
  • Added StartSingle() which takes an --event flag when running the binary for the
    event and returns a pretty printed result (optional) or error message to the CLI
    (also can flag --pretty for this and --nolog to hide any log output from the app)

1.11.0

  • Added SES integration; configure rules in aegis.yaml and handle with SESRouter handlers
  • Fixed bug when handling with nil Router, it will now return an error explaining that no handleres have been set to handle the event (this can occur if a router was registered, but not added to aegis.Handlers{}, leading to some confusion)

Legacy Node.js Shim

15 Mar 15:38
Compare
Choose a tag to compare

This release is tagged at a legacy Node.js shim version of aegis. Before AWS Lambda officially supported Go, the use of stdout was required to pipe text back to the Node.js wrapper function which then worked with Lambda to send JSON back through API Gateway.

Now that Lambda supports Go, aegis will no longer need to rely on this shim. This will make things a bit faster and more stable. However, it also means that there are some breaking changes.

AWS Lambda's support of Go is extremely similar to aegis. AWS Lambda now has context, request, and response structs which will replace aegis'. They are almost identical in many cases, but the names are different of course and there's no sense in wrapping or mapping them. Aegis only support Lambda so it's best to simply use those structs.

This means that every app built with aegis will need to adjust its route handlers.
For example, context is no longer aegis' lambda.Context but is now events.APIGatewayProxyRequestContext from AWS Lambda package.

lambda.ProxyResponse will now be events.APIGatewayProxyResponse and its fields are almost identical. The StatusCode field there is a proper int whereas aegis had a string because of the need to pipe back out to the Node.js shim via stdout. So things become a bit nicer here now that AWS supports Go.

So the changes to route handler functions should be minor, but they are necessary. This release/tag will provide a version of aegis to use while you make the transition.

An OS X binary is attached to this release to use. If you are on another architecture, you'll need to check out this tag and build your own.