A developer toolkit to implement Serverless best practices and increase developer velocity.
The regression issue caused by PR https://github.com/aws-powertools/powertools-lambda-python/pull/4421 is resolved in this patch release. The issue occurred due to static typing importing Pydantic, as it went undetected in our pipeline and code review.
To prevent from happening again, we will introduce dynamic tests for all optional dependencies. We will pause new releases until that is implemented and verified. For further improvement, we will look into making daily pre-releases to help create more complex canary tests.
@github-actions, @github-actions[bot] and @leandrodamascena
This release improves Event Handler with (a) better serialization error for unsupported data types, and (b) middlewares are now triggered when a route is not found (404). We also crushed OpenAPI bugs for a smoother experience πͺ².
Thanks to @knightmre, Event Source Data Classes now features (a) updates Cognito User Pool User Migration event with verification link, and (b) new Pre-token generation and custom sender events.
π β A big thank you to our new contributors: @knightmre, @phipag, @keithrozario, and @stevenhoelscher.
You can now run middlewares even when a route is not found. Before, Event Handler immediately returned a HTTP 404 (Not Found). However, we learned from customers that key middleware logic should always run regardless, hence the fix.
This allows you to consistently perform cross-cutting concerns like logging, header injection, authorization, etc. even for invalid routes.
You can now use CloudFormationCustomResourceEvent
for a better experience with type hinting and code completion support.
NOTE. We recommend customers to use CloudFormation Custom Resource Helper library to author custom resources.
We now raise a SerializationError
when trying to serialize unsupported data types. Before, Event Handler did not distinguish between unsupported type or object altogether, like SQLAlchemy models.
You can bring your own custom serializer for additional data type support.
Last but not least, we fixed an issue that occurred when disabling Idempotency using an environment variable. Thanks to @stevenhoelscher for this great catch.
8a87f05
to 96abcbb
in /docs (#4461) by @dependabot5358893
to 8a87f05
in /docs (#4408) by @dependabot48d1914
to 5358893
in /docs (#4377) by @dependabot@dependabot, @dependabot[bot], @github-actions, @github-actions[bot], @heitorlessa, @keithrozario, @knightmre, @leandrodamascena, @phipag and @stevenhoelscher
A regression issue caused by PR 4295 has been resolved in this release. The issue occurred when using multiple instances of the Logger
in different files and with the same Logger
name.
π β Thank you @Thomas-McKanna, @SimonBFrank, @saravsak, and @JacobAuthenic for quickly identifying and helping to resolve this regression.
@leandrodamascena
This release introduces a handy new decorator for HTTP HEAD verb in Event Handler, improving the developer experience. Additionally, it offers a straightforward way to persist authorization sessions in OpenAPI, enhancing convenience. ππ As always, we've fixed some bugs and refined our documentation. π
π β Huge thanks to our new contributors: @raymondbutcher, @nlykkei, and @keithrozario!
We've introduced a new @app.head
decorator to the Event Handler, as it's the recommended approach when you only need to return headers in the response content.
We've added support to persist authorization data, such as OAuth 2.0 access tokens, even when the browser is closed or refreshed. This ensures that the user's authorization information is securely retained in the browser's local storage, providing a seamless experience and avoiding the need to re-authenticate.
48d1914
to 5358893
in /docs (#4377) by @dependabot8ef47d7
to 48d1914
in /docs (#4336) by @dependabot11d7ec0
to 8ef47d7
in /docs (#4323) by @dependabot98c9809
to 11d7ec0
in /docs (#4269) by @dependabote309089
to 98c9809
in /docs (#4236) by @dependabot521644b
to e309089
in /docs (#4216) by @dependabot@Wurstnase, @benjamingorman, @dependabot, @dependabot[bot], @dreamorosi, @github-actions, @github-actions[bot], @heitorlessa, @keithrozario, @leandrodamascena, @nlykkei, @phipag, @raymondbutcher and @rubenfonseca
This release adds Security Schemes support for generated OpenAPI / Swagger UI, and a new feature to manipulate idempotent responses. ππ And of course, you know it, fixes in typing and documentation. π
π Tons of things in this release was only possible because of our community. π A huge thank you to @walmsles, @Wurstnase, @SZubarev, @Emerson-MM-Filho, @nlykkei, @amyc92 and many others for your support and collaboration!
You can now add security scheme annotations to your generated OpenAPI documentation (HTTP headers, API keys, OAuth 2 and OpenID connect). Additionally, you can configure the built-in Swagger UI to use OAuth 2 when generating requests.
π Huge thanks to @nlykkei for helping us shape this feature!
You can now set up a response_hook
in the IdempotentConfig
class to manipulate the returned data when an operation is idempotent. The hook function will be called with the current deserialized response object and the idempotency record.
This can be used for changing something in the response, inject headers, emit custom metrics, and many other use cases.
π Thank you @walmsles for leading the design and implementation of this!
6b124e1
to 521644b
in /docs (#4141) by @dependabot065f3af
to 6b124e1
in /docs (#4055) by @dependabot3307665
to 065f3af
in /docs (#4052) by @dependabot@Emerson-MM-Filho, @SZubarev, @Wurstnase, @dependabot, @dependabot[bot], @github-actions, @github-actions[bot], @heitorlessa, @leandrodamascena, @rubenfonseca and @walmsles
We're excited to introduce some significant new features and improvements in this release:
We also made enhancements to our OpenAPI and type checking, and fixed some bugs!
β Huge thanks to our new contributors: @rafrafek, @xquek, and @par6n!
In response to our customer requests, Powertools now provides an enhanced experience for effortlessly creating and updating Parameters and Secrets. Recognizing the critical importance of parameters and secrets management, we created this new feature to empower customers with a seamless experience in managing their sensitive information.
A big thank you to @stephenbawks for their dedicated effort in implementing this new feature.
Some customers may need to create metrics with specific timestamps, to address this use case we've added the capability set custom metrics with specific timestamps to improve customer flexibility. Previously, this was not possible and all metrics were generated with the current timestamp.
We've created a new flag to enable seamless processing of messages from different group IDs. Activating this flag ensures that messages from a failed group ID are returned to SQS, allowing uninterrupted processing of messages from subsequent group IDs.
Thank you @duc00, for highlighting such an important matter and contributing to the improvement of this utility.
Customers now have the ability to utilize CloudWatchAlarmEvent
, which provides Type hinting and code completion support for this event, enhancing the development experience.
Last but not least, we've made significant improvements to our OpenAPI utility and fixed bugs to ensure a smoother experience. See all the latest improvements and bugfix in the changes section.
6c81a89
to 3307665
in /docs (#4017) by @dependabot3678304
to 6c81a89
in /docs (#3973) by @dependabot@TonySherman, @dependabot, @dependabot[bot], @eldritchideen, @github-actions, @github-actions[bot], @leandrodamascena, @par6n, @rafrafek, @rubenfonseca, @stephenbawks and @xquek
This patch release squashes a couple of bugs:
Huge thanks to @aitchnyu, @robk1234 and @palfrey for reporting and helping us fix these issues!
Changes
π Bug and hot fixes
π§ Maintenance
This release was made possible by the following contributors:
@dependabot, @dependabot[bot], @github-actions, @github-actions[bot] and @rubenfonseca
Weβre super excited to introduce a brand new utility to author Agents for Amazon Bedrock! ππ
Agents for Amazon Bedrock is a feature to build and deploy conversational agents that can interact with your customers using Large Language Models (LLM) and AWS Lambda functions.
Building on top of the Event Handler validation framework and the OpenAPI generation feature introduced in December, we created a new utility to:
Here's an agent with an action to schedule a meeting, ensuring that a valid email was passed in by the user:
Check out our brand new docs on the feature and let us know what you think!
Oh and we also fixed some bugs :) Thank you @kbakk and @aminalaee for your contributions!
49d1bfd
to 7be068b
in /docs (#3872) by @dependabot43b898a
to 49d1bfd
in /docs (#3857) by @dependabot@aminalaee, @dependabot, @dependabot[bot], @github-actions, @github-actions[bot] and @rubenfonseca
This patch release removes Data Masking dependencies from our managed Lambda Layer, explicitly aws-encryption-sdk
who depend on cffi
. The issue is that cffi
has to be compiled to each specific Python version while we didn't.
We are investigating the creation of a new layer per each Python version to bring back Data Masking dependencies. As of now, to use Data masking, you'll need to bring aws-encryption-sdk
as part of your dependencies until then.
@TonySherman, @Wurstnase, @dependabot, @dependabot[bot], @github-actions, @github-actions[bot], @heitorlessa and @leandrodamascena
Patch release to fix a regression introduced in v2.33 when running Event Handler REST API locally (unit test)...spotted by @jonathan-Chang π!
Huge thanks to Jonathan for reporting on Discord and helping triage all the way through.
@dependabot, @dependabot[bot], @github-actions, @github-actions[bot] and @heitorlessa