Skip to content

LocalStack

v4.7.0 Breaking

This release includes 2 breaking changes for platform teams planning a safe upgrade.

Published 10mo Cloud Management
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

aws cloud ci-cd developer-tools localstack python
+1 more
testing

Summary

AI summary

Native Organizations support, Valkey engine for ElastiCache/MemoryDB, and AppSync Events API for real‑time WebSocket subscriptions are introduced.

Full changelog

Summary

LocalStack 4.7 is now available! This release introduces native Organizations support for multi-account setups, Valkey engine support as a Redis alternative in ElastiCache/MemoryDB, AppSync Events API for real-time WebSocket subscriptions, and significant enhancements across CodeBuild, CloudTrail, EKS, and DynamoDB providers with improved AWS parity throughout.

AWS Features

  • LocalStack now supports the Valkey engine as an alternative to Redis in ElastiCache (🌟 base) and MemoryDB (🌟 ultimate). To enable Valkey, you need to use the REDIS_CONTAINER_MODE=1 configuration variable while starting the LocalStack container.
  • LocalStack now includes a native Organizations provider, replacing the legacy Moto-based implementation. This new provider introduces improved AWS parity and expands support for managing multi-account and multi-organization setups in a local environment. (🌟 ultimate)
  • LocalStack now supports the AppSync Events API for real-time event subscriptions, featuring channel namespaces, API Key/IAM authentication, and Direct Lambda integration. It provides both domain-based and path-based endpoints for local development, as well as HTTP interfaces for backend event publishing. (🌟 ultimate)

Enhancements

  • Kinesis provider has been upgraded to use kinesis-mock version 0.4.13.
  • DynamoDB provider has been upgraded to use DynamoDB Local 3.0.0.
  • Hive version 3.1.3 is now the default for Big Data services, such as EMR, Glue, and Athena. (🌟 ultimate)
  • CodeBuild provider now includes the following enhancements: (🌟 base)
    • CodeBuild now assumes the configured IAM service role during builds, enabling use of AWS CLI commands without manual credential setup.
    • Additionally, CodeBuild automatically sets environment variables for region, and endpoint URL into the build container. The endpoint URL is configured to point to the LocalStack container, allowing jobs to access other emulated AWS services.
  • CloudTrail provider now includes the following enhancements: (🌟 ultimate)
    • CloudTrail now delivers log delivery notifications to SNS after logs are written to S3.
    • CloudTrail events now contain the populated requestParameters and responseElements fields for most events.
  • EKS provider now includes the following enhancements: (🌟 ultimate)
    • Support for k8s version 1.33 is now available. The default version also changed to 1.33
    • EKS Load Balancer Controller with target-mode set to ip is now supported.
    • Support for DescribeClusterVersions API for improved compatibility with IaC tooling.
  • Support for the cognito-identity.amazonaws.com:sub IAM policy variable has been added. (🌟 base)
  • Role ARN and session name parameters are now validated in STS operations.
  • The UpdateKinesisStreamingDestination API is now supported in DynamoDB.
  • Proper validation errors are now returned for malformed AVP policies instead of internal server errors. (🌟 ultimate)
  • The GetTokensFromRefreshToken API is now supported in Cognito. (🌟 base)
  • The RSA_AES_KEY_WRAP_SHA_256 algorithm is now supported in the KMS ImportKeyMaterial API.
  • Route53 provider now correctly maps FQDNs with trailing dots for ELB routing.
  • Proper error responses are now returned for Lambda functions with invalid S3 code locations.
  • The DeploymentCanarySettings property is now supported for AWS::ApiGateway::Deployment resources.
  • Multiple VPCs are now supported for AWS::Route53::HostedZone during initial creation.
  • MySQL RDS containers now run as non-root by default, with support for configurable user and group IDs via RDS_CONTAINER_USER_GROUP_ID environment variable (default: 1000:1000). (🌟 base)
  • Improved parity for EFS AccessPoint API with enhanced validation and error handling. (🌟 ultimate)
  • The ipAddressType field is now supported in API Gateway REST & HTTP APIs, where the field can be set to ipv4 or dualstack, via the CreateRestApi, and CreateApi APIs.
  • Updates to the AWS::SNS::Topic resource are now supported, including support for changes to DisplayName, TopicName, and Tags properties.
  • DomainProcessingStatus is now returned and user-provided values are preserved when creating Elasticsearch domains via the CreateElasticsearchDomain API.
  • The Name and OpenTableFormatInput parameters are now supported in the Glue CreateTable API, and TableInput is treated as optional in parity with AWS behaviour. (🌟 ultimate)
  • Improved support for non-default account IDs in API Gateway v2, AppSync, CodePipeline, Cognito, ELBv2, IoT, and Route53.
  • Improved appsync-utils JS package management. The library will now stay up to date by default. It was previously required to use APPSYNC_JS_LIBS_VERSION=refresh to update the library. (🌟 ultimate)

