Summary
We're excited to introduce new features and improvements in this release:
- We have added new Event Source Data Classes for AWS Transfer Family
- Idempotency feature with support for custom key prefixes
- Context manager for logger keys, offering more flexible logging options
We also revamped the Data Source event class documentation and now we have more complete examples.
Thanks to @xdxindustries for helping us resolve a bug with OpenAPI and Pydantic Models' forward references.
⭐ Huge thanks to our new contributors: @kattakaha and @AlphaWong!
Working with AWS Transfer Family events
We've introduced new Event Source Data Classes to simplify custom identity provider authorizations in AWS Transfer Family, streamlining the process of constructing authorization responses for Lambda-based custom authorizers.
TransferFamilyAuthorizer
: Converts incoming events into structured objectsTransferFamilyAuthorizerResponse
: Facilitates building standardized authorization responses
Custom Idempotency Key Prefix Support
The @idempotent_function
and @idempotent
decorators now support an optional key_prefix
parameter, allowing you to define custom prefixes for idempotency keys. With this feature, you can implement cross-function idempotency, group related operations under a common prefix, and ensure your idempotency records remain stable during code refactoring or Lambda function renaming.
It allows you to override the default idempotency key prefix, which is typically a combination of Lambda function, module, and decorated function names. By specifying a custom prefix, you gain more control over the idempotency key structure.
Context Manager for Logger Keys
The Logger utility now includes an append_context_keys
context manager, allowing temporary addition of keys to the logger’s context within a with
statement. This simplifies the process of adding contextual information to logs in specific code blocks.
Changes
🌟New features and non-breaking changes
- feat(event_source): add AWS Transfer Family classes (#5912) by @leandrodamascena
- feat(parser): add AWS Transfer Family model (#5906) by @leandrodamascena
- feat(idempotency): add support for custom Idempotency key prefix (#5898) by @leandrodamascena
- feat(logger): add context manager for logger keys (#5883) by @anafalcao
📜 Documentation updates
- docs(parser): improve documentation with Pydantic best practices (#5925) by @AlphaWong
- docs(data_classes): improve Event Source Data Classes documentation (#5916) by @anafalcao
- docs(event_handler): demonstrate handling optional security routes (#5895) by @leandrodamascena
- docs(layer): update layer version number - v3.4.1 (#5869) by @leandrodamascena
🐛 Bug and hot fixes
- fix(event_handler): fixes typo in variable name
fronzen_openapi_extensions
(#5929) by @kattakaha - fix(event_handler): add tests for PEP 563 compatibility with OpenAPI (#5886) by @leandrodamascena
- fix(event_handler): fix forward references resolution in OpenAPI (#5885) by @xdxindustries
- fix(parser): make identitySource optional for ApiGatewayAuthorizerRequestV2 model (#5880) by @anafalcao
🔧 Maintenance
- chore(ci): adding poetry export plugin to support v2 (#5941) by @leandrodamascena
- chore(ci): adding poetry export plugin to support v2 (#5938) by @leandrodamascena
- chore(ci): update poetry version to v2 (#5936) by @leandrodamascena
- chore(deps-dev): bump cdklabs-generative-ai-cdk-constructs from 0.1.289 to 0.1.290 (#5917) by @dependabot
- chore(deps-dev): bump aws-cdk-aws-lambda-python-alpha from 2.176.0a0 to 2.177.0a0 (#5933) by @dependabot
- chore(deps-dev): bump boto3-stubs from 1.36.6 to 1.36.7 (#5932) by @dependabot
- chore(deps-dev): bump aws-cdk-lib from 2.176.0 to 2.177.0 (#5931) by @dependabot
- chore(deps-dev): bump aws-cdk from 2.176.0 to 2.177.0 (#5930) by @dependabot
- chore(deps-dev): bump boto3-stubs from 1.36.4 to 1.36.6 (#5923) by @dependabot
- chore(deps-dev): bump boto3-stubs from 1.36.4 to 1.36.5 (#5919) by @dependabot
- chore(deps-dev): bump pytest-asyncio from 0.24.0 to 0.25.2 (#5920) by @dependabot
- chore(deps): bump pydantic from 2.10.5 to 2.10.6 (#5918) by @dependabot
- chore(deps-dev): bump cfn-lint from 1.22.6 to 1.22.7 (#5910) by @dependabot
- chore(deps-dev): bump testcontainers from 3.7.1 to 4.9.1 (#5907) by @dependabot
- chore(deps-dev): bump pytest-benchmark from 4.0.0 to 5.1.0 (#5909) by @dependabot
- chore(deps-dev): bump ruff from 0.9.2 to 0.9.3 (#5911) by @dependabot
- chore(deps-dev): bump pytest-cov from 5.0.0 to 6.0.0 (#5908) by @dependabot
- chore(ci): drop support for Python 3.8 (#5896) by @leandrodamascena
- chore(deps-dev): bump cfn-lint from 1.22.5 to 1.22.6 (#5900) by @dependabot
- chore(ci): make
pyproject.toml
fully compatible with Poetryv2 (#5902) by @leandrodamascena - chore(deps-dev): bump boto3-stubs from 1.36.2 to 1.36.3 (#5894) by @dependabot
- chore(deps): bump squidfunk/mkdocs-material from
ba73db5
to41942f7
in /docs (#5890) by @dependabot - chore(deps-dev): bump mkdocs-material from 9.5.49 to 9.5.50 (#5889) by @dependabot
- chore(deps-dev): bump aws-cdk-aws-lambda-python-alpha from 2.175.1a0 to 2.176.0a0 (#5882) by @dependabot
- chore(deps-dev): bump boto3-stubs from 1.36.1 to 1.36.2 (#5881) by @dependabot
- chore(deps-dev): bump aws-cdk from 2.175.1 to 2.176.0 (#5878) by @dependabot
- chore(deps-dev): bump ruff from 0.9.1 to 0.9.2 (#5877) by @dependabot
- chore(deps-dev): bump aws-cdk-lib from 2.175.1 to 2.176.0 (#5876) by @dependabot
- chore(deps-dev): bump mypy-boto3-appconfigdata from 1.35.93 to 1.36.0 in the boto-typing group (#5875) by @dependabot
- chore(deps-dev): bump sentry-sdk from 2.19.2 to 2.20.0 (#5870) by @dependabot
- chore(deps-dev): bump boto3-stubs from 1.35.97 to 1.35.99 (#5874) by @dependabot
- chore(deps-dev): bump cfn-lint from 1.22.4 to 1.22.5 (#5872) by @dependabot
- docs(layer): update layer version number - v3.4.1 (#5869) by @leandrodamascena
- chore(ci): adjust token permission (#5867) by @leandrodamascena
- chore(ci): fix permissions for gh pages (#5866) by @leandrodamascena
This release was made possible by the following contributors:
@AlphaWong, @anafalcao, @dependabot, @dependabot[bot], @github-actions, @github-actions[bot], @kattakaha, @leandrodamascena and @xdxindustries