Skip to content

v4.1.0

Compare
Choose a tag to compare
@localstack-bot localstack-bot released this 30 Jan 10:31

Summary

LocalStack 4.1 delivers major enhancements to its local AWS emulation platform, featuring a new Managed Service for Apache Flink provider, improved Step Functions capabilities with Variables and JSONata transformations, and a preview release of the LocalStack SDK for Java. The update includes significant improvements to existing services, such as composite alarm support in CloudWatch and a Python-based Event Rule engine. Other enhancements revolve around services like Glue, S3, and the Web Application, with new Web Application features and a RedShift Resource Browser.

AWS Features

  • Support for Managed Service for Apache Flink (MSAF) is now available to run Flink applications locally with several AWS-compatible API operations. This service was previously known as Kinesis Data Analytics v2. (🌟 pro)
  • LocalStack now supports AWS Step Functions Workflow Variables and JSONata transformations, enabling local emulation of enhanced state management and data transformations.
  • LocalStack now provides basic support for CloudWatch composite alarms, allowing alarm storage and limited evaluation with OR logic, ARN-based references, and SNS notifications.

Enhancements

  • LocalStack now uses a Python-based Event Rule engine for event pattern matching in EventBridge, Pipes, and Lambda Event Source Mapping, replacing the Java-based AWS event ruler.
  • LocalStack’s CloudFormation provider now includes these enhancements:
    • Added support for the CREATE, and DELETE operations on the AWS::MWAA::EnvironmentAWS::KinesisAnalyticsV2::Application, and AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption resource type. (🌟 pro)
    • Support for the NoEcho attribute in CloudFormation parameters was included to improve parity.
    • Improved error messages on template parse or deploy failures.
  • LocalStack’s Step Functions provider now includes the following enhancements:
    • Step Functions interpreter now correctly parses Comment fields within choice rule composite statements (And/Or/Not), matching existing preprocessor behavior.
    • Step Functions interpreter now correctly parses and evaluates ContextObject path bindings in ErrorPath and CausePath fields, resolving parse errors.
    • Step Functions interpreter now supports cross-account task invocations via Credentials blocks. We have also enhanced sync callback handling for optimized service integrations to prevent States.Runtime exceptions.
    • Step Functions interpreter now correctly handles Output blocks in choice rules and properly processes Output/Assign blocks sequentially.
    • Improved request encoding in Step Functions for better handling of parameters when using Boto.
    • Fixed nested Map state execution in Step Functions to process multiple levels correctly.
    • Corrected retrieval of State Machine definitions in CloudFormation during stack updates.
    • Ensured Step Functions use State Machine role credentials for service integrations.
    • Step Functions now provides clearer error messages for JSONPath operations.
    • Improved handling of ItemsPath in Distributed Map states.
    • Enhanced timestamp validation in Step Functions.
    • Allowed AWS-SDK integrations to retain specific error names for better error handling.
    • Fixed parsing of version tokens in Step Functions to prevent conflicts.
  • LocalStack’s Glue provider now includes the following enhancements: (🌟 pro)
    • Support for Glue 5.0 along with the appropriate versioned JAR files.
    • Support for Snowflake drivers in Glue jobs.
    • Support for the -extra-jars option in AWS Glue within LocalStack. This option allows users to specify additional JAR files that can be included during Glue job execution. These JAR files can be used to extend the functionality of Glue jobs by providing custom libraries or dependencies.
  • LocalStack’s S3 provider now includes the following enhancements:
    • S3 PutObject operations now support the CRC64NVME checksum algorithm and include ChecksumType field, for enhanced data integrity features as released by AWS.
    • S3 now supports FULL_OBJECT checksum type for Multipart Uploads using CRC algorithms, enabling simplified checksum validation without tracking individual part checksums. This includes enhanced validation, proper error messaging, and checksum combination logic for parts verification.
    • S3 PutObject and CompleteMultipartUpload now supports the new Conditional Write feature with the IfMatch parameter, also known as Compare-and-Swap.
  • LocalStack container logs are now properly displayed when running with Podman.
  • LocalStack now supports Cognito User pool deletion protection.
  • Transparent Endpoint Injection is now supported for the Batch provider. This feature enables your code to connect to other emulated AWS resources without needing to modify the code running in your local Batch jobs.
  • The DescribeListenerAttributes operations are now supported in the Elastic Load Balancing (ELB) provider.
  • You can now use the SNS_SES_SENDER_ADDRESS configuration variable to customize the sender of SNS email notifications, defaulting to [email protected] if not configured.
  • Node.js 22 runtime Lambda runtime is now supported in LocalStack.
  • Error messages from failed ECS task containers now appear in LocalStack logs, removing the need for inspecting the container logs manually using the ECS_REMOVE_CONTAINERS=0 configuration variable.
  • Failed events from Lambda functions with Amazon Kinesis and Amazon DynamoDB event source mappings (ESMs) can now be sent to S3 buckets as a destination, in addition to the existing SNS and SQS options, as supported by AWS. Unlike with SNS and SQS failure destinations, a complete event payload data is written to S3.
  • ELB endpoints are now accessible via http://localhost:4566/_aws/elb/<elb-id> path routing, enabling usage without subdomains in Ephemeral Instances or any other environment where subdomains are not supported.
  • SageMaker provider now supports multiple Production Variants of deployments for A/B testing.
  • EKS now supports using Minikube as the local cluster to start the Kubernetes cluster backing EKS. This can be achieved by setting the configuration variable EKS_K8S_PROVIDER=local and mounting the $HOME/.kube/config file, which contains the Minikube configuration, into the LocalStack container.
  • SNS Filter Policy engine has been enhanced, and the support for cidr operator has been added.
  • AppSync VTL resolver function logs (via $util.log) now appear in LocalStack console for improved debugging experience.
  • ECS is now supported as a target for EventBridge.
  • Support for adding custom IDs for IAM roles and policies has been added to the IAM provider.
  • Support for EventBridge API destinations and connections has been added.
  • Extended ListFirewallRules API in Route 53 Resolver to support filtering by action and priority parameters.
  • Default Bedrock model has been switched to smollm2:360m to handle text model invocations.
  • ELB rules now support all available conditions.

