Skip to content

Releases: localstack/localstack

LocalStack release 0.12.5

11 Jan 21:55
Compare
Choose a tag to compare

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

26 Dec 21:31
Compare
Choose a tag to compare

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

11 Dec 21:24
de360b5
Compare
Choose a tag to compare

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

11 Nov 21:59
fbbea71
Compare
Choose a tag to compare

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

11 Nov 21:52
Compare
Choose a tag to compare

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

LocalStack release 0.12.0

11 Nov 21:47
3278e33
Compare
Choose a tag to compare

Change Log:

LocalStack release 0.12.0

1. New Features

  • single edge port now stable for all APIs
  • add CBOR encoding support for Kinesis API
  • disable custom Java Lambda executor and replace with default lambci mechanism

2. Enhancements

  • publish SNS messages asynchronously
  • create env INIT_SCRIPTS_PATH to specify path for init files in Docker
  • extract InputPath expression for notification messages to EventBus targets
  • add signature and expiry validation for S3 presigned URLs
  • add simple integration test for Terraform resources
  • add CloudWatch as a static dependency for Lambda API
  • add more fine-grained DynamoDB error injection with read/write error probabilities
  • raise error when attempting to update CF stack with unmodified template
  • minor refactoring of /graph endpoint

3. Bug Fixes

  • fix edge route mapping for S3 HEAD requests
  • fix invalid account ID in CloudWatch logs listener ARNs
  • minor fix of XML root tag for S3 error responses
  • fix issue with blocking sockets in HTTP2 server
  • fix numeric timestamp format in Kinesis records required by Go SDK
  • fix missing attributes when adding IAM permission to Lambda function
  • fix case sensitivity for bucket names in S3 bucket notifications
  • fix debug port parser for Java Lambda executor to support different formats

LocalStack release 0.11.6

02 Oct 20:17
19f6d93
Compare
Choose a tag to compare

Change Log:

LocalStack release 0.11.6

0. !! Breaking Changes !!

  • Starting with this release, all services are now exposed via the edge service (port 4566) only! Please update your client configurations to use this new endpoint.

1. New Features

  • use edge service as single entry point, forward requests in-memory instead of opening port per service
  • add download URLs for Elasticsearch 7.7 (new default version)
  • add LAMBDA_DOCKER_DNS config to utilise custom DNS server for Lambda containers
  • add switch to disable Lambda handler validation

2. Enhancements

  • minor refactoring in SFN test code
  • add integration test to verify MAP tasks in SFN state machines
  • refactor CF logic for API GW resources and empty/Null values
  • refactor API Gateway utils and test code
  • refactor Lambda context handling
  • refactor startup logs to print correct ports in output
  • extend Serverless tests with SQS and API Gateway resources
  • use S3 path addressing when host starts with localhost IP or hostname
  • add test to assert event deletion for SQS Lambda event source
  • add localhost.localstack.cloud as alias to SSL cert
  • add Serverless integration tests to cover DynamoDB and Kinesis resources
  • add Lambda request body length check
  • performance improvements in plugin loading

3. Bug Fixes

  • fix boolean values in IAM responses
  • fix PutEvents API call with no source specified
  • fix endless loop when S3 error document is missing
  • fix Python path when running Lambdas using local executor
  • fix "TypeName" as optional param for Elasticsearch v7
  • fix error response for requests to non-activated APIs
  • fix network_mode:bridge in docker-compose.yml

LocalStack release 0.11.5

16 Sep 19:48
6e280e5
Compare
Choose a tag to compare

Change Log:

LocalStack release 0.11.5

0. !! Breaking Changes !!

  • Starting with releases after v0.11.5 (i.e., latest and all future release tags), all services are now exposed via the edge service (port 4566) only! Please update your client configurations to use this new endpoint.

1. New Features

  • add support for importing REST APIs from Swagger docs in API Gateway
  • add config variable to customize the main Docker container name
  • add missing attributes in Lambda events triggered from Kinesis
  • concatenate Firehose batch records and combine them into single S3 objects
  • return 304 if If-None-Match header is specified and S3 object ETag has not changed

