All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Haskell's Package Versioning Policy
fallibleRuntime
andfallibleRuntimeWithContext
report errors to AWS instead of returning{"Left": "some error"}
.fallibleRuntime
andfallibleRuntimeWithContext
no longer wrap their successful responses in{"Right": ...}
.pureRuntime
,pureRuntimeWithContext
,fallibleRuntime
andfallibleRuntimeWithContext
no longer crash the Lambda runtime if input can't be parsed from JSON.- By default, Aeson 2.2 is used. This a breaking change only for specific
cases when using or maintaining curated package sets (stackage, nix, etc).
Optionally, one can set the
use-aeson-2-2
flag tofalse
to use an older verison.
- Add support for aeson 2.2. Users can opt in by setting the
use-aeson-2-2
flag totrue
, which for many users will be set automatically. In a future breaking change release, this flag will default totrue
.
- Support GHC 9.4 by eliminating compiler errors
-
Remove deprecated functions and classes:
AWS.Lambda.Combinators.withFallibleInterface
AWS.Lambda.Combinators.withIOInterface
AWS.Lambda.Combinators.withPureInterface
AWS.Lambda.Context.HasLambdaContext
(class
)AWS.Lambda.Context.runReaderTLambdaContext
AWS.Lambda.Runtime.Value.mRuntimeWithContext
-
Rename
mRuntimeWithContext'
tomRuntimeWithContext
in the following modules:AWS.Lambda.Runtime
AWS.Lambda.Runtime.Value
-
Remove dependency on
envy
instance FromJSON AWS.Lambda.Events.EventBridge.Detail.SSM.ParameterStoreChange.Operation
now accepts arbitraryText
instead of the four currently-known operations.
- Add
AWS.Lambda.Events.EventBridge.EventBridgeEvent
type for subscribing Lambda functions to AWS EventBridge Events - Add
AWS.Lambda.Events.EventBridge.Detail.SSM.ParameterStoreChange
type for parsing AWS Systems Manager Parameter Store Change events delivered via AWS EventBridge. - When the runtime encounters an error, write it out to the Cloudwatch logs (via stderr), and do so in a format that can be guaranteed and later extended.
- Eliminate redundant import compiler warnings
- Add
KafkaEvent
type for subscribing Lambda functions to Kafka topics - Support
aeson ^>=2.0.0.0
- Drop official support for GHC 8.0.2
- Expand hedgehog bounds to include 1.1 to keep ahead of Stack nightly
- Add
ToJSON
instances forProxyRequest
types, and test round-tripping as much as possible - Add
FromJSON
instance forProxyResponse
, and test round-tripping as much as possible
- Drop http-conduit as a dependency for potentially smaller binaries
- Add more detailed error messages to context parsing failures
- Increase compatibility by loosening envy version bounds
- Add mRuntimeWithContext' and mRuntime
- Deprecate withIoInterface, withFallibleInterface, withPureInterface, HasLambdaContext, runRaderTLambdaContext, mRuntimeWithContext
- Fix an issue where errors from the runtime were not retried
- Constrain the envy version for correctly building with Cabal
- Fix documentation examples for Runtime and Combinators
- Add support for Value-based runtimes for handling JSON conversion errors explicitly
- Fix an issue where errors from the runtime were not retried
- Add support for triggered S3 events
- Fix an issue where errors from the runtime were not retried
- Expose
AWS.Lambda.Combinators
package for building other runtimes (e.g. to support Lambda Event triggers)
- Fix an issue where errors from the runtime were not retried
- Fix PVP bounds when building/uploading the package
- Incorrect error message when getting events from AWS
- Initial release!