v1.18.0 #548
Closed
heitorlessa
started this conversation in
Show and tell
v1.18.0
#548
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Summary
This release mainly focused on bug fixes and a few minor features, so we can spend time documenting a new utility (Feature Toggles) that will be fully available in 1.19.0.
Bug fixes were largely on MyPy errors (~600 to 38) across the entire code base. We also fixed a a) faulty greedy regex in the API Gateway event handler when dealing with long and dynamic routes (more in Changes section), b) Parser authorization and version fields for API Gateway that should've been optional, and c) Event Source Data Classes to conform with AppSync Scalar by including milliseconds in the time resolution.
We also had two new first-time contributors: 👏 @walmsles and @whardier, we appreciate your help with this release!
Changes
New get_correlation_id method in Logger
You can now retrieve the latest correlation ID previously set in the Logger instance at any part of the code base. This is useful when propagating correlation ID for external calls whether these are AWS service integrations or 3rd party endpoints.
Debug mode and HTTP service errors in Event Handlers
You can now easily enable debug mode for API Gateway or ALB event handlers. Additionally, we've made it easier to raise quick HTTP service errors in response to malformed requests, resources not found, etc.
Data model sub-classing in AppSync event handler
When building data-driven APIs using GraphQL and AppSync, you might have a set of reusable methods you want closer to the data model. Event Handler for AppSync supports a new parameter
data_model
to facilitate that.You can now subclass
AppSyncResolverEvent
from Event Source Data Classes while handling incoming requests with Event Handler for AppSync.Bugfix API Gateway routing params
This fixes a regex bug that used a greedy pattern ending with incorrect path resolution, as any path after a pattern would be included in the argument.
Excerpt:
In this example, say we have a GET request as
/accounts/123
and another as/accounts/123/source_networks
, we'd have the following effect prior to this fix:r'^/accounts/(?P<account_id>.+)$'
123
r'^/accounts/(?P<account_id>.+)/source_networks$'
123/source_networks
With this fix,
account_id
parameter would be 123 in both occasions due to word boundary not being non-greedy. This also allows an arbitrary number of dynamic route paths and static route paths.r'^/accounts/(?P<account_id>\\w+\\b)$'
123
r'^/accounts/(?P<account_id>\\w+\\b)/source_networks$'
123
🌟New features and non-breaking changes
📜 Documentation updates
🐛 Bug and hot fixes
🔧 Maintenance
This release was made possible by the following contributors:
@dependabot, @dependabot[bot], @heitorlessa, @michaelbrewer, @risenberg-cyberark, @walmsles and @whardier
This discussion was created from the release v1.18.0.
Beta Was this translation helpful? Give feedback.
All reactions