| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-02-26 | 17.3 kB | |
| v4.14.0 source code.tar.gz | 2026-02-26 | 11.0 MB | |
| v4.14.0 source code.zip | 2026-02-26 | 13.0 MB | |
| Totals: 3 Items | 24.0 MB | 0 | |
Summary
LocalStack for AWS 4.14 introduces a new Resource Groups Tagging API provider with native integrations across EC2, KMS, S3, Lambda, Route 53, SNS, SQS, OpenSearch, and Elastic Beanstalk. This release adds KRaft cluster support for Amazon MSK, switches Hive to use Glue as its default metastore, and integrates EKS nodes with the Instance Metadata Service (IMDS). Additional improvements include CloudFormation DeletionPolicy and UpdateReplacePolicy support, Step Functions testing enhancements, and parity updates across S3, Route 53, ECS, ElastiCache, and RDS.
AWS Features
- LocalStack now includes a new Resource Groups Tagging API provider as the default for licensed users. This provider offers native tagging integrations with EC2, KMS, S3, Lambda, Route 53, SNS, SQS, OpenSearch, and Elastic Beanstalk, replacing the previous Moto-based fallback implementation. (🌟 base)
- LocalStack now supports KRaft-based clusters in Amazon Managed Streaming for Apache Kafka (MSK). KRaft is Kafka's built-in consensus protocol that eliminates the need for ZooKeeper, simplifying cluster operations. This release also introduces support for running multiple Kafka brokers per cluster. (🌟 ultimate)
- LocalStack for AWS 4.14 switches Hive to use Glue as its metastore by default, providing tighter integration between Glue, Athena, and Hive. Key improvements include native
s3://location support, multi-region database support between Glue and Athena, enhanced JDBC crawler support, and improved partitioning support in Glue crawlers. (🌟 ultimate) - EKS nodes from managed nodegroups now register with the Instance Metadata Service (IMDS) after creation, enabling pods to introspect their networking configuration. This is required for tools like the AWS Load Balancer Controller that interact directly with IMDS to fetch networking configuration, such as subnets. (🌟 ultimate)
Enhancements
- Added support for Kubernetes versions 1.34 and 1.35 in EKS. Kubernetes 1.34 is now the default version for EKS clusters. Removed support for Kubernetes version 1.28. (🌟 ultimate)
- When creating EKS clusters, the
node.kubernetes.io/exclude-from-external-load-balancers=truelabel is now automatically added to server nodes to prevent the AWS Load Balancer Controller from considering them as load balancer targets. (🌟 ultimate) - CloudFormation now supports
DeletionPolicyandUpdateReplacePolicyattributes for resource management, including support for intrinsic functions within policy values usingFn::Ifconditions. - Fixed an issue where
Fn::FindInMapwith nested intrinsic functions (like{"Ref": "AWS::Partition"}) would raise a misleadingInternalFailureerror during stack redeployment. This particularly affected CDK-generated templates using CloudFront distributions with Route 53 alias targets. - Added support for the
variablesparameter in the Step FunctionsTestStateAPI, allowing pre-populated variables to be passed when testing individual states. - Improved Step Functions Local mock response handling to correctly iterate through numbered responses for multiple invocations of the same state.
- Improved JSONata
$merge()function handling with dynamic input references like$states.input.part1. - Added support for conditional headers (
If-MatchandIf-None-Match) in the S3CopyObjectAPI, enabling atomic copy operations based on the destination object's ETag. - Added
UPDATEsupport for theAWS::Route53::RecordSetCloudFormation resource provider, including proper handling ofSetIdentifierfor weighted routing policies. - Added validation for supported runtimes when creating Lambda Managed Instances functions, along with improved capacity providers lifecycle management.
- Added CRUD support for Users and UserGroups in ElastiCache, including
CreateUser,CreateUserGroup, and related operations. (🌟 base) - Added
stopTimeoutsupport for ECS container definitions, improving AWS parity for task termination behaviour. (🌟 base) - Implemented MSSQL data persistence in RDS, allowing database state to be preserved between LocalStack restarts when using the SQL Server engine. (🌟 base)
- The Glue provider now supports the
--python-modules-installer-optionparameter, allowing users to pass extra arguments topip installwhen creating or running Glue jobs. (🌟 ultimate)
Deprecations
- Removed the
--hostoption from the LocalStack CLI. The CLI now only supports running LocalStack inside a container vialocalstack start. - Any state created with a version prior to 4.14 will not be compatible and will need to be recreated. This applies to Cloud Pods, state snapshots, and
PERSISTENCE=1. LocalStack will display an explicit message when attempting to load incompatible state.
What's Changed
Exciting New Features 🎉
- SNS:v2 return pending confirmation on list subs by @baermat in https://github.com/localstack/localstack/pull/13666
- S3: fix Unicode handling in System and User Metadata by @bentsku in https://github.com/localstack/localstack/pull/13663
- Events: improve typing of models and default values by @bentsku in https://github.com/localstack/localstack/pull/13689
- S3: improve typing, removing int dict keys, clean up backwards
getattrby @bentsku in https://github.com/localstack/localstack/pull/13687 - Sns/v2 switch default provider by @baermat in https://github.com/localstack/localstack/pull/13699
- Fix: Update Dev Run to mount
plux.iniinstead ofentry_points.txtforlocalstackdependencies by @aidehn in https://github.com/localstack/localstack/pull/13708 - APIGW: fix model typing / update custom id logic by @bentsku in https://github.com/localstack/localstack/pull/13694
- Lambda: fix store typing for serialization by @bentsku in https://github.com/localstack/localstack/pull/13707
- OpenSearch: Move Tagging into Provider Methods by @aidehn in https://github.com/localstack/localstack/pull/13624
- Remove CLI code from core repository by @silv-io in https://github.com/localstack/localstack/pull/13704
- DynamoDB: refactor the store for proper type annotations by @giograno in https://github.com/localstack/localstack/pull/13256
- Lambda: refactor tagging by @bentsku in https://github.com/localstack/localstack/pull/13770
- feat: implement conditional headers for S3 CopyObject API by @shubhiscoding in https://github.com/localstack/localstack/pull/13554
- ResourceGroupsTaggingAPI: Migration for Integrated Services by @aidehn in https://github.com/localstack/localstack/pull/13821
- feat(stepfunctions): Add support for variables as TestState parameter by @tiurin in https://github.com/localstack/localstack/pull/13827
Other Changes
- fix lambda state reset method to shutdown esm workers correctly by @thrau in https://github.com/localstack/localstack/pull/13671
- CloudFormation: Support nested intrinsic functions in Fn::FindInMap by @nik-localstack in https://github.com/localstack/localstack/pull/13678
- Improve types for the SQS store by @giograno in https://github.com/localstack/localstack/pull/13684
- Update ruff target-version to 3.13 by @giograno in https://github.com/localstack/localstack/pull/13688
- Bump bytes from 1.11.0 to 1.11.1 in /tests/aws/services/lambda_/functions/common/uncaughtexception/provided/src by @dependabot[bot] in https://github.com/localstack/localstack/pull/13690
- Bump bytes from 1.11.0 to 1.11.1 in /tests/aws/services/lambda_/functions/common/introspection/provided/src by @dependabot[bot] in https://github.com/localstack/localstack/pull/13691
- Follow-up for ruff target-version upgrade by @giograno in https://github.com/localstack/localstack/pull/13696
- S3: Move Tagging Functionality into Provider Methods by @aidehn in https://github.com/localstack/localstack/pull/13657
- improve system information sent in session and container_info by @thrau in https://github.com/localstack/localstack/pull/13680
- KMS: Move Tagging Functionality into methods on the Provider by @aidehn in https://github.com/localstack/localstack/pull/13595
- SecretsManager: add tag/untag resource handling for deleted secrets by @shubhiscoding in https://github.com/localstack/localstack/pull/13662
- Route53: Move tagging logic into Provider methods by @aidehn in https://github.com/localstack/localstack/pull/13606
- deps: upgrade rolo/localstack-twisted by @bentsku in https://github.com/localstack/localstack/pull/13695
- Deprecate TaggingService by @viren-nadkarni in https://github.com/localstack/localstack/pull/13697
- CloudFormation: make test_fn_find_in_map_with_nested_ref_change_mapping region-agnostic by @nik-localstack in https://github.com/localstack/localstack/pull/13700
- SNS: add missing
requires_in_processtest markers by @bentsku in https://github.com/localstack/localstack/pull/13703 - testing: avoid installing service dependencies in runners if unnecessary by @bentsku in https://github.com/localstack/localstack/pull/13701
- fix(cloudformation): skip properties of conditional resources with false conditions by @sodre in https://github.com/localstack/localstack/pull/13664
- CFn: implement DeletionPolicy and UpdateReplacePolicy by @simonrw in https://github.com/localstack/localstack/pull/13535
- Lambda: Update CapacityProviderArn for managed instances by @anisaoshafi in https://github.com/localstack/localstack/pull/13702
- tests: Fix pre-install fixtures logic by @bentsku in https://github.com/localstack/localstack/pull/13709
- fix linting error by @bentsku in https://github.com/localstack/localstack/pull/13710
- Events: improve Store IAM Statement typing by @bentsku in https://github.com/localstack/localstack/pull/13716
- Upgrade lambda-runtime-init by @skyrpex in https://github.com/localstack/localstack/pull/13712
- fix(transcribe): allow exact 4h duration and handle invalid metadata by @kelvinvelasquez-SDE in https://github.com/localstack/localstack/pull/13561
- SNS: fix existing topic attr check by @bentsku in https://github.com/localstack/localstack/pull/13714
- pin
upgrade-pinned-dependenciestarget topip<26by @bentsku in https://github.com/localstack/localstack/pull/13719 - fix: secret value stored not decoded by @amitsh1 in https://github.com/localstack/localstack/pull/13543
- fix(SFN): prevent .waitForTaskToken cleanup in states that don't support it by @skyrpex in https://github.com/localstack/localstack/pull/13706
- Skip flaky path for Lambda introspection test by @anisaoshafi in https://github.com/localstack/localstack/pull/13730
- Bump Moto-Ext to 5.1.22 by @viren-nadkarni in https://github.com/localstack/localstack/pull/13727
- EKS: track eks customisation settings by @simonrw in https://github.com/localstack/localstack/pull/13733
- CFn: capture analytics on stack deploy failure by @simonrw in https://github.com/localstack/localstack/pull/13649
- dev: add live-reload capability by @simonrw in https://github.com/localstack/localstack/pull/13718
- SFN: Fix Local mock iterations for states without retry by @tiurin in https://github.com/localstack/localstack/pull/13693
- Bump cryptography from 46.0.4 to 46.0.5 by @dependabot[bot] in https://github.com/localstack/localstack/pull/13738
- Fix Cfn resource update by @silv-io in https://github.com/localstack/localstack/pull/13613
- transcribe: Skip test in k8s pipeline by @nik-localstack in https://github.com/localstack/localstack/pull/13741
- tests: run store checks in Community against Pro workflow by @bentsku in https://github.com/localstack/localstack/pull/13721
- RGTA/EC2: skip RGTA EC2 test in Pro by @bentsku in https://github.com/localstack/localstack/pull/13743
- CFn: Handle Fn::Sub returning JSON strings for IAM policies by @nik-localstack in https://github.com/localstack/localstack/pull/13735
- S3: fix URL encoding of
ContinuationTokenin ListObjectsV2 by @bentsku in https://github.com/localstack/localstack/pull/13746 - fix cli import in watcher by @alexrashed in https://github.com/localstack/localstack/pull/13750
- fix(apigateway): prevent deletion of stages during deployment replacement by @shubhiscoding in https://github.com/localstack/localstack/pull/13736
- APIGW: update CFN template for Stage test by @bentsku in https://github.com/localstack/localstack/pull/13752
- optimize analytics event batching window by @ackdav in https://github.com/localstack/localstack/pull/13747
- Fix docker errors with docker 29 and containerd storage backend by @dfangl in https://github.com/localstack/localstack/pull/13759
- Fix capture not implemented by installing localstack by @silv-io in https://github.com/localstack/localstack/pull/13761
- Sns avro by @baermat in https://github.com/localstack/localstack/pull/13711
- APIGW: handle undeclared Sparse Maps in specs by @bentsku in https://github.com/localstack/localstack/pull/13753
- CW Logs: Test suite for service internalization by @pinzon in https://github.com/localstack/localstack/pull/13692
- dev: lazy import live reload dependencies by @simonrw in https://github.com/localstack/localstack/pull/13757
- Update CODEOWNERS by @localstack-bot in https://github.com/localstack/localstack/pull/13779
- optimize config analytics event before sending by @thrau in https://github.com/localstack/localstack/pull/13744
- Test selection: migrate IAM by @simonrw in https://github.com/localstack/localstack/pull/13768
- S3: pre-signed URL account logic with SigV2 by @bentsku in https://github.com/localstack/localstack/pull/13782
- Update CloudFormation resource availability by @localstack-bot in https://github.com/localstack/localstack/pull/13740
- Fix failing snapshot test due to Lambda Python image changes by @joe4dev in https://github.com/localstack/localstack/pull/13789
- SQS: Move Tagging Functionality to Provider Methods by @aidehn in https://github.com/localstack/localstack/pull/13777
- SNS: Move Tagging Functionality to Provider Methods by @aidehn in https://github.com/localstack/localstack/pull/13608
- Handle async deletion for lambda managed instances by @anisaoshafi in https://github.com/localstack/localstack/pull/13751
- Logs: fix snapshot region from tests by @pinzon in https://github.com/localstack/localstack/pull/13792
- Test and fix provisioned concurrency error handling by @joe4dev in https://github.com/localstack/localstack/pull/13784
- Lambda: add more context to alias failure reason by @simonrw in https://github.com/localstack/localstack/pull/13807
- fix: correct typo in Dockerfile comment (degredation → degradation) by @MrLawrenceKwan in https://github.com/localstack/localstack/pull/13812
- fix(stepfunctions): resolve JSONata $merge regression with dynamic args by @shubhiscoding in https://github.com/localstack/localstack/pull/13717
- Lambda: async update lambda managed instance functions by @anisaoshafi in https://github.com/localstack/localstack/pull/13797
- upgrade lambda RIE by @carole-lavillonniere in https://github.com/localstack/localstack/pull/13826
- fix: development environment setup link by @rudransh-shrivastava in https://github.com/localstack/localstack/pull/13816
- S3: regenerate test snapshots & parity fixes by @bentsku in https://github.com/localstack/localstack/pull/13824
- Set correct JLI path for JRE versions 12+ by @tiurin in https://github.com/localstack/localstack/pull/13830
- fix: use standard npm install command to upgrade npm by @Swaraj-sync in https://github.com/localstack/localstack/pull/13817
- fix: add --no-install-recommends to builder stage apt-get install by @Heyyprakhar1 in https://github.com/localstack/localstack/pull/13814
- Add deprecation warning for ACTIVATE_PRO by @k-a-il in https://github.com/localstack/localstack/pull/13833
- Lambda: keep track of DesiredState for capacity provider for managed instances by @anisaoshafi in https://github.com/localstack/localstack/pull/13828
- S3: fix tagging with cross region calls by @bentsku in https://github.com/localstack/localstack/pull/13834
- CloudWatch: fix Scheduler shutdown by @bentsku in https://github.com/localstack/localstack/pull/13822
- Fix: Clean Up from RGTA Migration by @aidehn in https://github.com/localstack/localstack/pull/13835
- Lambda: keep track of function scaling config in the store by @anisaoshafi in https://github.com/localstack/localstack/pull/13837
- SQS: use queue account and region for tagging by @bentsku in https://github.com/localstack/localstack/pull/13847
- remove unused analytics payload ls_service_provider_assignment by @thrau in https://github.com/localstack/localstack/pull/13846
New Contributors
- @sodre made their first contribution in https://github.com/localstack/localstack/pull/13664
- @kelvinvelasquez-SDE made their first contribution in https://github.com/localstack/localstack/pull/13561
- @MrLawrenceKwan made their first contribution in https://github.com/localstack/localstack/pull/13812
- @rudransh-shrivastava made their first contribution in https://github.com/localstack/localstack/pull/13816
- @Swaraj-sync made their first contribution in https://github.com/localstack/localstack/pull/13817
- @Heyyprakhar1 made their first contribution in https://github.com/localstack/localstack/pull/13814
Full Changelog: https://github.com/localstack/localstack/compare/v4.13.1...v4.14.0