Skip to content

Releases: localstack/localstack

v4.12.0

11 Dec 17:26

Choose a tag to compare

Summary

LocalStack 4.12 is now available! This release introduces Lambda Managed Instances, enhanced Step Functions unit testing capabilities, expanded Glue API support with user-defined functions and column statistics, and Network Load Balancer TCP listener emulation. Additional enhancements include EventBridge Pipes input transformation, Application Load Balancer HTTPS targets, improved IAM policy simulation, and updates across S3 Tables, CloudWatch Logs, and multiple AWS services.

AWS Features

Enhancements

  • Upgraded the kinesis-mock version from 0.5.1 to 0.5.2.
  • Added support in CloudFormation v2 for List<AWS::EC2::SubnetId> template parameters.
  • Added support for additional RSA key lengths and several EC key types in ACM certificates.
  • Added support for the EU LocationConstraint in the S3 CreateBucket operation.
  • Added support for Airflow 3.0.6 in Managed Workflows for Apache Airflow (MWAA) provider. (🌟 ultimate)
  • Added support for the GetInstanceUefiData API in the EC2 provider. (🌟 base)
  • Implemented support for specifying Tags during the S3 CreateBucket operation, and added support for the TagCount field in HeadObject responses.
  • Added configurable wait-time controls for CloudFormation resource polling (CFN_NO_WAIT_ITERATIONS) and reduced default sleep intervals, meaning that deploy times for large stacks should be reduced.
  • Added configuration options to customise the Libvirt network (EC2_LIBVIRT_NETWORK) and storage pool (EC2_LIBVIRT_POOL) used by EC2, instead of assuming the default names. (🌟 enterprise)
  • Cognito now supports enforcing HTTPS in OAuth and federated login flows by honouring USE_SSL=1, ensuring all generated authentication URLs use https://. (🌟 base)
  • Added support for ECS Managed EC2 Instances capacity providers, including CRUD operations, improved status responses, and validation during task execution. (🌟 base)
  • Added support for the following S3 Control tagging operations for S3 buckets:
  • Added support for the ListLogGroups operation in CloudWatch Logs.
  • EventBridge Pipes now supports input transformation for enrichment, including proper handling of JSON arrays and quote stripping for plain text templates. (🌟 ultimate)
  • Application Load Balancers now support HTTPS targets in target groups, with the load balancer skipping SSL verification for HTTPS targets, matching AWS behavior where self-signed certificates are accepted. (🌟 base)
  • Improved the IAM SimulatePrincipalPolicy operation to use the IAM Enforcement Engine, providing more accurate policy evaluation decisions. Support for roles and groups as principals has been added. (🌟 base)
  • Network Load Balancers now support TCP listener emulation, enabling basic NLB functionality for local testing. A new proxy manager handles the creation and lifecycle of TCP proxies for NLB listeners. (🌟 base)
  • LocalStack’s S3 Tables provider now includes the following enhancements: (🌟 ultimate)
    • Added support for the ListTagsForResource API.
    • Added support for encryption configuration APIs at both bucket and table levels. Actual encryption enforcement is not yet implemented.
  • Added support for managing user-defined functions in Glue with the following APIs: (🌟 ultimate)
  • Added support for managing column statistics for tables in Glue with the following APIs: (🌟 ultimate)

What's Changed

Exciting New Features 🎉

Other Changes

Read more

v4.11.1

27 Nov 15:19

Choose a tag to compare

What's Changed

Other Changes

Full Changelog: v4.11.0...v4.11.1

v4.11.0

27 Nov 15:17

Choose a tag to compare

New Lambda Runtime Support

LocalStack for AWS 4.11 includes several Lambda runtime updates including:

  • Python 3.14
  • Java 25
  • Node.js 24

You can learn more about deploying Lambdas to LocalStack in our documentation and more about Lambda supported runtimes in the AWS documentation.

Improved KMS Support