2. Enhancements

  • refactor util functions for AWS responses
  • update Lambda environment variables on CF stack update
  • allow setting MAX_POOL_CONNECTIONS via environment variable
  • refactor logic to forward requests to S3_BACKEND
  • read name of main Docker container dynamically based on hostname
  • support gzipped S3 responses when requested via Accept-Encoding header
  • refactor CloudFormation deployments for API Gateway
  • use random available port for Lambda container server in Docker "host" network mode
  • add DynamoDB error handling for query type ALL_ATTRIBUTES and projection type != ALL
  • use paginator for DynamoDB list tables
  • add adaptive, unbounded thread pool to avoid deadlocks on concurrent requests
  • adjust timestamp format for JSON-safe object conversion
  • cut out None from Delimiter tag in S3 responses
  • use a mock client to prevent moto Lambda objects from talking to Docker
  • add default values for DDB ProvisionedThroughput in CF
  • add test to trigger Java Lambda from SNS event source
  • add test for DynamoDB stream triggering Lambda event source
  • add test to assert exception for DDB query on non-existing table

3. Bug Fixes

  • fix Lambda event to match SNS message ID
  • fix default region in edge service to avoid region mismatches
  • fix EC2 creationTimestamp format
  • fix edge route for /graph endpoint
  • fix URL encoding of S3 object key names in SQS notification messages
  • fix edge route for S3 bucket HEAD requests
  • add several retries to make integration tests more resilient
  • fix posting to SQS on queue URL with trailing slash
  • fix CF/Serverless deployment for ApiGw APIs with missing root resource
  • fix JSON serialization of event details on eventBridge put_events
  • fix edge mapping for S3 PutObject requests
  • fix CF deploy for API GW RestApi resource
  • fix Lambda event from API Gateway to send HTTP method it was called with
  • fix mismatch of crc32 hashes for patched SQS responses
  • fix S3 compression for non-bytes string response body
  • fix CF deployment of API Gateway integration and integration URI with empty path

LocalStack release 0.11.4

12 Aug 22:15
Compare
Choose a tag to compare

Change Log:

LocalStack release 0.11.4

1. New Features

  • add initial support for ACM API
  • support custom Lambda integration in API GW
  • add config option for DynamoDB Java heap size
  • add support for DynamoDB Global Tables
  • add basic string functions in VLT templates

2. Enhancements

  • build and push localstack-full image in CI, make light image the default
  • support "sms" as SNS subscriber protocol
  • support platform endpoints in SNS
  • support client context passed to Node.js Lambda handler
  • increase max threads in thread pool to improve concurrency
  • enhance implementation and tests for API GW HTTP/HTTP_PROXY support
  • support CF deletion of Lambda functions and IAM roles with inline policies
  • add dummy AWS credentials to Lambda Docker containers
  • add test for VPN Gateway attachment.vpc-id filter
  • properly convert between Kinesis stream names and ARNs
  • add support for pathPrefix in IAM list_users
  • enhance command line ports parsing
  • enhance CF support for ApiGateway::RestApi
  • add option to use default Lambda endpoint for StepFunctions
  • add tests to tag/untag SQS queues
  • add tests for SQS FIFO queue with group/deduplication ID on multiple messages
  • add test for SQS DLQ when maxReceiveCount is reached
  • add missing region to EC2 getAccepterVpcInfo response
  • make DDB stream creation asynchronous
  • extend Java Lambda classpath
  • add test to trigger multiple SNS subscriptions in the presence of handler errors
  • replace ${filename} variable references in S3 presigned responses
  • increase Quart server max content length
  • add SQS as target in EventBridge

