Summary
This release contains a wealth of parity improvements and fixes. It also includes a number of new features:
- Swagger and OpenAPI export for API Gateway REST APis #5935
- Cloudformation
EC2::Subnet
support #6162 - Cloudformation
AWS::OpenSearchService::Domain
support #6199 - A healthcheck for the Docker container #6297
- S3 TagObject notifications #6099
- A new HTTP gateway that we will roll out for 1.0 (can be enabled with
LEGACY_EDGE_PROXY=0
) #5243
This will potentially be the last release before our next major release.
What's Changed
- ASF protocol cleanup / small enhancements by @alexrashed in #6095
- improve SQS receipt handle error parity by @thrau in #6103
- Validations for Events.CreateConnection by @pinzon in #5964
- Slight refactoring to allow customizing DynamoDB server startup by @giograno in #6109
- Bump gson from 2.8.6 to 2.8.9 in /tests/integration/awslambda/functions/java/lambda_echo by @dependabot in #6112
- fix SQS dead letter queue delivery for fifo queues by @thrau in #6115
- fix SQS ReceiveMessage blocking behavior when MaxNumberOfMessages is set by @thrau in #6118
- Typo API Gateway Provider validateRequestPparameters by @nicoandra in #6113
- Draft: Add object tagging notification support by @threewordphrase in #6099
- update Docker base image (python:3.10.4-slim-buster) digest to 152f6ea by @renovate in #6120
- Add default UserName for AWS::IAM::User by @dominikschubert in #6122
- Use asyncio run_in_executor to prevent is_ssl_socket check from blocking by @dfangl in #6123
- Add hosts file to container to fix performance issues in windows container mode by @dfangl in #6129
- fix sqs query-api endpoint strategy routing by @thrau in #6145
- Fix references to AWS managed policies in SAM templates by @dominikschubert in #6148
- fix SQS ApproximateFirstReceiveTimestamp type by @thrau in #6147
- Fix cfn apigw domain tags by @pinzon in #6110
- Fix event message parameters priority by @pinzon in #5959
- Feature apigateway rest swagger export by @calvernaz in #5935
- Add test for catch/retry mechanism in StepFunctions by @dominikschubert in #6144
- Bump moto-ext to version 3.1.10 by @whummer in #6154
- Introduce BackendStateLifecycle abstraction by @giograno in #6114
- add SQS feature flag to raise QueueDeletedRecently errors by @thrau in #6140
- TransactWriteItem for binary data by @giograno in #6152
- update Docker base image (python:3.10.4-slim-buster) digest to 7e650ce by @renovate in #6164
- Update ASF APIs by @localstack-bot in #6165
- Update redhat image to python 3.10 by @dfangl in #6169
- add option to select test cases by fixture usage by @dominikschubert in #6175
- Fix CFN Events create rule without targets by @pinzon in #6061
- add apigateway restapi dispatcher to edge router by @thrau in #6040
- minor fix to allow authorization context permeate into lambda event by @calvernaz in #6174
- Fix SNS format when delivering to a DLQ by @bentsku in #6168
- Add error handling for localstack container startup in CLI by @dfangl in #6178
- Add CFn support for remaining EC2::Subnet properties by @whummer in #6162
- pin opensearch-py to version 1.1.0 by @steffyP in #6184
- Added explicit check for a bucket when deploying a stack by @giograno in #6171
- Kinesis - option for persistence path by @giograno in #6179
- fix apigateway delete_rest_api method by @thrau in #6185
- Add snapshot transformers by @dominikschubert in #6127
- add two more labels to 'exempt-issue-labels' for the stale-bot by @steffyP in #6189
- prepare s3 for ASF gateway by @thrau in #6191
- fix HypercornServer API and test to allow multiple instances by @thrau in #6190
- fix IAM exception handling by @thrau in #6192
- chore: remove chart release workflow by @HarshCasper in #6195
- switch to dev release versioning by @alexrashed in #6198
- implement ExclusiveStartShardId for DynamoDB Streams describe_stream by @bentsku in #6186
- test: invalidates #5395 by @dhilipsiva in #6159
- implement new HTTP request handling framework by @thrau in #5243
- fix and clean up sns tests to use httpserver fixture by @thrau in #6211
- fixed: route53 get-health-check response by @macnev2013 in #6205
- fix test_redrive_policy_http_subscription to correctly consume subscription notification by @thrau in #6219
- fix and clean up flaky cfn tests by @thrau in #6213
- fix concurrency of dynamodbstreams sequence number by @thrau in #6214
- update Docker base image (python:3.10.4-slim-buster) digest to b59fd1a by @renovate in #6208
- Update ASF APIs by @localstack-bot in #6220
- fix domain name validation in opensearch CreateDomain operation by @thrau in #6207
- Add
AWS::OpenSearchService::Domain
by @silv-io in #6199 - fix log subscription: return id as string by @steffyP in #6202
- Add tests which verify EventBridge rules behavior by @lukqw in #6124
- fix op router for new HTTP gateway requests with slashes by @alexrashed in #6223
- add websocket route to ApiInvocationContext by @calvernaz in #6230
- Fix CLI remove Literal type for 3.6 and 3.7 compatibility by @bentsku in #6231
- chore: remove banner image by @HarshCasper in #6235
- remove itest-sqs-provider test from CI pipeline by @thrau in #6236
- Initialize ws route by @calvernaz in #6241
- add composite handler for asf handler chain by @thrau in #6240
- add .env to .gitignore by @lukqw in #6232
- Exit pytest when encountering duplicate fixture names by default by @dominikschubert in #6244
- Removed duplicated SNSBackend by @giograno in #6243
- Add snapshot tests for s3 and cloudformation iam by @steffyP in #6222
- refactor state serializer api to use werkzeug request by @thrau in #6250
- add pluggable response handler for asf handler chain by @thrau in #6251
- chore: add localstack discussion page by @HarshCasper in #6249
- Allow TCP proxying with client certs without h11 by @dfangl in #6252
- minor fix to include request parameters while importing openapi by @calvernaz in #6255
- update Docker base image (python) tag to v3.10.5 by @renovate in #6259
- Update ASF APIs by @localstack-bot in #6260
- Test for IAM service linked role naming parity by @lukqw in #6182
- add dlq-list-sources by @baermat in #5915
- Add filtering for names provided with name_query for GetApiKeys method by @dfangl in #6261
- Migrate labels to their new names by @silv-io in #6263
- refactor API Gateway ASF provier / routing by @alexrashed in #6267
- Fix HTTP status for InvalidObjectState error code by @luisgabrielroldan in #6257
- Fix: auto confirm SNS subscription for lambda endpoint by @bentsku in #6270
- CI: Add a GHA to keep DockerHub description in sync by @HarshCasper in #6265
- fix ASF gateway forwarding by @alexrashed in #6273
- Cloud formation removal of unsupported and supported resources by @lukqw in #6167
- Improve parity of EncodingType and Delimiter in S3 list_objects response by @whummer in #6295
- CI: add paths and concurrency to pro integration workflow by @HarshCasper in #6283
- update CODEOWNERS to make bentsku the SNS owner by @thrau in #6299
- remove node package.json and move node modules into static_libs dir by @thrau in #6300
- Fix ConfirmSubscription in SNS http endpoint, match AWS behaviour by @bentsku in #6268
- Add simple hashable dict util class by @whummer in #6309
- fix detection of timestream requests in service router by @alexrashed in #6311
- GCM support for SNS by @pinzon in #6256
- fix crypto unit tests by @alexrashed in #6318
- add rds docdb and neptune to the list of known API conflicts by @thrau in #6319
- Add HEALTHCHECK to Dockerfile by @cspray in #6297
- Make hashable list/dict util classes immutable by @whummer in #6314
- fix aws service router to match endpointPrefixes on the host by @thrau in #6320
- Accept string value for maxReceiveCount by @7nohe in #6313
- fix mock integration invocations by @calvernaz in #6279
- Bump moto-ext to 3.1.12 by @whummer in #6323
- Attach additional attributes to S3 bucket objects instead of using global dicts by @whummer in #6325
- fix multi-registration of shared ASF API GW router by @alexrashed in #6330
- fix to skip openapi authorizers that are not extensions by @calvernaz in #6277
- Add handling of KMS ListAliases call with KeyId by @silv-io in #6262
- Add workaround for union isinstance in PortMappings for python lower 3.10 by @dfangl in #6336
- add support for apigateway lambda asynchronous invocations by @calvernaz in #6258
- CFN Stack timestamps attributes by @pinzon in #6194
- GitHub action build matrix for CLI tests by @dfangl in #6339
- fix lambda integration output response by @calvernaz in #6289
- Option for persistence path to stepfunctions by @giograno in #6316
- fix asf apigateway lambda response conversion by @thrau in #6343
- fix passing down of use_ssl when starting edge by @thrau in #6345
- fix S3 BackendState to raise ASF NoSuchBucket exception by @thrau in #6344
New Contributors
- @dependabot made their first contribution in #6112
- @nicoandra made their first contribution in #6113
- @threewordphrase made their first contribution in #6099
- @bentsku made their first contribution in #6168
- @dhilipsiva made their first contribution in #6159
- @lukqw made their first contribution in #6124
- @luisgabrielroldan made their first contribution in #6257
- @cspray made their first contribution in #6297
- @7nohe made their first contribution in #6313
Full Changelog: v0.14.3...v0.14.4