Deprecations

  • MWAA support for Airflow versions v2.4.3, v2.5.1, and v2.6.3 is deprecated and will be retired after December 30, 2025. (🌟 ultimate)
  • APPSYNC_JS_LIBS_VERSION=latest and APPSYNC_JS_LIBS_VERSION=refresh are no longer supported. Use a tagged version or commit from appsync-utils instead. Or leave empty to stay up to date. (🌟 ultimate)
  • Lambda Debug Mode (Preview) has moved from the localstack/localstack image to the localstack/localstack-pro image. This change requires users to use the localstack/localstack-pro image with an authenticated account instead. You can register for free at https://app.localstack.cloud/sign-up
  • EKS state created in version 4.6 or earlier using Cloud Pods or standard persistence will not be compatible with the EKS provider in version 4.7. Recreating the EKS state is necessary for compatibility. (🌟 ultimate)

What's Changed

Exciting New Features 🎉

  • CFn: implement language extensions transform by @simonrw in https://github.com/localstack/localstack/pull/12813
  • Rename master to main, localstack-ext to localstack-pro by @dfangl in https://github.com/localstack/localstack/pull/12847
  • LDM as provisioner of debug-enabled containers by @MEPalma in https://github.com/localstack/localstack/pull/12851
  • Step Functions: variable-reference parsing to skip string and regex literals by @MEPalma in https://github.com/localstack/localstack/pull/12891
  • add implementation of DeleteChangeSet for CFnV2 by @pinzon in https://github.com/localstack/localstack/pull/12876
  • feat: add the pro activation to the tracked environment variables by @kittylon in https://github.com/localstack/localstack/pull/12902
  • handle unsupported resources in CFn v2 by @pinzon in https://github.com/localstack/localstack/pull/12905
  • CFNv2: minor parity assessment and triaging by @simonrw in https://github.com/localstack/localstack/pull/12871
  • DynamoDB: Implement UpdateKinesisStreamingDestination by @viren-nadkarni in https://github.com/localstack/localstack/pull/12897
  • KMS: Add support for RSA_AES_KEY_WRAP_SHA_256 in import key material by @sannya-singal in https://github.com/localstack/localstack/pull/12888
  • LDM Migration by @MEPalma in https://github.com/localstack/localstack/pull/12852