LocalStack Features

  • Support for the official LocalStack SDK for Java is now available, enabling interaction with our proprietary features through our internal developer endpoints.
  • LocalStack Web Application now includes a Redshift Resource Browser, offering a visual interface to manage local Redshift clusters.
  • Users will now see a link to the Web Application every time they start LocalStack from the command line interface (CLI).
  • Installed extensions will now appear at the top of the list on the Extensions Manager dashboard, making them easier to view and manage.
  • Chaos Engineering dashboard has been relocated to the Instance Management tab, where it now appears alongside other features to consolidate management tools for easier access.
  • Support has been added for a new restart button on the Web Application, located under the instance name.
  • Support has been added for a new Swagger UI button in the instance controls, which links to /_localstack/swagger for convenient access to API documentation.

Deprecations

  • The EVENT_RULE_ENGINE configuration variable to set the Java rule engine has been deprecated. It is recommended to remove this legacy configuration.

What's Changed

Exciting New Features 🎉

  • Add test for EventBridge Scheduler TagResource API and UntagResource API by @kakakakakku in #11976
  • Feature/Eventbridge v2: Support extending available targets by @maxhoheiser in #11407
  • Cloudwatch: add basic composite alarm support by @tiurin in #11828
  • Bump moto-ext to 5.0.22.post1 by @viren-nadkarni in #12003
  • StepFunctions: Base Support for Task Credentials by @MEPalma in #11987
  • Replicator implement cfn read for supported resources by @cloutierMat in #12017
  • StepFunctions: Fix Evaluation of Nested Map Runs by @MEPalma in #12033
  • StepFunctions: Fix Boto Request Encoding by @MEPalma in #12035
  • Refactor/events: Custom api destination and connection tests by @maxhoheiser in #11999
  • CloudFormation, Fix Retrieval of State Machine Definitions On Stack Update by @MEPalma in #12044
  • StepFunctions: Migration to String Expressions by @MEPalma in #12028
  • add replicator to Advanced section by @cloutierMat in #12052
  • add read/list methods for ec2 security-groups resource provider by @pinzon in #12034
  • Cfn support layer version read list by @cloutierMat in #12060
  • Bugfix/eventbridge/transformer issue with nested key by @maxhoheiser in #11998
  • StepFunctions: Ensure Service Integrations Assume State Machine Role Credentials by @MEPalma in #12089
  • allow setting of customId for IAM Roles by @pinzon in #12077
  • lambda layer enable deterministic layer version creation by @cloutierMat in #12098
  • Bugfix/eventbridge/process to all matching rules by @maxhoheiser in #12090
  • Add s3 as ESM failure destination for Kinesis and DynamoDB stream sources by @tiurin in #12087
  • StepFunctions: Better Error Messages For JSONPath Operations by @MEPalma in #12094
  • Bugfix/eventbridge/event bus desciption not asigned on create by @maxhoheiser in #12100
  • Refactor/events/custom api destination by @maxhoheiser in #12057
  • StepFunctions, improve the use of ItemsPath declarations in Distributed Map states by @MEPalma in #12117
  • add cc methods for lambda function resource provider by @pinzon in #12111
  • StepFunctions: Improvements to Timestamp Validation by @MEPalma in #12074
  • StepFunctions: Stateless evaluation of EvalComponents by @MEPalma in #12068
  • [ESM] Handle polling of batches exceeding SQS message limits by @gregfurman in #12118
  • StepFunctions: Support for Escape Sequences in JSONata String Literals by @MEPalma in #12072
  • StepFunctions: AWS-SDK Integration Retain Specific Error Names by @MEPalma in #12161
  • Remove deprecated Java-based event ruler by @joe4dev in #12158
  • StepFunctions: Clean-up legacy JSONata unit tests by @MEPalma in #11921
  • Step Functions, Support for Output Blocks in Choice Rules, Improvments to JSONata Choice Defaults by @MEPalma in #12075
  • StepFunctions: Fix Parsing of Version Tokens as Soft Keywords by @MEPalma in #12190
  • S3: implement new checksum algorithm CRC64NVME add ChecksumType for PutObject by @bentsku in #12182
  • S3: implement new data integrity for MultipartUpload by @bentsku in #12183

Other Changes

New Contributors

Full Changelog: v4.0.3...v4.1.0