Releases: localstack/localstack
LocalStack release 0.12.10
Change Log:
LocalStack release 0.12.10
1. New Features
- add initial support for CloudFormation stack sets and stack instances
- initial support for AWS Support API
- add support for iterator types on Kinesis SubscribeToShard requests
- support Kinesis streaming destinations for DynamoDB
- initial support for put_metric_filter for CloudWatch log events
- add support for HttpEndpoint destinations in Firehose API
- add health check status for init scripts and persistence initialization
2. Enhancements
- replace AWS CLI commands with boto3 calls for /graph endpoint
- remove obsolete code for S3 bucket encryptions
- add CloudFormation support for EC2::NatGateway, KMS::Key, KMS::Alias, SecretsManager resources
- return PhysicalResourceId for S3::BucketPolicy CloudFormation model
- add edge mapping for EC2 requests with missing Auth headers
- remove deprecated USE_MOTO_CF config switch
- resolve refs in ExportName of CF stacks
- add missing attributes in Kinesis SubscribeToShard response
- minor refactoring and adding missing path in Dockerfile
- cache cfn-response module in local infra folder instead of re-downloading each time
- support JSON message structure with raw delivery in SNS
- add CloudFormation support for additional EC2 resources
- refactor logic for CF stack set instances
- add support for getting SSM parameters by path and filtering by labels
- remove "content-encoding: identity" header in S3 responses to fix compatibility with PHP/Guzzle 6
- add SNS XRay propagation to SQS using ElasticMQ
- add Circle-CI project setup and build badge
- move CI build commands into Makefile for easier migration
- refactor utils for resource tagging
- refactor logic for proxy listener, fix edge forward headers
- update S3 regex to support HOSTNAME_EXTERNAL in bucket hostnames
- add missing aws_request_id and context attributes for Python Lambdas with local executor
- add support for SES GetIdentityVerificationAttributes
- add LS_LOG=trace option to print detailed request/response messages
- add CloudFormation support for EC2::VPC, EC2::RouteTable, EC2::Route
- add Location response header on S3 bucket creation
- minor refactorings for "config validate" command
3. Bug Fixes
- fix API Gateway integration to allow binary payload data
- fix reprocessing of SQS messages in case multiple Lambda event source mappings are defined
- fix API GW integrations with no uri/integrationUri attribute (for mock integrations)
- fix StreamViewType in DynamoDB Streams event records
- fix stack status filter in CloudFormation API
- fix CF dependency resolution to avoid unresolved/nil resource refs
- fix Events API logic for recent upstream changes
- fix API Gateway when applying JSON patch with empty patch value
- fix passing region when constructing resource graph
- fix CloudFormation GetAtt intrinsic function for attr string refs
- fix proper stream view type of DynamoDB stream records
- fix error logs on subscribe_to_shard for deleted Kinesis streams
- fix build script to detect git:// repo URLs
- fix compatibility of S3 API with Cyberduck
- fix local URLs for nested CFN stacks
- fix Kinesis DescribeStreamConsumer to return consumer correctly
- fix content-type for requests forwarded to Lambda fallback URL
- fix returning None value on TransactWrite DynamoDB operation
- fix incorrect URL modification when sending S3 requests to backend
- fix encoding and timestamp format for Kinesis SubscribeToShard from Java SDK
- fix returning code 200 for S3 HEAD range requests
- fix S3 notifications for URLs with "x-id" query parameters
- minor fix for missing Lambda attributes on legacy persistence states
- minor fix in util function for parsing URL-encoded request payloads
- minor fix for is_port_open(..) util function to parse port parameters
- minor fix for extracting region from auth headers
LocalStack release 0.12.9
Change Log:
LocalStack release 0.12.9
1. New Features
- major: add support for virtual host based addressing in S3 requests
- add support for signature authentication for S3 host addressing based presigned URLs
- add support for IAM service linked roles
- add ability to import REST APIs for APIGateway
2. Enhancements
- enable and fix asynchronous CF stack deployments
- add small util function to list local Docker images
- configure KMS to use $DATA_DIR as persistence folder
- support PutRecord Kinesis endpoint in API Gateway integrations
- minor refactoring in download util functions
- add small util function to create Lambda API Gateway integration
- remove duplicated CFN integration test
- add test to validate export names for CFN deployment
- add LastUpdatedTimestamp for CF resources
- minor refactoring in configs and S3 presigned URL tests
- add missing get_physical_resource_id for IAM::InstanceProfile CF model
3. Bug Fixes
- fix missing parameters in download utils function
- fixed slash prefixes for path in S3 static website hosting
- fix addressing style by setting "auto" in default S3 clients
- fix incorrect date format for policy expiration date on S3 signing
- fix S3 Location Constraint for access with Node.js AWS SDK
- fix key name with special char and multipart upload in S3 presigned URL
- fix ARN format for IAM service roles
- fix encoding and strip off quotes for kinesis bytes input
- fix S3 bucket location constraint value for us-east-1 region
- fix error response for S3 get-bucket-cors in case no CORS config exists
- fix EC2 responses for compatibility with Terraform VPC module
- fix using regexes to match and extract RSA private keys
- fix determining ID for deletion of ApiGateway::RestApi resources
- fix failing tests for S3 presign URLs using incorrect bucket host
- fix lookup of CF resource ID for IAM::InstanceProfile model
- fix determining state for EC2::SecurityGroup CF resources
- fix Serverless tests and run CF deployments asynchronously
- fix presigned GET requests with querystring auth parameters
- minor fix for API GW patch operations on non-existing attributes
- minor fix for accessing IAM role attributes
- minor fix: make Lambda handler file executable in test utils
- minor fix for SNS topic deletion in CloudFormation
LocalStack release 0.12.8
Change Log:
LocalStack release 0.12.8
1. New Features
- add support for v4 signature calculations in S3 presigned URLs
- add support for nodejs14.x Lambda runtimes
- add CF support for EC2::Subnet, EC2::VPC, Events::EventBus, ApiGateway::Model
2. Enhancements
- add auto_restart option to ShellCommandThread to restart DynamoDB process on error
- run CF deployments asynchronously in the background
- extract auth details from query parameters in edge service
- add test for Java Lambda archive built from Gradle
- check existence of KinesisConsumer and add missing Header to binary Kinesis messages
- add small util function to get or create S3 bucket
- automatically confirm SNS subscriptions to fix TF deployments
- extend TF tests with EC2 resources
- add logs with build info when process starts up
- add support for deletion of SES templates
- refactor tests and logic for EventBridge targets
3. Bug Fixes
- fix extraction of SQS QueueArn in CloudFormation models
- fix mechanism to determine whether LocalStack is running inside Docker for Github Actions compatibility
- fix extracting list of changes in CloudFormation change sets
- fix result processing of external Lambda invocations via LAMBDA_FORWARD_URL
- fix edge route mapping logic to identify EventBridge API calls
- fix incorrect region parameter in EventBridge tests
- fix SQS redrive policy tests failing after recent upgrade
- fix tests for new SNS subscription attributes
- fix missing 'detail' field when putting EventBridge events with empty details
- fix resource path in event sent to Lambda from API Gateway
- fix log output for "localstack config" CLI commands
- minor fix in API GW request routing
- minor fix for SES response parsing
LocalStack release 0.12.7
Change Log:
LocalStack release 0.12.7
1. New Features
- initial support for Kinesis consumers and SubscribeToShard via HTTP2 push events
- add LS_LOG option to customize the default log level
- add CloudFormation support for Lambda::EventInvokeConfig
- add support and tests for StepFunctions intrinsic functions
- add support for LAMBDA_FORWARD_URL to forward Lambda invocations
- add support for accounts management in API Gateway
- add support for API Gateway validators
- add initial support for SWF API
- add CloudFormation support for Route53::RecordSet
- add "events" target for EventBus to forward messages between different event bus instances
- add support for Lambda event source mapping with self-managed kafka cluster as event source
2. Enhancements
- add support for deleting S3 bucket lifecycle configurations
- add CLI command for validating configurations defined in docker-compose files
- merge stack outputs on CloudFormation UpdateStack
- avoid sending MessageGroupId to SQS when using ElasticMQ
- add test for Kinesis stream consumer Lambda event mapping
- add a TLDR-style docker run command in the README
- add AWS_REGION to environment when launching Lambda functions
- add support for base path mappings in API Gateway
- add missing endpoint/domain for ES call from Firehose
- add .NET client library info to README
- add module jdk.zipfs to custom JDK to fix JAR loading issues
- add missing attributes for ACM certificates to avoid Terraform crashes
- add support for Route53 ListHostedZonesByVPC
- update S3 event version from 2.0 to 2.1
- skip returning groupName in IP permissions for non-default VPCs
- enhance support for ACM domain validation
- add API to list Elasticsearch versions
- support Route53 matching for domain names ending with a dot
- make unzip(..) util function more resilient to errors inside Alpine/Docker
- minor refactoring of CloudFormation model base class
- add SES email delivery for SNS notifications
- refactor IAM to incorporate upstream changes
- minor refactoring of API GW stage variables
- fall back to Python unzipping if native "unzip" command fails
- add support for Route53 AssociateVPCWithHostedZone
- pin version of cryptography<3.4 to avoid issue with new Rust dependency
- handle empty marker in S3 list objects
- add CloudFormation support for deletion of SNS subscriptions
- support attribute TreatMissingData in CloudWatch metrics
- add test cases for CloudWatch Logs subscriptions
- remove persistence for SNS APIs that cause issues with generated IDs
- ensure case-insensitive dict for headers to fix gzip encoding issue with TF
3. Bug Fixes
- fix evaluating conditions to skip resource deployment in CloudFormation
- fix extraction of tags from URL-encoded request payload
- fix list_hosted_zones_by_vpc API for Route53
- fix Lambda handler in Serverless tests for local executor
- fix adjusting CloudFormation stack status when running ExecuteChangeSet
- fix API Gateway response for base path mapping with empty path
- fix setting of default region from environment variables
- fix tests to accommodate min length of API GW API keys
- fix disabling of rules in EventBus API
- fix Kinesis GetRecords output with bytearray data for consumption with AWS Java SDK v2
- fix API Key validation for API Gateway for multiple keys configured
- fix response for ACM certificate verification status
- fix update of HOSTNAME_EXTERNAL in SQS via backdoor config API
- fix startup of Elasticsearch process on ES domain creation
- fix error response for non-existent keys in S3 range requests
- fix tests for ACM certificates created via Terraform
- minor fixes for tagging CloudWatch alarms
- minor fix in SecretsManager to accept secret ARN as SecretId
LocalStack release 0.12.6
Change Log:
LocalStack release 0.12.6
1. New Features
- support Lambda/Kinesis/Firehose targets for CloudWatch Log subscription filters
- add backdoor API to receive raw CloudWatch metrics
- add tagging support for CloudWatch metrics
2. Enhancements
- convert Content-Length headers to upper-case as required by some S3 libs
- enhance CloudFormation support for EC2::SecurityGroup, IAM::InstanceProfile, EC2:Instance, KMS:Key
- enhance CloudFormation support for API Gateway resources
- enhance CloudFormation logic for managed and inline IAM policies
- add SES listener to add missing xmlns for error responses
- modify timestamp format of CloudWatch GetMetricData entries
- perform deletion of DynamoDB streams only if table exists
- add support for tags in CloudFormation stacks
- add support for Fn:GetAZs intrinsic function in CloudFormation
- include change set params when resolving stack parameters
- refactor Lambda API to use RegionBackend base class
- add messageGroupId parameter for SQS targets in events rules
- minor: add util method to initialize REGIONS for RegionBackend
- minor refactoring of API Gateway invocation logic for better extensibility
- minor: add util function to kill process trees for cleanup/shutdown
- minor refactoring of startup log messages
- minor refactoring of Lambda API for better extensibility
3. Bug Fixes
- fix logic for restoring DEEP_ARCHIVE objects in S3 API
- fix incorrect response tags for Redshift ClusterSubnetGroups
- fix Java Lambda containers to listen on debug_port if specified in LAMBDA_JAVA_OPTS
- fix millisecond conversion of ApproximateArrivalTimestamp in Kinesis GetRecords
- fix test credentials in DynamoDB request headers
- fix region lookup for API Gateway REST API invocations
- fix patching of API GW REST API attributes
- fix CF attribute lookup for LambdaPermission
- fix Kinesis proxy listener to skip base64 decoding for byte message contents
- fixed gzip encoding of payload on Lambda trigger from log subscription event
- fix DynamoDB listener to properly look up throttling configuration
- fix edge path routing for S3 PutObject with nested key name when using Java SDK
- fix string format of SecretsManager secret value when referencing from SSM
- fix LastModified value for Lambda API to support Terraform 0.13 and 0.14
- fix date format in SES for AWS Java SDK v2 compatibility
- fix deployment of CloudFormation templates with IAM::InstanceProfile
- fix logic and integration test for Lambda destinations
- fix JSON encoding of payload from Lambda fallback invocation
- fix error response on Firehose PutRecord for non-existing stream
- minor fix for local Lambda mounts
- minor CloudFormation fixes for S3 buckets
- minor fixes for CloudFormation and handling AWS auth headers
LocalStack release 0.12.5
Change Log:
LocalStack release 0.12.5
1. New Features
- major change: rewrite CloudFormation to use an independent deployment mechanism
- recursively return all outputs for nested CloudFormation stacks
- add gzip decoding to edge service to support zipped request payloads
- add support for CF functions select/split/base64
- add missing CF APIs: GetTemplate, GetTemplateSummary, ListImports
- add message group id for events in SNS->SQS integration
- add basic persistence for SecretsManager
2. Enhancements
- refactor CloudFormation implementation to use resource model classes
- add missing CF resource props for DDB/SQS resources
- add proper signal handling in supervisord to support kubernetes deployment
- add util functions to determine disk usage of files/folders
- add SET_TERM_HANDLER config for Docker entrypoint
- add default config for StepFunctions port to avoid clash with PORT env variable
- add support for Lambda destinations to forward results to SQS
- add missing edge route mapping for SNS ConfirmSubscription
- add integration test for StepFunction try/catch functionality
- add small util function to determine whether a local port can be bound
- enhance DynamoDB performance by skipping item lookups if no streams enabled
- minor refactoring of region backend base class
- support S3 key names containing hashes
- add method to configure CF deploy templates in resource class
- add ability to get an AppSync DataSource's physical id in CF
- extend create_zip_file util function to allow specifying target zip file
- pass environment variables to Lambdas with "provided" runtime
- run Lambda set_function_code in background to avoid network timeouts
- sort S3 object versions by creation date
3. Bug Fixes
- fix SNS message format for .NET SDK by removing null values
- fix returning LogResult from synchronous Lambda invocations
- fix assertions for machine creation/deletion in StepFunction tests
- fix fetching Arn attribute on SFN state machine updates via CF
- fix broken tests related to util function change
- fix escaping of policy JSON in ApiGateway resources using Terraform
- fix whitespaces in SQS redrive policy JSON
- fix date format in SSM & SecretsManager for Java SDK compatibility
- fix removal of deleted resources from CF stack template
- fix infinite recursion when loading stack exports that reference other imports
- fix response format for CloudFormation ListExports
- fix returning log output on Lambda errors
- fix yaml to JSON parsing of CF templates
- minor fixes for CF resource updates for IAM roles and SFN state machines
- minor fix in date format parsing for S3 policy expiration dates
- minor fix when cloning CF stack template metadata
- minor CF fixes for use with CDK
LocalStack release 0.12.4
Change Log:
LocalStack release 0.12.4
1. New Features
- add integration for StepFunctions state machine executions in API Gateway
- add gzip encoding of response payloads to edge service
- add backdoor API to restart all processes inside the main container
- add SNS target type for EventBridge API
- use locking to run Lambdas with docker-reuse executor in sequence
- make
TEST_*_URL
endpoints configurable in the environment
2. Enhancements
- use locking to fix concurrency during persistence restoration
- hardcode local hostname instead of using $HOSTNAME from the environment
- skip MD5 checks on S3 multipart uploads
- log content of outgoing emails in SES
- use
.Config.Entrypoint
for more robust Docker entrypoint lookup - refactor and enhance CF resolution of placeholders in Sub expressions
- extract Ref attribute for CloudFormation Sub attributes with "${resource}" syntax
- migrate Helm charts into separate repo
- minor: add util function to run async coroutine in given event loop
- minor: add util function to construct XML response messages
- minor refactoring in edge routing and CF FN::ImportValue resolution
3. Bug Fixes
- fix absolute path for DATA_DIR when starting up DynamoDB process
- fix broken S3 test related to date format of Expires header
- fix parsing of host name to determine path based addressing in S3 requests
- fix processing of EventBridge events on multiple targets and inputPath
- fix logic to update Lambda function version based on content hash
- fix CF issue updating state machine with FN ref in definition string
- fix resolving name refs when querying CF resource deployment state
- remove encryptionType:NONE attribute in Kinesis records to avoid breaking .NET lambdas
- fix stdin I/O issues when passing events to provided Lambda runtimes (e.g., for Rust)
- fix CF export name uniqueness checks prior to stack deployment
- fix issue when updating CF template with StateMachine
- fix default account ID in SecretsManager ARN responses
- minor fix in startup command for
provided
Lambda runtimes - minor fix in CloudFormation related to missing set_exports method in
moto-ext
LocalStack release 0.12.3
Change Log:
LocalStack release 0.12.3
1. New Features
- release initial version of Helm chart
- add support for API Gateway update-rest-api via JSON patch operations
- add content based filtering in Events API
- add support for Lambda code signing APIs
- add support for Lambda concurrency API
2. Enhancements
- add Vagrant configuration for reproducible CentOS dev environments
- minor: reduce log verbosity for chunk-based file downloads
- enhance CloudFormation logic to load state of existing resources
- add required workdir to supervisord configuration
- enhance SSM / SecretsManager integration to get secret parameters
- disable moto instance tracking to avoid memory leak
- add support for Route53 get-change
- handle IAM::Policy resource in CloudFormation
- add integration test to deploy CF template generated by CDK
- refactor and stabilize CloudFormation dependency resolution mechanism
- add edge forwarding rule for AWS AssumeRoleWithSAML action
- ensure using correct test credentials for generating S3 presigned URLs
- add missing Access-Control-Allow-Credentials CORS header to S3 responses
- improve Terraform tests
- add PackageType property for Lambda functions
- add test cases for Lambda code signing config
- minor refactoring in DynamoDB test utils
- minor refactoring of AWS test credentials
- enhance support for FN::ImportValue and FN::Sub in CloudFormation templates
- support KCL 2.x timestamps and ARN replacements in Kinesis CBOR payloads
- consider $REQUESTS_CA_BUNDLE for SSL verification in download utils
- add missing CachingClusterStatus in API GW to fix Terraform crash issue
- add Thai segmentation support to JRE as required by Elasticsearch 7+
- create custom, compressed JRE via jlink in base image
3. Bug Fixes
- fix /etc/hosts and Quart dependency for Centos 8
- fix edge route mapping for EventBridge requests from Go SDK
- fix response structure for API GW Integration/Response
- fix passing of stack parameters/resources to CloudFormation changesets
- fix default account ID in SecretsManager ARN responses
- fix issue with resolving FN::Sub references in CF templates
- fix recreation of SNS topic with same name and different tags
- fix missing attributes in Lambda update-function-config
- fix timeoutInMillis attribute missing from API Gateway integrations
- fix edge route mapping for STS AssumeRoleWithWebIdentity
- fix SSM & SecretsManager integration for secrets names with slashes
- fix URL host name and credentials when generating presigned URL
- fix non-zero content length for gzipped 204 status
LocalStack release 0.12.2
Change Log:
LocalStack release 0.12.2
1. New Features
- expose SecretsManager secrets via SSM parameter references
- add proper CORS headers to S3 responses
- add support for custom CI build commands via $CUSTOM_CMD
- allow adding multiple permission statements to Lambda function policy
2. Enhancements
- upgrade base image and local Lambda executor to Java 11
- add carriage return to SQS message payload validation regex
- add support for SQS queue names containing slashes
- add support for resource policies in SecretsManager
- add README instructions for test credentials required for presigned URLs
- use distinct values for missing CloudFormation resource props
- add util function to create API GW Lambda event request context
- add test for S3 precondition check
- add test for Terraform API Gateway resources
- refactor CloudFormation integration tests
3. Bug Fixes
- fix parsing of Content-Disposition header in S3 multipart uploads
- fix Content-Length mismatch issue for HTTP server responses
- fix hypercorn response body on 412 status code
- fix logic for missing authorizerId in API GW authorizers
- handle non-zero ReceiveMessageWaitTimeSeconds for SQS
LocalStack release 0.12.1
Change Log:
LocalStack release 0.12.1
1. New Features
- add CloudFormation support for Lambda::Permission
- support filtering of events by pattern using eventPattern
- enable setting custom authorizers on API GW resource methods
2. Enhancements
- set correct Id attribute in S3 notification messages
- add log output listener for shell command thread
- add docs about using AWS CLI v2 from Docker image
- updates in developer documentation and README (e.g., docker-compose version)
- refactor StepFunctions integration tests
- pass $EDGE_PORT to Lambdas
- add Terraform test for several resources (Lambdas, S3 bucket CORS integration)
- add test for creating SFN State Machine with Choice operator
- add test for creating SQS queue with attributes via CloudFormation
3. Bug Fixes
- fix missing module import for Windows
- fix DynamoDB streams sequence number mismatch on GetRecords
- fix date format in CloudWatch responses
- fix service name and NS URLs for XML service responses
- fix gzip encoding for empty response content