AWS Key Management Service (KMS allows you to easily create, control, and manage the cryptographic keys used to encrypt and protect your data across your applications and AWS resources. LocalStack for AWS 4.11 adds to our already extensive KMS coverage by adding support for a recipient in KMS decrypt and on-demand key rotation for external keys.

KMS Decrypt Recipient

LocalStack for AWS 4.11 now supports the KMS Decrypt Recipient field is used by AWS Nitro Enclaves to decrypt sensitive keys without the host being able to read them. You can read more about this flow in the KMS Decrypt documentation.

KMS On-demand Key Rotation

KMS: On Demand Key Rotation for Imported Key Material
Earlier this year, AWS made it possible to import custom key material into external keys thereby allowing use of KeyRotationOnDemand with external KMS keys. This capability is now also supported in LocalStack for AWS as of 4.11.

Expanded API Support for MSK, S3 Tables and CodePipeline

At LocalStack, we are always striving to expand our AWS API coverage to ensure our customers can accurately test their complete end-to-end workflow. LocalStack for AWS 4.11 continues this effort with expanded API support for a number of services.

MSK

Tagging resources in Amazon Managed Streaming for Apache Kafka (MSK) is a powerful and simple way to manage, organize, and control access to your resources. LocalStack for AWS 4.11 inclues support for tagging MSK Resources.

API operations that were added include:

For details on using MSK within LocalStack as well as full API coverage details, visit our MSK documentation.

S3 Tables

Amazon S3 Tables provide support APIs that allow users to configure, monitor, and control the management and performance of individual tables. As of LocalStack for AWS 4.11, we support the following S3 Tables support APIs:

Note that the APIs accept, validate, store, and return maintenance configurations, but the actual maintenance operations (file removal, compaction, snapshot management) are not actively executed.

For more details on using S3 Tables in LocalStack, check our S3 Tables documentation.

CodePipeline

Our team at LocalStack regularly monitors API usage to help identify gaps in API coverage for actively requested APIs. One such missing operation recently identified by our team was the GetPipelineState operation in CodePipeline used to retrieve the state of a pipeline, including the stages and actions. LocalStack for AWS 4.11 resolves this API coverage gap.

For information about how to use CodePipeline within LocalStack, including full API coverage details, visit our CodePipeline documentation.

RDS Support for pgvector

LocalStack continues to improve upon its capabilities in building and testing artificial intelligence (AI) and machine learning (ML) applications. AWS previously announced support for the pgvector extension for Amazon Relational Database Service (RDS) for PostgreSQL. This extension is used to store embeddings from ML models in order to more efficiently perform similarity searches. With LocalStack for AWS 4.11, the pgvector extension is now installed by default when installing a version of Postgres allowing improved emulation of ML workloads.

Enhanced EKS Persistence

Persistence on LocalStack allows you to save and even share the state of your LocalStack instance. This can enable quick and easy setup of complex environments across sessions, between team members or in CI/CD. However, until LocalStack for AWS 4.11, EKS (Elastic Kubernetes Service) persistence was limited as it did not persist the contents of the cluster.

LocalStack for AWS 4.11 has added the ability to persist the state and contents of your emulated EKS clusters between restarts, enabling faster iteration and more realistic local testing of Kubernetes workloads.

By default, cluster contents are not persisted. You can enable saving/loading your Kubernetes resources by starting LocalStack with EKS_PERSIST_CLUSTER_CONTENTS=1. The persistence capability uses Velero under the hood, and we've also exposed EKS_VELERO_IMAGE and EKS_VELERO_PLUGIN_AWS_IMAGE to allow further customization of the Velero image and the AWS plugin image.

Miscellaneous

  • Fixed an issue where the public IP address of EC2 instances started in K8S environment would not resolve to the instances pod.
  • Fixed the Kafka cluster version in the MSK ListClusters and DescribeCluster APIs.
  • Fixed an issue where the pod would not be removed when deleting the cluster or stopping LocalStack when running Redis/Valkey container in K8s environment.
  • Fixed an issue reported that caused a GraphQL schema error in AppSync when defining AWSDateTime or AWSTimestamp scalars.

Deprecations

  • Starting LocalStack in host mode via the CLI using localstack start --host has been deprecated and is expected to be removed in January 2026. Users of this features are advised to use the default Docker mode instead.

What's Changed

Exciting New Features 🎉

Other Changes

Read more

v4.10.0

30 Oct 18:15

Choose a tag to compare

Summary

LocalStack 4.10 introduces S3 Tables with Apache Iceberg support and major EKS enhancements, including IRSA, Pod Identity, and automatic endpoint injection. The release expands AWS parity across DynamoDB, EventBridge Pipes, ECS FireLens, SESv2, and IAM, while modernising the stack by dropping Python 3.9 and removing legacy providers.

AWS Features

  • LocalStack now supports S3 Tables with full Apache Iceberg REST API support, enabling management of tabular data stored in S3. Refer to our documentation to learn more. (🌟 ultimate)

Enhancements

  • Added support for Python 3.14 in the LocalStack CLI.
  • Added support for the aws:RequestedRegion and aws:PrincipalArn condition variables in IAM.
  • Added support for inline templating in SESv2 SendEmail and SendBulkEmail operations. (🌟 base)
  • Implemented support for the DescribeContributorInsights API in DynamoDB, enabling retrieval of contributor insights details for tables.
  • Added support for wildcards in EventBridge Pipes input transformations, enabling patterns like <$.body[*]> for improved template flexibility. (🌟 ultimate)
  • Added validation for EventBridge Pipes input templates, ensuring malformed or empty templates are handled consistently with AWS behavior. (🌟 ultimate)
  • Enabled ECS FireLens support for custom configurations, allowing Fluent Bit config files to be loaded from S3 or bundled directly into container images. (🌟 ultimate)
  • Added support for the DynamoDB WarmThroughput parameters, improving parity with AWS.
  • LocalStack’s EKS provider now includes the following enhancements: (🌟 ultimate)
    • Added support for IAM Roles for Service Accounts (IRSA), allowing EKS pods to automatically assume IAM roles and retrieve AWS credentials through the standard SDK credential chain.
    • Added support for EKS Pod Identity, including the CreatePodIdentityAssociation API and a mock implementation of the EKS Auth service, improving compatibility with the latest AWS authentication model.
    • Introduced automatic injection of endpoint URLs (AWS_ENDPOINT_URL and AWS_ENDPOINT_URL_S3) into EKS pods via the existing credential webhook, ensuring SDKs connect directly to LocalStack without manual configuration.
    • Improved EKS cluster access management to fully respect the bootstrapClusterCreatorAdminPermissions flag and automatically create default access entries for the EKS service role.

Deprecations

  • Dropped Python 3.9 support, raising the minimum supported version to 3.10.
  • Removed the legacy Batch provider, following the newer provider, which is now the default. (🌟 ultimate)
  • Removed support for Kinesis Data Analytics for SQL Applications service, ahead of AWS's sunset date of 2026-01-27.
  • Removed support for Managed Service for Apache Flink (MSF) 'legacy' provider. Users should migrate to the new emulated provider, which has been the default since v4.1.0. (🌟 ultimate)

What's Changed

Exciting New Features 🎉

Other Changes

Read more

v4.9.2

06 Oct 09:01

Choose a tag to compare

Release version 4.9.2

v4.9.1

03 Oct 12:33

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v4.9.0...v4.9.1

v4.9.0

02 Oct 08:29

Choose a tag to compare

Summary

This release focuses on reinforcing the underlying foundations of the project while enhancing both performance and security that improve alignment with AWS support while ensuring our software has the safety and reliability our users expect.

This release includes updates to several resources that underpin LocalStack for AWS services, including DynamoDB Local, Hadoop, Apache Spark, Glue, k3d, Postgres, Apache ActiveMQ, Python, and Debian Trixie. We’ve also added support for new versions of OpenSearch, new merge strategies for Cloud Pods, CRUD support for EKS access entries, and multi-protocol support for CloudWatch’s additional protocols.

AWS Features

  • LocalStack for AWS 4.9 adds support for new versions of OpenSearch and updates the default version to align with AWS support. The new supported versions for OpenSearch are 2.15, 2.17, 2.19 and 3.1. The new default version for OpenSearch domains (if no version is set) is now 3.1.
  • LocalStack for AWS 4.9 adds CRUD support of EKS access entries and access policies. The new supported APIs include:
    • AssociateAccessPolicy
    • CreateAccessEntry
    • DeleteAccessEntry
    • DescribeAccessEntry
    • DisassociateAccessPolicy
    • ListAccessEntries
    • ListAccessPolicies
    • ListAssociatedAccessPolicies
    • UpdateAccessEntry
  • The emulator is ready with multi-protocol support for the CloudWatch service in order to align with these upcoming changes to the CloudWatch service.

Enhancements

  • Implement ListTags, TagResource and UntagResource API support for Backup Vaults and Backup Plans, which are the only resources we support that would support tagging.
  • Remove unused Terraform package installer at localstack-core/localstack/packages/terraform.py. If you were using this package installer, please instead refer to our terraform-init extension.

Deprecations

  • PostgreSQL 11 Support Removed: LocalStack for AWS 4.9 drops support for installing PostgreSQL 11. All services that previously used PostgreSQL 11 — including RDS, Redshift, and Timestream — now default to PostgreSQL 12. If you rely on PostgreSQL 11 in previous versions, ensure compatibility before upgrading.
  • Debian Trixie / Python 3.13 Upgrade: Starting with LocalStack for AWS 4.9, the base image has been upgraded from Debian Bookworm / Python 3.11 to Debian Trixie / Python 3.13. This may impact custom extensions, init scripts, or packages that rely on specific OS packages or Python 3.11.
  • Reinitialization Required for Existing Extensions: Due to the base image and Python upgrade, older volumes with installed extensions (using localstack extension init) may not be detected. Users will need to reinitialize and reinstall these extensions after upgrading.

What's Changed

Exciting New Features 🎉

Enhancements

Other Changes

New Contributors

Full Changelog: v4.8.1...v4.9.0

v4.8.1

17 Sep 09:36

Choose a tag to compare

What's Changed

Other Changes

Full Changelog: v4.8.0...v4.8.1

v4.8.0

11 Sep 18:49

Choose a tag to compare

Summary

LocalStack v4.8 brings one-click Lambda debugging with the AWS Toolkit for VS Code, a new CloudFormation engine, and an ECS-based Batch provider. The release also adds Kubernetes support for Redis, Route 53 → S3 website routing, and several enhancements to other AWS services like RDS Data, CloudFront, EKS, SQS, and CodeBuild, alongside major upgrades to the LocalStack Toolkit for VS Code.

AWS Features

  • LocalStack integrates with the AWS Toolkit for VS Code, enabling one-click remote debugging of Lambda functions. You can set breakpoints, step through code, and inspect variables directly in your IDE. Debugger instrumentation is now automatic for Python, Node.js, and Java runtimes, eliminating the need for manual setup or boilerplate code. Check out our blog for more information.
  • LocalStack introduces a new CloudFormation engine with improved parity for UPDATE operations and closer alignment with AWS. The legacy engine remains available (PROVIDER_OVERRIDE_CLOUDFORMATION=engine-legacy) for backwards compatibility, but all new features and fixes will target the new engine. Learn more in the documentation.
  • LocalStack now ships with a new Batch provider built on top of the ECS runtime, replacing the previous custom implementation. Kubernetes execution is available via ECS_TASK_EXECUTOR=kubernetes. The legacy provider can still be used with PROVIDER_OVERRIDE_BATCH=legacy. Learn more in the documentation. (🌟 ultimate)

Enhancements

  • LocalStack now supports running Redis in ElastiCache & MemoryDB as Kubernetes pods, providing consistent behaviour across local and cluster environments and removing the need for separate Docker-based execution. Enable it by setting REDIS_CONTAINER_MODE=1 and CONTAINER_RUNTIME=kubernetes. (🌟 enterprise)
  • LocalStack now offers CRUD support for EKS Addons. The following API calls are now supported: (🌟 ultimate)
  • LocalStack now supports routing Route 53 domains to S3 static website endpoints, enabling custom domains to resolve directly to S3-hosted websites and improving parity with AWS. (🌟 base)
  • LocalStack's RDS Data provider now includes the following enhancements: (🌟 base)
    • Added support for oid type in Postgres via the RDS Data API.
    • Added support for array types in Postgres via the RDS Data API, with fixes for array handling in Redshift Data.
    • Added support for returning numberOfRecordsUpdated in Postgres databases, improving parity with AWS responses.
  • LocalStack's CloudFront provider now includes the following enhancements: (🌟 base)
    • Improved parity for header propagation in Lambda@Edge.
    • Improved parity by propagating status code changes for request event types (viewer-request, origin-request) in Lambda@Edge.
    • Proper handling of 3XX redirects for request events, ensuring responses like 302 are correctly propagated in Lambda@Edge.
    • CustomOriginConfig.HTTPPort and CustomOriginConfig.HTTPSPort are now properly set, ensuring requests correctly use configured custom ports instead of defaulting to port 80/443, with fallbacks to LocalStack’s edge port (4566) when necessary.
  • Enhanced Lambda hot-reload to return file:// URIs for code locations instead of arbitrary strings, making them easier to parse and understand.
  • Support for custom SSM Documents with SendCommand is now available, including parameter substitution. Only the aws:runShellScript plugin is supported. (🌟 base)
  • Implemented FIS action aws:ecs:stop-task, enabling fault injection experiments to stop running ECS tasks. (🌟 ultimate)
  • Enabled API Gateway VPC endpoint routing, allowing API invocation via .vpce.execute-api URLs using the x-apigw-api-id header.
  • SNS now supports passing MessageGroupId to non-FIFO topics, aligning with SQS Fair Queues behavior and ensuring the attribute is propagated correctly to SQS messages.
  • Implemented SES SetIdentityHeadersInNotificationsEnabled API, enabling configuration of header inclusion in bounce, complaint, and delivery notifications.
  • Added support for Lambda Function URLs with ResponseStream invoke mode, enabling streaming responses via the InvokeMode parameter.
  • Added Java 24 support in the Trino installer, enabling upgrades from Trino 389 to 476 and improving module installation command generation. (🌟 ultimate)
  • Increased SQS message and batch size limit to 1 MiB, matching the recent AWS update.
  • Added support for EFS DeleteFileSystemPolicy operation. (🌟 ultimate)
  • Added support in CodePipeline for the CODEBUILD_RESOLVED_SOURCE_VERSION environment variable, ensuring CodeBuild actions receive the correct commit ID or S3 version ID for the source. (🌟 ultimate)
  • Added support for Iceberg table metadata format v2 and s3a:// filesystem support in Hive, improving compatibility with Iceberg tables created using the iceberg-go SDK. (🌟 ultimate)
  • Added Kubernetes owner references to Glue pods, enabling proper cleanup of child containers when the LocalStack pod is terminated. (🌟 enterprise)
  • Added support in CodeBuild for resolving environment variables from Secrets Manager and SSM Parameter Store using ARNs, in addition to names. (🌟 base)
  • Added tagging support for the CodeConnections service, enabling resource tag operations. (🌟 base)
  • Improved EKS CloudFormation support for AWS::EKS::FargateProfile with idempotency handling, improved parameter validation, and proper support for profiles created without subnets. (🌟 ultimate)
  • Updated DNS handling to allow checkip.amazonaws.com to resolve upstream by default by adding it to DEFAULT_SKIP_PATTERNS.
  • The Traefik ingress controller and k3d load balancer are no longer started automatically when creating an EKS cluster. Set EKS_START_K3D_LB_INGRESS=1 to restore the previous behavior. (🌟 ultimate)

LocalStack Features

  • The LocalStack Toolkit for VS Code now features a guided setup wizard, status bar integra...
Read more

v4.7.0

31 Jul 10:39

Choose a tag to compare

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](https://docs.localstack.cloud/aws/se...
Read more