3. Bug Fixes

  • fix HOSTNAME_EXTERNAL extraction to determine path-style addressing in S3
  • fix RedrivePolicy for new SQS backend
  • fix triple logs in debug mode
  • fix format of Kinesis stream ARNs in CF
  • fix DynamoDB TransactWriteItems with ConditionCheck
  • fix DynamoDB stream MODIFY/INSERT event on UpdateItem for new item
  • fix DynamoDbStreams get-shardId-iterator with AT_SEQUENCE_NUMBER
  • fix proxy CORS headers
  • add retries to fix intermittent SSL cert generation errors
  • fix generation of random password in SSM
  • fix API key checks for API GW paths with path params
  • fix content-type in presigned S3 URLs
  • fix SSL context creation error for multiple threads
  • fix invocation of destination Lambda for Logs subscription filters
  • return raw response in edge proxy to fix gzip encoded S3 content
  • fix adding multiple permissions to single Lambda function
  • return table name for DynamoDB table Ref in CF
  • fix Docker port mapping for PORT_WEB_UI
  • fix HTML escaping of SQS message attributes
  • fix shardId format for DDB Streams
  • fix S3 Content-MD5 base64 checks

LocalStack release 0.11.3

28 Jun 21:56
609ea89
Compare
Choose a tag to compare

Change Log:

LocalStack release 0.11.3

1. New Features

  • switch to Quart Server for initial version of HTTP/2 support for API endpoints
  • add support for IAM SimulatePrincipalPolicy
  • add persistence support for SNS
  • add API Key validation in API GW
  • support expiry in S3 multipart POST
  • support Elasticsearch snapshot repo
  • support StepFunctions targets in scheduled event rules
  • move /health check endpoint to edge port
  • use moto instead of ElasticMQ as default backend for SQS

2. Enhancements

  • add thread synchronization to Lambda config initialization
  • point Lambda LOCALSTACK_HOSTNAME to main container directly
  • add CORS headers to all OPTIONS responses by default
  • upgrade DynamoDB to latest backend version
  • encode account ID in SQS queue URLs
  • add handling of query parameters in SNS requests
  • determine proper external port in SQS URLs
  • add missing Record values to Kinesis stream listener response
  • support CF condition based on AccountId
  • delete event source mappings on deletion of DynamoDB table
  • return proper response details on Lambda invocation error
  • store SSL certs to random tmp files in case of permission issues
  • enhance path matching for API Gateway invocations
  • pass HTTP_PROXY to Lambda if configured
  • skip Lambda invocation if event source mapping is in state Disabled
  • cleanup asyncio thread pool on shutdown
  • make sync/async Lambda event sources configurable
  • add Firehose support for EventBridge targets
  • pass multivalue headers from API GW to Lambda
  • filter out Lambdas by region in ListFunctions
  • remove Python 2 tests in CI
  • add EventBridge schedule expression for HTTP subscribers
  • add UnsubscribeURL to SNS notification message

3. Bug Fixes

  • fix binary MessageAttribute for SNS->SQS
  • fix CF deploy issue with SNS resources, IAM role policy document
  • fix direct access to queue URLs with new SQS backend
  • fix handling of S3 multipart form upload via edge port
  • fix API GW response on DELETE Lambda integration
  • fix Terraform deletion of EC2 NAT Gateways
  • fix Windows host path for Lambda volume mounting
  • fix error responses for S3 Content-MD5 header
  • fix S3 bucket creation date for Java SDK v2
  • fix handling of S3 LocationConstraint on bucket creation
  • fix DynamoDB DeleteEventSourceMappings in case tableARN is None
  • fix format of S3 InvalidRange error response
  • fix edge mapping for CloudWatch, S3 HEAD requests, SQS requests
  • fix DynamoDB shard IDs
  • fix lower case for SQS->Lambda message attributes
  • fix S3 CORS policy with single origin
  • fix S3 storage class on multipart upload
  • fix S3 timestamp format
  • fix chunked encoding in S3 responses
  • fix passed parameters on API Gateway proxy resource method call
  • fix JSON safe dumping of bytes in API Gateway