Other Changes

  • Update Extension API by @bentsku in https://github.com/localstack/localstack/pull/12805
  • Update action names for AWS prefix by @alexrashed in https://github.com/localstack/localstack/pull/12832
  • fix delete method of AWS::SNS::TopicPolicy CFn resource by @thrau in https://github.com/localstack/localstack/pull/12831
  • CI: archive raw metrics by @k-a-il in https://github.com/localstack/localstack/pull/12837
  • Update version in README by @alexrashed in https://github.com/localstack/localstack/pull/12838
  • Sns topic update functionality by @michalisfot in https://github.com/localstack/localstack/pull/12777
  • CI: put parity metrics to separate artifact by @k-a-il in https://github.com/localstack/localstack/pull/12839
  • S3: fix Checksum behavior for GetObject with PartNumber by @bentsku in https://github.com/localstack/localstack/pull/12842
  • S3: fix Access-Control-Allow-Headers handling in S3 CORS by @bentsku in https://github.com/localstack/localstack/pull/12841
  • Es/fix Terraform domain deploy by @cloutierMat in https://github.com/localstack/localstack/pull/12843
  • Docker: Add 'log_handler'-argument to pull() by @bblommers in https://github.com/localstack/localstack/pull/12848
  • update social shield by @alexrashed in https://github.com/localstack/localstack/pull/12856
  • S3: fix CORS handler + GZIP handling by @bentsku in https://github.com/localstack/localstack/pull/12855
  • Increase AWS CLI lower bound version to shorten resolution time by @silv-io in https://github.com/localstack/localstack/pull/12857
  • Update CODEOWNERS by @localstack-bot in https://github.com/localstack/localstack/pull/12860
  • [Testing] Update test durations by @localstack-bot in https://github.com/localstack/localstack/pull/12858
  • fix: correct recognition of lambda path by @thetric in https://github.com/localstack/localstack/pull/12629
  • Add tag push trigger to main workflow by @silv-io in https://github.com/localstack/localstack/pull/12829
  • APIGW: add support for new endpoint configuration by @ArthurAkh in https://github.com/localstack/localstack/pull/12826
  • APIGW: update CFN related snapshots by @bentsku in https://github.com/localstack/localstack/pull/12866
  • Pin aws cli version instead of having a lower bound by @silv-io in https://github.com/localstack/localstack/pull/12867
  • cleanup missed references to old naming by @alexrashed in https://github.com/localstack/localstack/pull/12869
  • add ELB service principal by @bentsku in https://github.com/localstack/localstack/pull/12872
  • Handle file not found case for chmod_r utility by @dfangl in https://github.com/localstack/localstack/pull/12861
  • KMS #12530: Error handling for invalid blob issue by @pbansal2 in https://github.com/localstack/localstack/pull/12809
  • DynamoDB: skip failing test test_more_than_20_global_secondary_indexes by @k-a-il in https://github.com/localstack/localstack/pull/12874
  • update kinesis-mock from 0.4.12 to 0.4.13 by @alexrashed in https://github.com/localstack/localstack/pull/12878
  • add IoT and AppSync ServicePrincipal by @bentsku in https://github.com/localstack/localstack/pull/12884
  • DynamoDB: Bump DDB Local to v3 by @giograno in https://github.com/localstack/localstack/pull/12879
  • Lambda: Proper error handling for code in S3 by @dfangl in https://github.com/localstack/localstack/pull/12883
  • Add proper validation for STS role arn and session name parameters by @dfangl in https://github.com/localstack/localstack/pull/12885
  • add python project section to CODEOWNERS by @alexrashed in https://github.com/localstack/localstack/pull/12887
  • SSM: add dependency on secretsmanager used by GetParameter by @dmacvicar in https://github.com/localstack/localstack/pull/12896
  • CFn: correctly set physical resource id for VpnGatewayAttachment by @simonrw in https://github.com/localstack/localstack/pull/12870
  • CFNv2: support validation of CAPABILITY_AUTO_EXPAND by @simonrw in https://github.com/localstack/localstack/pull/12864
  • APIGW: support DeploymentCanarySettings for AWS::ApiGateway::Deployment by @bentsku in https://github.com/localstack/localstack/pull/12899
  • S3: fix Expires header behavior by @bentsku in https://github.com/localstack/localstack/pull/12894
  • DynamoDB: fix persistence on manual save by @giograno in https://github.com/localstack/localstack/pull/12882
  • Ignore all type errors from mypy when debugpy is installed by @simonrw in https://github.com/localstack/localstack/pull/12893
  • CFNv2: Implement get_template by @simonrw in https://github.com/localstack/localstack/pull/12865
  • CFnV2: add stack events when there are errors during preprocessing by @simonrw in https://github.com/localstack/localstack/pull/12892
  • CFNv2: Support the list parameter type by @simonrw in https://github.com/localstack/localstack/pull/12904
  • CFnV2: implement list-stacks by @simonrw in https://github.com/localstack/localstack/pull/12903
  • bug fix: add missing proxies to the http request for the GitHub Installer by @plafond in https://github.com/localstack/localstack/pull/12900
  • Update CODEOWNERS by @localstack-bot in https://github.com/localstack/localstack/pull/12917
  • [Testing] Update test durations by @localstack-bot in https://github.com/localstack/localstack/pull/12915
  • remove thrau from CODEOWNERS codeowners by @thrau in https://github.com/localstack/localstack/pull/12918
  • fix coveralls upload by @alexrashed in https://github.com/localstack/localstack/pull/12923
  • CFNv2: Support stack sets by @simonrw in https://github.com/localstack/localstack/pull/12909
  • avoid coverage reporting when only executing test subset by @alexrashed in https://github.com/localstack/localstack/pull/12924
  • CFNv2: implement describe-stack-resource by @simonrw in https://github.com/localstack/localstack/pull/12912
  • pre-commit: validate json files on commit by @simonrw in https://github.com/localstack/localstack/pull/12925
  • Introduce jsonpickle serialization backend by @giograno in https://github.com/localstack/localstack/pull/12875
  • remove copy-pasta in parity testing guide by @alexrashed in https://github.com/localstack/localstack/pull/12929
  • KMS: return NotImplementedError for rotation of imported keys by @sannya-singal in https://github.com/localstack/localstack/pull/12932
  • SQS: Allow usage of message-group-id param when using a Fair Queue by @nik-localstack in https://github.com/localstack/localstack/pull/12930

New Contributors

  • @michalisfot made their first contribution in https://github.com/localstack/localstack/pull/12777
  • @thetric made their first contribution in https://github.com/localstack/localstack/pull/12629
  • @pbansal2 made their first contribution in https://github.com/localstack/localstack/pull/12809
  • @dmacvicar made their first contribution in https://github.com/localstack/localstack/pull/12896
  • @kittylon made their first contribution in https://github.com/localstack/localstack/pull/12902
  • @plafond made their first contribution in https://github.com/localstack/localstack/pull/12900

Full Changelog: https://github.com/localstack/localstack/compare/v4.6.0...v4.7.0

Breaking Changes

  • Lambda Debug Mode (Preview) moved from `localstack/localstack` to the paid `localstack/localstack-pro` image, requiring authentication.
  • EKS state created in v4.6 or earlier is incompatible with EKS provider in v4.7; recreation of EKS state is required.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track LocalStack

Get notified when new releases ship.

Sign up free

About LocalStack

LocalStack is a fully functional local AWS cloud stack. This includes Lambda for serverless computation.

All releases →

Related context

Beta — feedback welcome: [email protected]