Summary
LocalStack v2.1.0 is finally here! With new features like OpenSearch 2.5 support and cross-account compatibility, this release is a incremental step for streamlining your AWS development. Read on for the full run-down of what's new and what's changed. 🚀
AWS features
- Support for OpenSearch 2.5 has been added and it is now compatible with AWS Kinesis Data Firehose.
- Cross-account support is now available for SQS queues, Lambda functions and layers, and KMS keys.
- IoT now supports registry events, lifecycle events and DynamoDB topic rule. (🌟 pro)
- IoT MQTT broker now supports MQTT v5 and QoS limit. (🌟 pro)
- RDS now supports PostgresSQL 10, 14 and 15. (🌟 pro)
- MWAA now supports Airflow 2.5.1. (🌟 pro)
- AppSync JavaScript resolvers is now supported to allow users to express processing logic in JavaScript. (🌟 pro)
LocalStack features
- DynamoDB ships with DynamoDB Local in the LocalStack Docker image to improve the start-up time.
- DynamoDB CRUD operations have been improved and are now 20% faster.
- Base Docker image is updated from Debian Buster to Debian Bullseye.
- KMS keys, SQS queues, Lambda functions and layers can now be accessed cross-account using ARNs.
- LocalStack can now issue and accept structured Access Key IDs.
- Developer Hub — Users can now filter sample applications based on services, complexity level, infrastructure provider, programming languages, and Cloud Pods support.
What's Changed
- Always return bridge as fallback network by @dominikschubert in #8151
- add OpenSearch 2.5, remove Firehose limitation by @alexrashed in #8167
- re-install DynamoDB in Dockerfile, use cache for archive download by @alexrashed in #8194
- enforce semver labels, block major labeled PRs by @alexrashed in #8095
- Introduce usage counters by @dominikschubert in #8116
- [SFN] Failure support for lambda (service tasks) by @MEPalma in #8158
- [SFN] Baseline support for SQS, fixes, enhancements, tests by @MEPalma in #8209
- fix message group id behavior in sqs fifo queues by @thrau in #8238
- upgrade Werkzeug to 2.3.4 by @alexrashed in #8200
- KMS: implement cross-accounts access by @viren-nadkarni in #8253
- Lambda: Implement cross-account access by @viren-nadkarni in #8195
- DynamoDB: Remove extraneous call during region resolution by @viren-nadkarni in #8301
- remove install dependency on localstack_client by @alexrashed in #8307
- KMS: response key ID field must contain key ARN by @viren-nadkarni in #8317
- add s3 CopyObject tests by @bentsku in #8216
- upgrade debian base image from buster to bullseye by @alexrashed in #8344
- fix account resolution in SQS QueryAPI operations by @thrau in #8353
Other Changes
- remove SNS create_sqs_message_attributes and add DLQ for Fifo topic by @bentsku in #8144
- fix auto decoding of gzip for s3 vhost proxied requests by @bentsku in #8148
- add tests for multipart SSE fields and S3 KMS BucketKeyEnabled by @bentsku in #7445
- Fix lambda init xray telemetry initialization by @joe4dev in #8154
- fix invalid access to thread-local access key ID by @alexrashed in #8134
- SQS fix deduplication at queue level and deleted messages by @bentsku in #8146
- SNS test and add deduplication for FIFO topic by @bentsku in #8145
- Add EC2 image ssm parameter type by @dfangl in #8161
- Fix firehose / s3 client creation of clients with role by @dfangl in #8159
- add github-envs for tinybird upload scripts by @steffyP in #8131
- simplify implementation of HTTPRequestEventStreamAdapter by @thrau in #8102
- Enhance parity for ACM certificates for wildcard subdomains by @whummer in #8162
- fix default ProvisionedThroughput in DynamoDB by @pinzon in #8160
- fix invalid SQS message decoding by @alexrashed in #8180
- CFn: Implemented stack name validation by @deepak2431 in #8166
- upgrade werkzeug to 2.2.3 by @thrau in #8104
- fix CFn s3 CORS configuration for optional parameters by @bentsku in #8175
- [SFN] [ChoiceOperators] numeric operators, tests by @MEPalma in #7766
- Update ASF APIs by @localstack-bot in #8186
- [SFN] [ChoiceOperators] String operators, tests by @MEPalma in #7772
- [SFN] [ChoiceOperators] Timestamp operators, tests by @MEPalma in #7784
- fix tag updates of AWS::SSM::Parameter by @dominikschubert in #8177
- Fix publishing versions if package type is image by @dfangl in #8179
- Extract AWS Account ID from IAM access key ids (again) by @dfangl in #8138
- Add request id to request context by @dominikschubert in #7874
- fix TypeError for get_ddb_provisioned_throughput by @bentsku in #8189
- avoid Werkzeug and Flask upgrade to 2.3.0 by @alexrashed in #8202
- Fix docker copy_to_container performance, especially on mac by @dfangl in #8196
- Send service principal when assuming role, check if lambda can assume role before allowing creation by @dfangl in #8126
- fix: s3 parsing key with trailing backslash and reserved chars by @giograno in #8198
- fix hardcoded user agent for APIGW lambda proxy test by @bentsku in #8208
- fix flaky unit tests using server_context fixture by @alexrashed in #8212
- Use explicit region for test fixtures by @viren-nadkarni in #8114
- Fix mapping of denied access in docker hub by @dfangl in #8215
- [SFN] Failure support for aws-sdk by @MEPalma in #8033
- Update ASF APIs by @localstack-bot in #8231
- mm: upgrade botocore and boto3 by @matt-mercer in #8210
- add support for python3.10 lambda runtime, now that it's officially a… by @matt-mercer in #8184
- Add tests for Cloud Control API and Cloudformation Extensions by @dominikschubert in #7638
- Reduce stack usage in template_deployer by @dominikschubert in #8236
- Add support for Lambda java17 runtime by @dfangl in #8237
- Move CFn utils and remove redundant code by @dominikschubert in #8239
- Try to fix flaky http integration tests by @dfangl in #8243
- Add mediaconvert client type by @simonrw in #8229
- reintroduce vhost use in s3 cors tests by @bentsku in #8190
- Raise DependencyNotYetSatisfied instead of KeyError when secret is not yet populated by @dfangl in #8220
- fix mapping of insufficient scopes return value to access denied exception by @alexrashed in #8251
- Add SourceArn for Events Message Publisher by @pinzon in #8217
- CloudFormation: add types and restructure by @simonrw in #8240
- CFn: Shift ref resolution earlier by @simonrw in #8260
- add dynamodb utils to transform python values into DDB types by @bentsku in #8207
- add config to disable cloudwatch metrics for SQS by @steffyP in #8269
- chore: update lambda doc links by @HarshCasper in #8258
- Display a specified number of log lines on console based on tail option by @rahulmlokurte in #8233
- remove REF_*_ATTRS usage in models by @dominikschubert in #8257
- fix SdkDockerClient recovery if docker socket not available initially by @alexrashed in #8279
- add feature for output s3 bucket and output key in start transcription by @sannya-singal in #8265
- Remove REF_*_ATTRS from service models by @dominikschubert in #8286
- Add same transcription job name case by @sannya-singal in #8288
- Add more detail in cloudformation stack deploy failure by @simonrw in #8289
- sqs: Clear depduplication cache when FifoQueue is cleared by @martin-walsh in #8218
- Migrate s3 notifications to new clients, send test events by @dfangl in #8278
- Fix loading of CloudFormation deploy UI HTML code by @whummer in #8297
- Fix KeyId return value as ARN for "generate_data_key*" methods by @dfangl in #8302
- fix GetBucketCORS if CORS does not exist in store by @bentsku in #8281
- update kinesis client for events service by @pinzon in #8296
- update firehose client for eventbridge by @pinzon in #8287
- update cloudwatch logs client in message publisher by @pinzon in #8280
- Refactor physical resource ID, Ref and GetAtt by @dominikschubert in #8252
- fix PutEvents non-existent custom EventBus by @bentsku in #8264
- Fix CFn model class & attribute lookup by @dominikschubert in #8318
- Add encryption context to encrypt and decrypt operations in KMS by @sannya-singal in #8306
- remove pin on botocore by @alexrashed in #8321
- CFn: Add AWS::CloudFormation::WaitConditionHandle by @simonrw in #8327
- fix ListBuckets tag order by @bentsku in #8329
- Fix extraction of container Image when using podman by @whummer in #8333
- Fix issue publishing messages with String.Array attibutes by @tonybajan in #8311
- Add ddbstreams stores visit in DDB provider by @giograno in #8337
- add test for S3 LegalHold when targeting object version by @bentsku in #8291
- CFn: Stub WaitCondition resource by @simonrw in #8332
- fix intrinsic functions Select and FindInMap by @pinzon in #8348
- fix failing test related to shutdown method of hypercorn server by @thrau in #8354
- Enhance support for Podman API in Docker client by @whummer in #8349
- KMS: Remove the reserved key value pair from aad by @sannya-singal in #8350
- update ListObjects(V2) tag order for Java SDK by @bentsku in #8361
- fix stack set instance creation, add deletion by @pandomic in #8256
- fix postgres installation in test pipeline by @alexrashed in #8366
New Contributors
- @rahulmlokurte made their first contribution in #8233
- @martin-walsh made their first contribution in #8218
- @tonybajan made their first contribution in #8311
Full Changelog: v2.0.2...v2.1.0