PHP | [aws/aws-sdk-php](https://github.com/aws/aws-sdk-php) | [3.285.2](https://github.com/aws/aws-sdk-php/releases/tag/3.285.2)
Python-boto3 | [boto/boto3](https://github.com/boto/boto3) | [1.28.82](https://github.com/boto/boto3/releases/tag/1.28.82)
Python-botocore | [boto/botocore](https://github.com/boto/botocore/) | [1.31.82](https://github.com/boto/botocore/releases/tag/1.31.82)
awscli | [AWS CLI](https://github.com/aws/aws-cli) | [1.29.82](https://github.com/aws/aws-cli/releases/tag/1.29.82)
Ruby | [aws/aws-sdk-ruby](https://github.com/aws/aws-sdk-ruby) | [1.67.0](https://rubygems.org/gems/aws-sdk-sqs/versions/1.67.0)
https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-json-faqs.html#json-protocol-supported-languages
Also, the [Terraform AWS provider](https://github.com/hashicorp/terraform-provider-aws) is also concerned by this issue, starting with [`5.25.0`](https://github.com/hashicorp/terraform-provider-aws/releases/tag/v5.25.0)
Strict Service Loading - `SERVICES` environment variable
With 3.0, we are introducing strict service loading based on the `SERVICES` environment variable.
In older versions of LocalStack, this variable defined the set of services which should be loaded by default. New versions of LocalStack load the services on-demand dynamically on their first invocation. With 3.0, the `SERVICES` variable will be used as a strict list of services that should be loaded. The loading of all other services will be prevented.
- If you are using the `SERVICES` environment variable, without using `EAGER_SERVICE_LOADING`, please remove the variable (it does not have any effect in your current config).
- If you are using the `SERVICES` environment variable in combination with `EAGER_SERVICE_LOADING`, please make sure it contains *all* services you are using. Any additional services (which would have been loaded on demand in pre-v3 versions of LocalStack) will not be loaded anymore.
Cloud Pods
In this 3.0 release, we are removing Community Cloud Pods. Moving forward, Cloud Pods will only be accessible to Pro/Team users. The handling of Cloud Pods in the local file system is now handled via the `localstack state import/export` commands.
S3
With `2.3.0` we introduced a new, opt-in, LocalStack-native, faster S3 provider with no external dependencies, improved parity, better memory usage, and better support for bucket versioning and multipart upload. With `3.0`, we are promoting this provider to become the default!
`S3_DIR` is not supported anymore with the new provider. However, S3 persistence has been greatly improved, and you should be able to seed your data with [Initialization hooks](https://docs.localstack.cloud/references/init-hooks/).
Besides that, users should be mostly unaffected, but may experience some breakage depending on previous behavior that was not aligned with AWS. Should you run into problems, you can, for now, activate the old provider with `PROVIDER_OVERRIDE_S3=legacy_v2`.
StepFunctions
We’re introducing a new native implementation of AWS StepFunctions. It comes with a number of additional features and improvements over the previous version. The update offers extended support for timeouts and heartbeats, state machine versioning, Map states, EventBridge integration, as well as support for the latest set of Intrinsic Functions. Enhanced API parity with AWS StepFunctions is also a key improvement delivered in this latest update.
We’ll continue actively improving our new StepFunctions implementation. In the next months you can look forward to additional exciting features such as express workflows, more service integrations, express workflows, activity support and more. Adopting this new native implementation now allows us to add features and resolve issues faster than before.
In case you run into issues, you can, for now, use the legacy provider using `PROVIDER_OVERRIDE_STEPFUNCTIONS=legacy`. Please note that this fallback will be removed with the next major version, so please start migrating your workloads to the new default provider over the next months.
See our [Announcement post on Discuss](https://discuss.localstack.cloud/t/new-stepfunctions-implementation-in-localstack-3-0/593) for more details.
ElastiCache
ElastiCache in LocalStack has been completely re-written. The new ElastiCache implementation provides much better parity with AWS and resolves some issues around Redis cluster management in the previous provider. In case you run into issues, you can, for now, use the legacy provider using `PROVIDER_OVERRIDE_ELASTICACHE=legacy`.
Multi-Region and Multi-Account Support in SQS and IoT endpoints
In order to improve the multi-account and multi-region support for SQS and IoT, the endpoints generated for certain resources of these services (like SQS queues, or IoT endpoints) now contain the account ID and the region.
When using these services, please do not make any assumptions on the URLs generated by LocalStack, but use the URLs returned in the responses.
- For SQS queues, please use the `QueueUrl` contained in responses to `CreateQueue` operation.
- For IoT endpoints, please use the `endpointAddress` contained in responses to the `DescribeEndpoint` operation.
Performance improvements for DynamoDB write operations
We’ve massively improved write performance for DynamoDB in LocalStack, with our benchmarks showing a 60% faster `PutItem` operation. Using higher batch sizes will profit even more from this change, with `BatchWriteItem` now being 6.2x faster for 10 items and 9.9x faster for 25 items.
That means if you’re populating a large DynamoDB table, you can now take advantage of much faster insertion times!
For the best performance please set `DYNAMODB_IN_MEMORY=1`, but even without this, you should still notice a significant performance improvement.
Please note that setting `DYNAMODB_IN_MEMORY` will disable persistence support for DynamoDB.
Multi-Account and Multi-Region support
Multi-account and multi-region support continues to be improved in LocalStack. There is broader support for IAM enforcement for inter-service integrations. Various services now have improved multi-accounts awareness, including the new StepFunctions provider, SQS, CloudWatch, EventBridge and more. We also have revamped how ARNs are constructed internally which will result in improved ARN accuracy.
Other notable changes
- The IoT services (`iot`, `iot-analytics`, `iot-data`, `iot-wireless`) do not ship with their third-party packages pre-installed in the Docker image anymore.
- Instead, these packages will be downloaded on-demand when the services need them. This helps reducing the Docker image size for all users.
- Please [configure the volume directory](https://docs.localstack.cloud/references/filesystem/) to cache packages that are downloaded on-demand.
- RDS now actually uses MySQL (instead of MariaDB) if the engine `mysql` is used.
- Up until now, the engine `mysql` would always create a `mariadb` instance behind the scenes.
- With 3.0 we change this behavior, and RDS will create a real `mysql` instance in a new docker container. The image will be taken from the official [MySQL image on Dockerhub](https://hub.docker.com/_/mysql), and the `EngineVersion` defines the image-tag that will be used.
- Should you run into problems, you can, for now, set `RDS_MYSQL_DOCKER=0`.
- RDS now correctly returns only the hostname in the `Endpoint` field of responses to the `CreateDBCluster` operation.
- Previously, this field also contained the port, however the port has its own field in the response.
- Should you run into problems, you can, for now, set `RDS_CLUSTER_ENDPOINT_HOST_ONLY=0`.
- After its initial preview phase, AWS RAM is now part of our paid offering and will be further developed and integrated with our IAM enforcement in future releases.
Removals of Deprecations
The following section lists removals of configurations that have already been deprecated in previous versions, where the usage with current images will already log warnings on the usage of outdated configurations. *If you have upgraded to the latest changes in previous releases, these changes will not affect you.*
Legacy CLI commands
The following CLI command groups are being removed:
- `infra` - Please use `localstack start` instead.
- `daemons` - This feature is being removed.
Legacy Internal Endpoints
The following endpoints, which have been deprecated a long time ago, will now be removed:
- `**/health` → Please use `/_localstack/health` instead**
- `/cloudwatch/metrics/raw` → Please use `/_aws/cloudwatch/metrics/raw` instead
- `/_localstack/ses` → Please use `/_aws/ses` instead
- `/_pods` → Please use `/_localstack/pods` instead
- `/login` → Please use `/_aws/cognito-idp/login` instead
- `/logout` → Please use `/_aws/cognito-idp/logout` instead
- `/signup` → Please use `/_aws/cognito-idp/signup` instead
- `/forgotPassword` → Please use `/_aws/cognito-idp/forgotPassword` instead
- `/oauth2/token` → Please use `/_aws/cognito-idp/oauth2/token` instead
- `/oauth2/authorize` → Please use `/_aws/cognito-idp/oauth2/authorize` instead
Legacy S3 Provider - `PROVIDER_OVERRIDE_S3=legacy`
The legacy S3 provider is being removed. This only affects you if you are setting `PROVIDER_OVERRIDE_S3=legacy`. Please migrate to the new S3 provider by removing this setting.
Legacy Lambda Provider - `PROVIDER_OVERRIDE_LAMBDA=legacy`
The legacy Lambda provider is being removed. This only affects you if you are setting `PROVIDER_OVERRIDE_LAMBDA=legacy`. Please migrate to the new Lambda provider by removing this setting. You can find more details in our [Lambda migration guide](https://docs.localstack.cloud/user-guide/aws/lambda/#migrating-to-lambda-v2).
With the removal of the legacy lambda provider, the following deprecated environment variables will be removed:
- `LAMBDA_EXECUTOR`
- `LAMBDA_STAY_OPEN_MODE`
- `LAMBDA_REMOTE_DOCKER`
- `LAMBDA_CODE_EXTRACT_TIME`
- `LAMBDA_CONTAINER_REGISTRY`
- `LAMBDA_FALLBACK_URL`
- `LAMBDA_FORWARD_URL`
- `LAMBDA_XRAY_INIT`
Legacy KMS Provider - `KMS_PROVIDER=local-kms`
The legacy "local-kms" provider is being removed. This only affects you if you are setting `KMS_PROVIDER=local-kms`. Please migrate to the new KMS provider by removing this setting.
Legacy port and host config - `EDGE_PORT`, `EDGE_PORT_HTTP`, `EDGE_BIND_HOST`
We have removed the ability to configure what address and port LocalStack listens on via the variables `EDGE_PORT`, `EDGE_PORT_HTTP`, and `EDGE_BIND_HOST`. Please migrate to use `GATEWAY_LISTEN` instead. You can find more details on the migration path in the [release notes of v2](https://github.com/localstack/localstack/releases/tag/v2.0.0).
Legacy region config - `DEFAULT_REGION`, `USE_SINGLE_REGION`
We have removed `DEFAULT_REGION` and `USE_SINGLE_REGION`, which have been deprecated since `0.12.7`. LocalStack is now multi-account and multi-region-aware, and these settings are not used anymore.
Legacy BigData Image Support - `BIGDATA_MONO_CONTAINER`
The support for the usage of the `localstack/bigdata` image (with `BIGDATA_MONO_CONTAINER=0`) is being removed. Please just remove this configuration variable to switch to the (default) “mono container mode”.
With the removal of the legacy bigdata image support, the following deprecated environment variables will be removed:
- `AUTOSTART_UTIL_CONTAINERS`
Legacy CloudPods client - `ACTIVATE_NEW_POD_CLIENT`
The support for the legacy CloudPods client (with `ACTIVATE_NEW_POD_CLIENT=0`) is being removed. Please just remove this configuration variable to switch to the new (default) cloudpods client.
Others
In addition to the changes above, the following configuration variables have been removed (which has been announced in previous releases):
- `ES_ENDPOINT_STRATEGY`, `ES_MULTI_CLUSTER`, `ES_CUSTOM_BACKEND`
- These options have been removed. Please `OPENSEARCH__ENDPOINT_STRATEGY`, `OPENSEARCH_MULTI_CLUSTER`, or `OPENSEARCH_CUSTOM_BACKEND` instead.
- `KINESIS_INITIALIZE_STREAMS`
- Please use [init hooks](https://docs.localstack.cloud/references/init-hooks/) to pre-seed your environment instead.
- `MOCK_UNIMPLEMENTED`
- This feature has been discontinued. Please remove this environment variable.
- `SYNCHRONOUS_*_EVENTS`
- This configurations break parity with AWS, which is why they have been removed. Please remove this environment variable.
- `EC2_AUTOSTART_DAEMON`
- The localstack local daemons have been removed. Please remove this environment variable.
- `*_PORT_EXTERNAL`
- These configuration variables have been superseded by the new networking config (see above).
What's Changed
* v3 release PR by alexrashed in https://github.com/localstack/localstack/pull/9467
* Drop preview version of RAM by dominikschubert in https://github.com/localstack/localstack/pull/9593
* add error handling for Events.PutRule by thrau in https://github.com/localstack/localstack/pull/9268
* upgrade werkzeug to version 3 by alexrashed in https://github.com/localstack/localstack/pull/9276
* [SFN] Support for Distributed MapRun, ItemReader, ListMapRuns, DescribeMapRun, UpdateMapRun by MEPalma in https://github.com/localstack/localstack/pull/9205
* add /_localstack/info endpoint for basic infos about the instance by thrau in https://github.com/localstack/localstack/pull/9290
* regenerate ASF stubs for botocore 1.31.61 upgrade by thrau in https://github.com/localstack/localstack/pull/9299
* StepFunctions: Multi-accounts compatibility by viren-nadkarni in https://github.com/localstack/localstack/pull/9119
* add default event for scheduled eventbridge rules by thrau in https://github.com/localstack/localstack/pull/9271
* add SNS internal endpoint to fetch SubscriptionTokens by bentsku in https://github.com/localstack/localstack/pull/9336
* move airspeed patches by calvernaz in https://github.com/localstack/localstack/pull/9245
* upgrade debian to bookworm by alexrashed in https://github.com/localstack/localstack/pull/9288
* improve CORS handler: no CORS headers if no Origin by bentsku in https://github.com/localstack/localstack/pull/9344
* Integrate lambda init upstream changes by joe4dev in https://github.com/localstack/localstack/pull/9378
* [SFN] Fixes and improvements to error logging by MEPalma in https://github.com/localstack/localstack/pull/9287
* Update kinesis-mock to 0.4.4 by etspaceman in https://github.com/localstack/localstack/pull/8915
* [SFN] Add support for previousEventId by MEPalma in https://github.com/localstack/localstack/pull/9342
* switch to ruff and upgrade test tooling by alexrashed in https://github.com/localstack/localstack/pull/9399
* enhancement: dynamodb performance optimization by bentsku in https://github.com/localstack/localstack/pull/9410
* implement AwsRequestProxy that re-uses HTTP client connections by thrau in https://github.com/localstack/localstack/pull/9425
* add iter_stores method to AccountRegionBundle by thrau in https://github.com/localstack/localstack/pull/9440
* re-introduce S3 virtual host rewriter for v3 by bentsku in https://github.com/localstack/localstack/pull/9450
* [SFN] Improvements for state update during retry-catch workflows by MEPalma in https://github.com/localstack/localstack/pull/9459
* SQS: Introduce 'standard' queue URL strategy by viren-nadkarni in https://github.com/localstack/localstack/pull/9454
* Move lambda v1 to legacy package by joe4dev in https://github.com/localstack/localstack/pull/9473
* Tests for Cloudwatch v2 by pinzon in https://github.com/localstack/localstack/pull/9462
* [SFN] Fix TimestampPath Value Access by MEPalma in https://github.com/localstack/localstack/pull/9522
* add restricted services config by bentsku in https://github.com/localstack/localstack/pull/9494
* [SFN] Fix reentrant wait function by MEPalma in https://github.com/localstack/localstack/pull/9552
* add resource provider for AWS::EC2::NetworkAcl by pinzon in https://github.com/localstack/localstack/pull/9523
* Add internal endpoint to return config by webdev51 in https://github.com/localstack/localstack/pull/9592
* fix SQS JSON protocol support in ASF by alexrashed in https://github.com/localstack/localstack/pull/8268
* OpenSearch: Bump engine version to 2.9 by viren-nadkarni in https://github.com/localstack/localstack/pull/9626
* Add AWS::DynamoDB::Table resource provider by pinzon in https://github.com/localstack/localstack/pull/9138
* fix flaky get_metric_data cloudwatch test by dominikschubert in https://github.com/localstack/localstack/pull/9282
* avoid installation of python3.9 in docker image by whummer in https://github.com/localstack/localstack/pull/9270
* Track DNS_ADDRESS usage in events by simonrw in https://github.com/localstack/localstack/pull/9229
* Resolve LOCALSTACK_HOST to the LocalStack container by simonrw in https://github.com/localstack/localstack/pull/9178
* Add cdk-helper for lambdas with dependency by steffyP in https://github.com/localstack/localstack/pull/9275
* Fix persistence for provisioned concurrency by joe4dev in https://github.com/localstack/localstack/pull/9279
* Screen AWS markers for Lambda by joe4dev in https://github.com/localstack/localstack/pull/9283
* Allow --mount-dependencies for python modules which are not in a separate directory by dfangl in https://github.com/localstack/localstack/pull/9289
* Stabilize first version of CDK-based InfraProvisioner by dominikschubert in https://github.com/localstack/localstack/pull/9257
* Type conversion for AWS::OpenSearch::Domain by pinzon in https://github.com/localstack/localstack/pull/9278
* fix S3 v3 HeadObject with checksum by bentsku in https://github.com/localstack/localstack/pull/9297
* Implementation of AWS::CloudWatch::* resource providers for CloudFormation by Morijarti in https://github.com/localstack/localstack/pull/9296
* Fix layer version handling for external Lambda layers by joe4dev in https://github.com/localstack/localstack/pull/9286
* transcibe: update snapshots by sannya-singal in https://github.com/localstack/localstack/pull/9305
* Implementation of AWS::ECR::Repository resource provider for CloudFormation by Morijarti in https://github.com/localstack/localstack/pull/9302
* add Python 3.12 to the CLI test version matrix by alexrashed in https://github.com/localstack/localstack/pull/9303
* fix GetTopicAttributes exception when arn is malformed by bentsku in https://github.com/localstack/localstack/pull/9310
* Update CODEOWNERS by localstack-bot in https://github.com/localstack/localstack/pull/9313
* Disable AWS::ECR::Repository mock resource provider by dominikschubert in https://github.com/localstack/localstack/pull/9315
* Add support for fn::select in conditional by pinzon in https://github.com/localstack/localstack/pull/9311
* Minor: Enhance parity around CloudFormation template URLs by whummer in https://github.com/localstack/localstack/pull/9312
* Implemented AWS::KMS::* Resource provider for CloudFormation by Morijarti in https://github.com/localstack/localstack/pull/9304
* remove dependency on legacy boto by alexrashed in https://github.com/localstack/localstack/pull/9324
* Use region-agnostic bucket create for Transcribe tests by viren-nadkarni in https://github.com/localstack/localstack/pull/9318
* Adds internal cache invalidation on DynamoDB table update operations by ahamilton55 in https://github.com/localstack/localstack/pull/9244
* fix SNS headers when publishing to HTTP endpoints by bentsku in https://github.com/localstack/localstack/pull/9323
* fix SNS MessageBody filtering with `.` by bentsku in https://github.com/localstack/localstack/pull/9319
* follow up on CloudFormation template URLs S3 URI by bentsku in https://github.com/localstack/localstack/pull/9329
* Add support for AWS::CertificateManager::Certificate resource by Morijarti in https://github.com/localstack/localstack/pull/9316
* Add ElasticBeanstalk resources to list of resource providers by pinzon in https://github.com/localstack/localstack/pull/9308
* Improve CDK test tooling with better error reporting and typing by dominikschubert in https://github.com/localstack/localstack/pull/9332
* Fix lambda invoke with short function name by raiatul14 in https://github.com/localstack/localstack/pull/9328
* fix missing support for eventbridge notifications in legacy AWS::S3::Bucket by dominikschubert in https://github.com/localstack/localstack/pull/9338
* relax cachetools dependency constraint to >=5.0 by thrau in https://github.com/localstack/localstack/pull/9341
* Dev script can load extensions by simonrw in https://github.com/localstack/localstack/pull/9339
* Remove the deprecated internal boto client library by viren-nadkarni in https://github.com/localstack/localstack/pull/9343
* fix APIGW UpdateStage for methods settings by bentsku in https://github.com/localstack/localstack/pull/9334
* Bump moto-ext to 4.2.5.post2 by viren-nadkarni in https://github.com/localstack/localstack/pull/9314
* update Docker base images in a single PR by alexrashed in https://github.com/localstack/localstack/pull/9366
* Fix lambda filesystem permissions by joe4dev in https://github.com/localstack/localstack/pull/9292
* Helper changes to support `eksctl` and CDK L2 EKS construct by simonrw in https://github.com/localstack/localstack/pull/9309
* add test for AWS Mythical Mysfits sample app by bentsku in https://github.com/localstack/localstack/pull/9269
* add dev support for mounting postgresql-proxy by bentsku in https://github.com/localstack/localstack/pull/9373
* Bump moto-ext to 4.2.6.post1 by viren-nadkarni in https://github.com/localstack/localstack/pull/9359
* EC2: Fix IndexError in ModifyLaunchTemplate by viren-nadkarni in https://github.com/localstack/localstack/pull/9363
* Update docs to mention awslocal cli installation by evan-hines-js in https://github.com/localstack/localstack/pull/8372
* move lambda cloudformation resources to new module by alexrashed in https://github.com/localstack/localstack/pull/9380
* add ability to peek delayed and invisible sqs messages by thrau in https://github.com/localstack/localstack/pull/9357
* Remove redundant SQS ARN helper by viren-nadkarni in https://github.com/localstack/localstack/pull/9384
* Use account and region aware test assertions by viren-nadkarni in https://github.com/localstack/localstack/pull/9361
* Lambda: Fix VPC resolution in non-default accounts by viren-nadkarni in https://github.com/localstack/localstack/pull/9362
* disable pro tests for forks, fix label check for fork PRs by alexrashed in https://github.com/localstack/localstack/pull/9383
* update CODEOWNERS by alexrashed in https://github.com/localstack/localstack/pull/9379
* Migrate Lambda to gateway listen by joe4dev in https://github.com/localstack/localstack/pull/9389
* fix awsRegion field in S3 notification by bentsku in https://github.com/localstack/localstack/pull/9370
* fix s3 v3 multipart overwrite when key exists by bentsku in https://github.com/localstack/localstack/pull/9388
* fix inter services IAM for S3 Notifications by bentsku in https://github.com/localstack/localstack/pull/9411
* sns: add multi-account capability to failing tests by sannya-singal in https://github.com/localstack/localstack/pull/9358
* minor: add mypy types for appconfigdata service client by whummer in https://github.com/localstack/localstack/pull/9407
* add config variable DYNAMODB_LOCAL_PORT to control ddb local port by thrau in https://github.com/localstack/localstack/pull/9402
* Add AWS::Redshift::Cluster support to LocalStack CloudFormation by Morijarti in https://github.com/localstack/localstack/pull/9403
* add multi account support to failing tests in apigateway-sqs integration by sannya-singal in https://github.com/localstack/localstack/pull/9416
* DynamoDB: remove use of aws_stack.get_region() by viren-nadkarni in https://github.com/localstack/localstack/pull/9382
* APIGW: Use proper account ID and region during Invocation construction by viren-nadkarni in https://github.com/localstack/localstack/pull/9401
* fix ASF update action if there are no changes by alexrashed in https://github.com/localstack/localstack/pull/9436
* fixed support for multi-region for cloudfomation by macnev2013 in https://github.com/localstack/localstack/pull/9414
* Rebase release branches once a day instead of on every push by dfangl in https://github.com/localstack/localstack/pull/9441
* Simplify localstack init user config by joe4dev in https://github.com/localstack/localstack/pull/9446
* Fix LS container DNS configuration by simonrw in https://github.com/localstack/localstack/pull/9444
* apigateway: add multi-account and region capability by sannya-singal in https://github.com/localstack/localstack/pull/9435
* fix s3 v3 EncodingType in List* operations by bentsku in https://github.com/localstack/localstack/pull/9429
* fix s3 v3 ListObjectsV2 and ListObjectVersions pagination by bentsku in https://github.com/localstack/localstack/pull/9430
* add test for DeleteObjects encoding by bentsku in https://github.com/localstack/localstack/pull/9431
* Implementation of AWS::S3::* Resource Provider support for CloudFormation by Morijarti in https://github.com/localstack/localstack/pull/9404
* Cfn: Add account ID and region awareness to Stacks and StackChangeSets by viren-nadkarni in https://github.com/localstack/localstack/pull/9418
* Add AWS::Events::* resource providers for CloudFormation by Morijarti in https://github.com/localstack/localstack/pull/9438
* Add support for AWS::ApiGateway::* resources by Morijarti in https://github.com/localstack/localstack/pull/9320
* fix s3 v3 preconditions by bentsku in https://github.com/localstack/localstack/pull/9448
* harden flaky test test_events_scheduled_rules_logs by bentsku in https://github.com/localstack/localstack/pull/9456
* Lambda: Use proper account ID and region during ARN construction by viren-nadkarni in https://github.com/localstack/localstack/pull/9400
* Update README.md, remove dollar sign from brew command by bery in https://github.com/localstack/localstack/pull/9466
* kms: fix get_parameters_for_import by sannya-singal in https://github.com/localstack/localstack/pull/9463
* Update route matchers to accept any host by simonrw in https://github.com/localstack/localstack/pull/9458
* Fix lambda file permissions with layer by joe4dev in https://github.com/localstack/localstack/pull/9460
* Bump moto-ext to 4.2.6.post2 by viren-nadkarni in https://github.com/localstack/localstack/pull/9464
* Implmentation of AWS::SecretsManager:* Resource Providers for CloudFormation by Morijarti in https://github.com/localstack/localstack/pull/9455
* Fix CFn schema json name resolution for -ext by dominikschubert in https://github.com/localstack/localstack/pull/9478
* Add another CFn conditional test by dominikschubert in https://github.com/localstack/localstack/pull/8590
* Add AWS::Logs::* Resource Providers to CloudFormation by Morijarti in https://github.com/localstack/localstack/pull/9447
* fixed describe sfn exception by macnev2013 in https://github.com/localstack/localstack/pull/9481
* CFn: fix reserved python keyword usage in scaffolding plugin by simonrw in https://github.com/localstack/localstack/pull/9492
* fix linting targets and reformat files by alexrashed in https://github.com/localstack/localstack/pull/9493
* fix SecretTargetAttachment Cfn by bentsku in https://github.com/localstack/localstack/pull/9495
* Remove aws_stack.get_region() from test helpers by viren-nadkarni in https://github.com/localstack/localstack/pull/9377
* Update CODEOWNERS by localstack-bot in https://github.com/localstack/localstack/pull/9501
* Ensure backdoor endpoint tests respect the test account ID by viren-nadkarni in https://github.com/localstack/localstack/pull/9506
* add DHCPOptions resource provider by pinzon in https://github.com/localstack/localstack/pull/9406
* fix ASF update service detection by alexrashed in https://github.com/localstack/localstack/pull/9504
* remove s3 encoding tets xfail marker and xfail flaky events scheduler test by bentsku in https://github.com/localstack/localstack/pull/9507
* Make ARN builders require account ID and region args by viren-nadkarni in https://github.com/localstack/localstack/pull/9398
* sns: get region and account from parsed `endpointArn` by sannya-singal in https://github.com/localstack/localstack/pull/9502
* fix s3 notification for lambda by macnev2013 in https://github.com/localstack/localstack/pull/9503
* Add state visitor handler for StepFunctions v2 persistence support by whummer in https://github.com/localstack/localstack/pull/9515
* add utility function to check comma-delimited strings by giograno in https://github.com/localstack/localstack/pull/9516
* harden s3 v3 concurrency by bentsku in https://github.com/localstack/localstack/pull/9517
* kinesis-lambda: Remove aws_stack.get_region() and get_aws_account_id() by sannya-singal in https://github.com/localstack/localstack/pull/9527
* Kinesis: Remove aws_stack.get_region() and get_aws_account_id() by viren-nadkarni in https://github.com/localstack/localstack/pull/9381
* fix s3 v3 CopyObject in place + general validations for S3 by bentsku in https://github.com/localstack/localstack/pull/9483
* CFn: allow for pro resource provider overrides by simonrw in https://github.com/localstack/localstack/pull/9333
* Fix updates of event source mapping targeting new function versions by dominikschubert in https://github.com/localstack/localstack/pull/9479
* Add SHUTDOWN_TIMEOUT config to allow for shutdown handlers of more than 5sec by whummer in https://github.com/localstack/localstack/pull/9529
* improve s3 v3 ListMultipartUploads and ListParts & various List* improvements by bentsku in https://github.com/localstack/localstack/pull/9484
* Refactor aws_stack.mock_aws_request_headers() by viren-nadkarni in https://github.com/localstack/localstack/pull/9509
* raise exception for undefined dependency in CFn template by pinzon in https://github.com/localstack/localstack/pull/9521
* adding route53 snapshot test by giograno in https://github.com/localstack/localstack/pull/9539
* Remove aws_stack.get_region() and get_aws_account_id() from tests by viren-nadkarni in https://github.com/localstack/localstack/pull/9537
* Allow setting numeric config variables in config update endpoint by whummer in https://github.com/localstack/localstack/pull/9548
* Make OpensearchProvider inherit ServiceLifecycleHook by GREsau in https://github.com/localstack/localstack/pull/9555
* stabilized multi account for cloudwatch-sqs by macnev2013 in https://github.com/localstack/localstack/pull/9540
* add services + strict_service_loading to analytics logging by steffyP in https://github.com/localstack/localstack/pull/9559
* make config.dirs.tmp be inside the container filesystem, add mounted_tmp by bentsku in https://github.com/localstack/localstack/pull/9206
* Correct `DomainEndpointOptions` in opensearch/elasticsearch responses and persisted state by GREsau in https://github.com/localstack/localstack/pull/9566
* update kms invalid key format and fix a broken multi account test for s3 by sannya-singal in https://github.com/localstack/localstack/pull/9570
* show available/disabled services in health endpoint + fix sqs strict loading by steffyP in https://github.com/localstack/localstack/pull/9563
* s3: Fix broken multi account and region functionality by sannya-singal in https://github.com/localstack/localstack/pull/9560
* stabilized multi account for apigw test_invoke_method by macnev2013 in https://github.com/localstack/localstack/pull/9547
* make SNS Delivery Logs opt-in by bentsku in https://github.com/localstack/localstack/pull/9568
* publish major docker tag by jansepke in https://github.com/localstack/localstack/pull/9490
* fail gracefully for S3 notifications and SNS delivery logs with strict service loading by bentsku in https://github.com/localstack/localstack/pull/9575
* add resource provider for AWS::RDS::DBCluster by pinzon in https://github.com/localstack/localstack/pull/9549
* Implementation of AWS::EC2:* resource providers for CloudFormation by Morijarti in https://github.com/localstack/localstack/pull/9295
* Add AWS::SSM::* Resource Provider to CloudFormation by Morijarti in https://github.com/localstack/localstack/pull/9480
* Fix snapshot reference replacement replacing parts of the snapshot keys by dfangl in https://github.com/localstack/localstack/pull/9574
* Add AWS::StepFunctions::* resource provider for CloudFormation by Morijarti in https://github.com/localstack/localstack/pull/9491
* s3: add regex transformer for different regions by sannya-singal in https://github.com/localstack/localstack/pull/9580
* limit botocore to < 1.31.81 by alexrashed in https://github.com/localstack/localstack/pull/9586
* remove duplicate on_extension_load call by thrau in https://github.com/localstack/localstack/pull/9590
* apigateway-kinesis: add region and account id params by sannya-singal in https://github.com/localstack/localstack/pull/9595
* Bump moto-ext to 4.2.7.post1 by viren-nadkarni in https://github.com/localstack/localstack/pull/9596
* fix S3 v3 VirtualHost removing trailing slash by bentsku in https://github.com/localstack/localstack/pull/9604
* Remove fallback account ID and region for core ARN builder by viren-nadkarni in https://github.com/localstack/localstack/pull/9528
* fix S3 parser with empty integer query string parameters by bentsku in https://github.com/localstack/localstack/pull/9603
* update api-dependencies and check cloudwatch/logs enabled by steffyP in https://github.com/localstack/localstack/pull/9576
* fix SQS JSON leftovers by bentsku in https://github.com/localstack/localstack/pull/9607
* Enable scaffolding of pro providers by simonrw in https://github.com/localstack/localstack/pull/9601
* fix S3 List* pagination CommonPrefixes by bentsku in https://github.com/localstack/localstack/pull/9608
* Remove legacy internal call detection helper by viren-nadkarni in https://github.com/localstack/localstack/pull/9616
* refresh sqs snapshots and fix exceptions in serializer by bentsku in https://github.com/localstack/localstack/pull/9627
* add services to API_DEPENDENCIES by bentsku in https://github.com/localstack/localstack/pull/9621
* remove mount for persistence plugin by giograno in https://github.com/localstack/localstack/pull/9588
* Remove deprecated networking config helpers by simonrw in https://github.com/localstack/localstack/pull/9600
* fix SQS json requests sent to query route by bentsku in https://github.com/localstack/localstack/pull/9634
* fix S3 pre-signed logic for IGNORED_SIGV4_HEADERS by bentsku in https://github.com/localstack/localstack/pull/9609
* Fix edge port usages by joe4dev in https://github.com/localstack/localstack/pull/9633
* Remove edge port config by joe4dev in https://github.com/localstack/localstack/pull/9636
* Properly parse error message for container host port open detection by dfangl in https://github.com/localstack/localstack/pull/9630
* Publish stable version on non-dev versioning by mormamn in https://github.com/localstack/localstack/pull/9613
* fix: allow CopySourceRange to be empty on s3.upload_part_copy by matt-mercer in https://github.com/localstack/localstack/pull/9635
* Pass context attributes to forward URL getter by viren-nadkarni in https://github.com/localstack/localstack/pull/9640
* fix change_message_visibility behaviour for expired handles by baermat in https://github.com/localstack/localstack/pull/9632
* Add subdomains to service url helpers by joe4dev in https://github.com/localstack/localstack/pull/9646
* fix S3 timestamp precision by bentsku in https://github.com/localstack/localstack/pull/9643
* Update remaining host matching for localhost.localstack.cloud by simonrw in https://github.com/localstack/localstack/pull/9642
* Organize config list by joe4dev in https://github.com/localstack/localstack/pull/9654
* fix test_s3_timestamp_precision by bentsku in https://github.com/localstack/localstack/pull/9656
New Contributors
* ahamilton55 made their first contribution in https://github.com/localstack/localstack/pull/9244
* raiatul14 made their first contribution in https://github.com/localstack/localstack/pull/9328
* evan-hines-js made their first contribution in https://github.com/localstack/localstack/pull/8372
* bery made their first contribution in https://github.com/localstack/localstack/pull/9466
* GREsau made their first contribution in https://github.com/localstack/localstack/pull/9555
* webdev51 made their first contribution in https://github.com/localstack/localstack/pull/9592
* mormamn made their first contribution in https://github.com/localstack/localstack/pull/9613
**Full Changelog**: https://github.com/localstack/localstack/compare/v2.3.0...v3.0.0