Releases: localstack/localstack
v1.0.4
What's Changed
- move tests out to community by @calvernaz in #6542
- remove region lookup by @calvernaz in #6560
- update Docker base image (python:3.10.5-slim-buster) digest to e7fce98 by @renovate in #6561
- use multiprocessing for scaffold.upgrade by @thrau in #6559
- add gateway response handler to set connection close header by @thrau in #6558
- add snapshot examples by @steffyP in #6569
- fix sns duplicated tags + validate against AWS by @bentsku in #6571
- Enhance parity for SSM logic and integration tests by @whummer in #6564
- add sqs snapshot tests for queue attributes and SSE by @thrau in #6572
- Parity metrics report by @steffyP in #6441
- Minor: add unit test for Velocity map.put function inside $util.qr by @whummer in #6581
- Make lambda states reflect internal state by @dfangl in #6575
- mark sqs test for issue #4287 as working by @thrau in #6578
- fix error serialization for default error members by @alexrashed in #6583
- refactored LogsAwsApiListener for subclassing by @steffyP in #6582
- add streaming types to ASF scaffold and APIs by @thrau in #6552
- Enhance parity for basic CloudFormation stack attributes by @whummer in #6584
- refactor sns tests and fifo topic validations by @bentsku in #6586
- Pin flask to 2.1.3 for compatibility with werkzeug version pin by @whummer in #6593
- rework SQS message delaying to calculate approximate number of messages delayed by @thrau in #6591
- fix SQS ChangeVisibilityTimeout operation by @thrau in #6573
- Resetting store bundles must clear all keys by @viren-nadkarni in #6594
- [SecretsManager] Fixed raising of incorrect error message when creating a secret staged for deletion. by @MEPalma in #6547
- Change error message for missing endpoints to reference PRO by @silv-io in #6579
- Using Stores in DynamoDB by @giograno in #6554
- Return stream name for CFn Firehose stream Ref, add snapshot test by @whummer in #6580
- fix create_queue to raise QueueAlreadyExists correctly by @thrau in #6117
- added subnet test cases by @macnev2013 in #6541
- Bump moto-ext to latest upstream changes by @whummer in #6517
- Fix idempotent calls for transaction writes by @giograno in #6596
- remove publish_invocation decorator from localstack status commands by @thrau in #6616
- Update ASF APIs by @localstack-bot in #6609
- update Docker base image (python:3.10.5-slim-buster) digest to e72f92b by @renovate in #6607
Full Changelog: v1.0.3...v1.0.4
v1.0.3
What's Changed
- fix pypi release of localstack not including entrypoints
- fix Kinesis CreateStream without shardCount by @alexrashed in #6543
- fix MixedCase Boolean conversion when tranforming to XML by @merowinger92 in #6525
- fix structure of S3 ASF serialized errors by @alexrashed in #6548
Full Changelog: v1.0.2...v1.0.3
v1.0.2
What's Changed
- Moving zip utilities by @giograno in #6490
- Changing ACM certificate fixture to handle regions as input parameters. by @taras-kobernyk-localstack in #6479
- docs: change v1 banner by @HarshCasper in #6483
- fix: print conserved docker logs if container is not running by @HarshCasper in #6477
- fix ASF / botocore CBOR decoding by @alexrashed in #6494
- Rework RegionBackend by @viren-nadkarni in #6444
- Upgrade JAR files to resolve some recent security vulnerabilities by @whummer in #6496
- Migrate to amazon_kclpy v2, remove obsolete custom patches by @whummer in #6502
- fix podman compatibility for list_containers in container utils by @hans-d in #6508
- Avoid shell expansion for zip utils by @giograno in #6497
- Pin quart and werkzeug versions to fix recent changes in req ctx stack, URL Map by @whummer in #6514
- Update README.md by @bish0polis in #6510
- Update ASF APIs by @localstack-bot in #6515
- fix Kinesis GetRecords on empty streams by @alexrashed in #6516
- fix type hint compatibility in aws_stack.py by @thrau in #6512
- Fix pytest log capture for integration tests by @dfangl in #6519
- Utility to restart Docker containers by @viren-nadkarni in #6489
- Fix Swagger spec imports of REST APIs with base paths by @whummer in #6520
- bump moto-ext version to 3.1.13 by @steffyP in #6524
- Minor: Skip upgrading JAR file if local version already matches by @whummer in #6534
- fix EC2 ASF error serialization and botocore parsing by @alexrashed in #6535
- added cloudwatch enable/disable actions by @steffyP in #6491
- Add timestamp to SES retrospection messages by @viren-nadkarni in #6526
- run tests with snapshot verify by default by @steffyP in #6518
New Contributors
- @taras-kobernyk-localstack made their first contribution in #6479
- @hans-d made their first contribution in #6508
- @bish0polis made their first contribution in #6510
Full Changelog: v1.0.1...v1.0.2
v1.0.1
What's Changed
- Remove python 3.6 compatibility mention from README, minor readme updates by @dfangl in #6452
- fix moto fallback dispatching on 404 errors by @alexrashed in #6449
- fix content based message deduplication with sqs fifo queues by @thrau in #6460
- fix integration tests against pro by @alexrashed in #6461
- remove
fix_return_consumed_capacity
, fixes #6437 by @brandonstubbs in #6439 - fix authorizer object for rest api by @calvernaz in #6436
- update Docker base image (python:3.10.5-slim-buster) digest to 1839c4f by @renovate in #6469
- Update ASF APIs by @localstack-bot in #6470
- added support for route53resolver group association by @macnev2013 in #6423
- fix CLA allowlist (renamve renovate-bot to renovate) by @alexrashed in #6472
- Fix volume dir path replacement for windows paths, use docker cmd client if not in docker by @dfangl in #6474
- add ec2 vpc terraform test cases by @macnev2013 in #6478
- Fix windows volume mount path for CLI localstack start by @dfangl in #6482
- Remove API_REGIONS cache, replace with in-memory lookup by @whummer in #6487
- Canonicalize Lambda policy name, initialize service provider in run_lambda(..) by @whummer in #6485
- fix ASF error serialization for shapes w/ members by @alexrashed in #6246
New Contributors
- @brandonstubbs made their first contribution in #6439
Full Changelog: v1.0.0...v1.0.1
v1.0.0
This major release of LocalStack marks the first milestone of LocalStack's mission to become the standard platform for local cloud development. We have spent the last year significantly re-shaping the codebase to make it easier to introduce and extend AWS services, improving parity with AWS and introducing mechanisms to monitor parity, as well as adding new pro features.
Several of these changes require a migration, and we have done our best to make the migration as smooth as possible. Please find more in the How to Migrate section.
Summary
Community Features and Major Changes
- New filesystem hierarchy with simplified configuration
- Full rollout of the AWS Server Framework (ASF)
- A framework for testing and reporting parity with AWS
- All new logging output and error reporting
- Remove deprecated persistence provider
Pro Features
- Cloud Pods experience
- Revamp of multi-account setups (experimental)
- Introducing Extensions (experimental)
- IAM enforcement for all services
- Detailed stack analytics
Further Reading
For more details of how things are changing, feel free to continue reading:
How to Migrate
- Update your startup configurations to the new LocalStack volume directory. Find out more about the concept in our docs.
-
Starting with docker-compose:
Update your volumes mounts fromvolumes: - "${TMPDIR:-/tmp}/localstack:/tmp/localstack"
to
volumes: - "${LOCALSTACK_VOLUME_DIR:-./volume}:/var/lib/localstack"
-
Starting with docker directly:
Update your volume mounts from
docker run -p 4566:4566 -v /tmp/localstack:/tmp/localstack ...
to
docker run -p 4566:4566 -v /path/to/volume:/var/lib/localstack ...
where/path/to/volume
should be something outside your host鈥檚 temp folder. We encourage the cache directory of your system, which is what the LocalStack CLI does. -
Starting with the CLI:
Just update to the latest version of the CLI withpip install --upgrade localstack
. The latest version of the CLI already uses the new LocalStack volume directory.
*The volume directory can be configured via theLOCALSTACK_VOLUME_DIR
, which defaults to:- Mac:
~/Library/Caches/localstack/volume
- Linux:
~/.cache/localstack/volume
- Windows:
%LOCALAPPDATA%/localstack/cache/volume
- Mac:
-
- The old filesystem hierarchy (including
/tmp/localstack
mounts,DATA_DIR
andHOST_TMP_PATH
) can be enabled usingLEGACY_DIRECTORIES=1
- If you mount a volume into
/tmp/localstack
instead of/var/lib/localstack
, then LocalStack will automatically enableLEGACY_DIRECTORIES=1
, and print a deprecation warning. - You currently cannot set the configure the new filesystem hierarchy with the CLI version
0.14.x
, in order to use the development version of the CLI, please runpip install --upgrade "localstack>=1.0.0.dev"
- Remove
DATA_DIR
which has been deprecated and will be ignored. UsePERSISTENCE=1
and find your state files in your LocalStack volume instate/
- Remove
HOST_TMP_PATH
, which was previously necessary forLAMBDA_EXECUTOR=docker
ordocker-reuse
. We now detect automatically the host path that is mounted into Lambda containers from your LocalStack volume mount. - When using docker-compose, remove the
network_mode: bridge
configuration unless you are sure that you need it. We now automatically detect the network mode for Lambda networking. - We鈥檝e rolled out a completely new framework for handling AWS requests, the AWS Server Framework (ASF). This has replaced the edge proxy, which was previously handling all HTTP requests. If you are experiencing problems, as a workaround you can try to enable the old edge proxy with
LEGACY_EDGE_PROXY=1
but this is deprecated and will be removed in the future. - Enable the experimental multi-accounts feature by setting
MULTI_ACCOUNTS=1
as part of your LocalStack config. New AWS accounts will be allocated based on configuration from the client side. See our docs for details - Replay-based persistence as been removed. To use our more mature persistence mechanism, please consider upgrading to LocalStack Pro.
Changelog
- docs: add v1 release banner by @HarshCasper in #6427
- add new log output formatting and asf trace logging by @thrau in #6424
- set analytics api version to v1 by @thrau in #6431
- collect parity metrics by @steffyP in #6305
- fix logging for CLI by @thrau in #6432
- set analytics api version to v1 by @thrau in #6431
- add new log output formatting and asf trace logging by @thrau in #6424
- fix parse_response to handle streaming responses by @thrau in #6415
- add response parser to handler chain by @thrau in #6406
- add deprecation path for LEGACY_DIRECTORIES=1 by @thrau in #6400
- update .dockerignore to new filesystem hierarchy by @thrau in #6399
- Remove deprecated docker-compose defaults by @dfangl in #6397
- implement localstack python extensions framework by @thrau in #6387
- implement HTTP proxy framework by @thrau in #6386
- fix None check in AccountIdEnricher by @thrau in #6385
- Fix host path replacement for lambda volume mounts by @dfangl in #6378
- fix apigw LambdaResponse with async invocation to return empty body by @thrau in #6349
- fix s3 delete_bucket compatibility with ASF gateway by @thrau in #6348
- fix pickling in multi-account region backend by @thrau in #6346
- Multi accounts feature flag by @viren-nadkarni in #6331
- Setting LS default user to root, support user permission boundary by @dfangl in #6324
- Default access key for legacy gateway by @viren-nadkarni in #6322
- collect parity metrics by @steffyP in #6305
- add new localstack filesystem hierarchy by @thrau in #6302
- fix access key id auth header extraction for different signature versions by @viren-nadkarni in #6292
- fix ASF integration of to_invocation_context by @thrau in #6284
- fix s3 VirtualHostRewriter to also restore RAW_URI by @thrau in #6276
- periodically emit analytcs events containing aggregated HTTP response metrics by @SwatsonCodes in #6269
- use asf gateway as default by @thrau in #6206
- make asf apigateway provider the default by @thrau in #6177
- Use Moto account ID resolver by @viren-nadkarni in #6104
- Cleanup replay-based persistence by @giograno in #6041
- fix python 3.7 compat of setup_hypercorn_logger for cli by @thrau in #6433
- fix aws header list parsing by @thrau in #6435
- Make SERVICES act as preload-list for EAGER_SERVICE_LOADING by @dfangl in #6438
- Fixes #6405 Kms import key material ignores requested wrapping algo by @srgg in #6407
- update readme header to new theme by @thrau in #6446
New Contributors
Full Changelog: v0.14.5...v1.0.0
LocalStack release v0.14.5
Summary
This release contains a number of improvements and fixes, as well as some new feature highlights:
- add initial support for nodejs16.x runtime by @pksunkara in #6200
- support binary content in DynamoDB Streams @giograno in #6371
- add plugin installation for OpenSearch 1.1+ by @alexrashed in #6395
- add validation of API Gateway Lambda integration responses by @pinzon in #6170
- enhance parity for SNS MessageAttributes consumed by AWS Java SDK by @bentsku in #6373
This is the last planned patch release before our upcoming major release 1.0.
What's Changed
- update Docker base image (python:3.10.5-slim-buster) digest to a2e9d4e by @renovate in #6350
- Update ASF APIs by @localstack-bot in #6351
- fix docker inspect health check log output by @alexrashed in #6338
- fix ASF API GW / ASF HTTP gateway headers by @alexrashed in #6354
- Add notification configuration id to event message by @silv-io in #6353
- Allow SES emails to be filterable by message ID by @viren-nadkarni in #6340
- add convenience GitHub workflows for release branches by @alexrashed in #6363
- Fix SizeBytes calculation for non serializable items by @giograno in #6365
- Add pip install to ensure latest dev releases are not overwritten by @whummer in #6359
- Refactored integration test by @giograno in #6347
- Add temporary support for nodejs16.x runtime by @pksunkara in #6200
- Add test for ES6 export syntax with NodeJS runtimes in Lambda by @dominikschubert in #6372
- fix GitHub action user (use PAT of @localstack-bot) by @alexrashed in #6376
- fix CI dep issues for newly introduced ext runtime deps by @alexrashed in #6388
- Minor fixes to mark DynamoDB test with binary data as aws_validated by @whummer in #6390
- fix SNS MessageAttributes parity with AWS by @bentsku in #6373
- fix missing (rest-)json error type header field by @alexrashed in #6370
- add plugin installation for opensearch 1.1+ by @alexrashed in #6395
- Update ASF APIs by @localstack-bot in #6394
- DynamoDB streaming binary content by @giograno in #6371
- minor: Add test dependency to deepdiff by @whummer in #6401
- Add fallback to default provider if configured provider is not available by @dfangl in #6391
- APIGW Lambda integration validations by @pinzon in #6170
- Refactor Events test by @pinzon in #6239
- terraform test execution in CI by @macnev2013 in #6393
- fix cryptography updates / remove pin by @alexrashed in #6402
- added support for firewall rule groups by @macnev2013 in #6366
- drop support for specific node, ruby & dotnet lambda runtime versions by @HarshCasper in #6403
- add exception metadata to ASF generated ServiceException by @thrau in #6409
- add logs for lambda executor startup failure and removing containers on shutdown by @dfangl in #6404
- fix lambda ASF API updates by @alexrashed in #6411
- fix asgi header extraction for h11 and h2 by @thrau in #6413
- Fix default content-type for APIGW-Lambda integration by @pinzon in #6408
- Install sqlite native libs for DynamoDB on OSX arm64 (M1) by @whummer in #6417
- remove terraform restore cache keys by @dfangl in #6418
- Validate KMS tests and fix issues by @silv-io in #6335
New Contributors
- @pksunkara made their first contribution in #6200
Full Changelog: v0.14.4...v0.14.5
LocalStack release v0.14.4
Summary
This release contains a wealth of parity improvements and fixes. It also includes a number of new features:
- Swagger and OpenAPI export for API Gateway REST APis #5935
- Cloudformation
EC2::Subnet
support #6162 - Cloudformation
AWS::OpenSearchService::Domain
support #6199 - A healthcheck for the Docker container #6297
- S3 TagObject notifications #6099
- A new HTTP gateway that we will roll out for 1.0 (can be enabled with
LEGACY_EDGE_PROXY=0
) #5243
This will potentially be the last release before our next major release.
What's Changed
- ASF protocol cleanup / small enhancements by @alexrashed in #6095
- improve SQS receipt handle error parity by @thrau in #6103
- Validations for Events.CreateConnection by @pinzon in #5964
- Slight refactoring to allow customizing DynamoDB server startup by @giograno in #6109
- Bump gson from 2.8.6 to 2.8.9 in /tests/integration/awslambda/functions/java/lambda_echo by @dependabot in #6112
- fix SQS dead letter queue delivery for fifo queues by @thrau in #6115
- fix SQS ReceiveMessage blocking behavior when MaxNumberOfMessages is set by @thrau in #6118
- Typo API Gateway Provider validateRequestPparameters by @nicoandra in #6113
- Draft: Add object tagging notification support by @threewordphrase in #6099
- update Docker base image (python:3.10.4-slim-buster) digest to 152f6ea by @renovate in #6120
- Add default UserName for AWS::IAM::User by @dominikschubert in #6122
- Use asyncio run_in_executor to prevent is_ssl_socket check from blocking by @dfangl in #6123
- Add hosts file to container to fix performance issues in windows container mode by @dfangl in #6129
- fix sqs query-api endpoint strategy routing by @thrau in #6145
- Fix references to AWS managed policies in SAM templates by @dominikschubert in #6148
- fix SQS ApproximateFirstReceiveTimestamp type by @thrau in #6147
- Fix cfn apigw domain tags by @pinzon in #6110
- Fix event message parameters priority by @pinzon in #5959
- Feature apigateway rest swagger export by @calvernaz in #5935
- Add test for catch/retry mechanism in StepFunctions by @dominikschubert in #6144
- Bump moto-ext to version 3.1.10 by @whummer in #6154
- Introduce BackendStateLifecycle abstraction by @giograno in #6114
- add SQS feature flag to raise QueueDeletedRecently errors by @thrau in #6140
- TransactWriteItem for binary data by @giograno in #6152
- update Docker base image (python:3.10.4-slim-buster) digest to 7e650ce by @renovate in #6164
- Update ASF APIs by @localstack-bot in #6165
- Update redhat image to python 3.10 by @dfangl in #6169
- add option to select test cases by fixture usage by @dominikschubert in #6175
- Fix CFN Events create rule without targets by @pinzon in #6061
- add apigateway restapi dispatcher to edge router by @thrau in #6040
- minor fix to allow authorization context permeate into lambda event by @calvernaz in #6174
- Fix SNS format when delivering to a DLQ by @bentsku in #6168
- Add error handling for localstack container startup in CLI by @dfangl in #6178
- Add CFn support for remaining EC2::Subnet properties by @whummer in #6162
- pin opensearch-py to version 1.1.0 by @steffyP in #6184
- Added explicit check for a bucket when deploying a stack by @giograno in #6171
- Kinesis - option for persistence path by @giograno in #6179
- fix apigateway delete_rest_api method by @thrau in #6185
- Add snapshot transformers by @dominikschubert in #6127
- add two more labels to 'exempt-issue-labels' for the stale-bot by @steffyP in #6189
- prepare s3 for ASF gateway by @thrau in #6191
- fix HypercornServer API and test to allow multiple instances by @thrau in #6190
- fix IAM exception handling by @thrau in #6192
- chore: remove chart release workflow by @HarshCasper in #6195
- switch to dev release versioning by @alexrashed in #6198
- implement ExclusiveStartShardId for DynamoDB Streams describe_stream by @bentsku in #6186
- test: invalidates #5395 by @dhilipsiva in #6159
- implement new HTTP request handling framework by @thrau in #5243
- fix and clean up sns tests to use httpserver fixture by @thrau in #6211
- fixed: route53 get-health-check response by @macnev2013 in #6205
- fix test_redrive_policy_http_subscription to correctly consume subscription notification by @thrau in #6219
- fix and clean up flaky cfn tests by @thrau in #6213
- fix concurrency of dynamodbstreams sequence number by @thrau in #6214
- update Docker base image (python:3.10.4-slim-buster) digest to b59fd1a by @renovate in #6208
- Update ASF APIs by @localstack-bot in #6220
- fix domain name validation in opensearch CreateDomain operation by @thrau in #6207
- Add
AWS::OpenSearchService::Domain
by @silv-io in #6199 - fix log subscription: return id as string by @steffyP in #6202
- Add tests which verify EventBridge rules behavior by @lukqw in #6124
- fix op router for new HTTP gateway requests with slashes by @alexrashed in #6223
- add websocket route to ApiInvocationContext by @calvernaz in #6230
- Fix CLI remove Literal type for 3.6 and 3.7 compatibility by @bentsku in #6231
- chore: remove banner image by @HarshCasper in #6235
- remove itest-sqs-provider test from CI pipeline by @thrau in #6236
- Initialize ws route by @calvernaz in #6241
- add composite handler for asf handler chain by @thrau in #6240
- add .env to .gitignore by @lukqw in #6232
- Exit pytest when encountering duplicate fixture names by default by @dominikschubert in #6244
- Removed duplicated SNSBackend by @giograno in #6243
- Add snapshot tests for s3 and cloudformation iam by @steffyP in #6222
- refactor state serializer api to use werkzeug request by @thrau in #6250
- add pluggable response handler for asf handler chain by @thrau in #6251
- chore: add localstack discussion page by @HarshCasper in #6249
- Allow TCP proxying with client certs without h11 by @dfangl in #6252
- minor fix to include request parameters while importing openapi by @calvernaz in #6255
- update Docker base image (python) tag to v3.10.5 by @renovate in #6259
- Update ASF APIs by @localstack-bot in #6260
- Test for IAM service linked role naming parity by @lukqw in #6182
- add dlq-list-sources by @baermat in #5915
- Add filtering for names provided with name_query for GetApiKeys method by @dfangl in #6261
- Migrate labels to their new names by @silv-io in ...
LocalStack release 0.14.3
LocalStack release v0.14.3
Summary
This LocalStack release features several improvements and new features in AWS services, a new CLI command, Python 3.10 support, and 10 new open source contributors!
AWS Services
- Support for Cloudwatch Alarms
- Improved streaming support for Lambdas which better testing of common real-time data pipelines. Read more on our blog.
- New standalone SQS provider with improved stability and performance
- Near complete implementation of the SQS Query API and new ways to create Queue URLs
- Support for .NET 6 Lambdas
- Improved OpenAPI support for API Gateway.
CLI command to update LocalStack
We have introduced a new CLI command that automatically updates LocalStack and its requirements to the latest version:
% localstack update --help
Usage: localstack update [OPTIONS] COMMAND [ARGS]...
Update LocalStack components
Options:
--help Show this message and exit.
Commands:
all Update all LocalStack components
docker-images Update container images LocalStack depends on
localstack-cli Update LocalStack CLI tools
Other notable updates
- LocalStack now runs on Python 3.10!
- Many services have now been successfully migrated to our new framework that handles AWS service requests, this dramatically improves parity and stability of services
- Deprecation note: The legacy record&replay based persistence mechanism (currently still available via
LEGACY_PERSISTENCE
) be entirely removed in the next release (as already previously announced in the 0.13.1 release).
What's Changed
Features
- add metric-alarm evaluation to Cloudwatch by @steffyP in #5897
- add on failure destination implementation and TRIM_HORIZON starting position for create-event-source-mapping by @steffyP and @SwatsonCodes in #5807
- Add localstack update command by @dfangl in #5955
- Upgrade python version to 3.10 by @dfangl in #5632
- Add dotnet 6 runtime by @yongliu-mdsol in #5815
- add SQS Query API by @thrau in #5928
- Rework ASF SQS provider for RegionBackend by @viren-nadkarni in #6016
- Apigateway OpenAPI import support for authorizers by @calvernaz in #6013
Enhancement
- LocationConstraint should be None for us-east-1 by @pinzon in #5765
- Unify Lambda Runtime using Runtime API by @dfangl in #5306
- Add newline after XML preamble in S3 responses for Serverless compatibility by @whummer in #5795
- Update ASF APIs by @localstack-bot in #5798
- Deletion of individual statments of a function policy by @pinzon in #5785
- Lambda Feature: Throw error when unzipped code exceeds maximum size (~256mb) by @RodrigoATorres in #5641
- Rework Lambda Integration tests to work against AWS as well as LocalStack by @dfangl in #5819
- Custom header x localstack authorization by @calvernaz in #5809
- Migrate DynamoDB to ASF by @whummer in #5796
- add cloudformation support for s3 bucket versioning by @dominikschubert in #5841
- adds authorizer object to lambda event by @calvernaz in #5837
- Added DYNAMODB_SHARE_DB to conf by @giograno in #5842
- Add !Ref support for KMS::Alias CloudFormation resources by @whummer in #5836
- Add additional awslocal commands for CI smoke tests by @whummer in #5845
- Update ASF APIs by @localstack-bot in #5838
- Update python to 3.8.13 by @dfangl in #5856
- add type hints to PaginatedList by @alexrashed in #5865
- [ASF] Simple Email Service migration by @viren-nadkarni in #5771
- Sns unsubscribe should send a confirmation by @pinzon in #5874
- Return successfully when attempting to delete a non-existent secret by @foxmulder900 in #5873
- Error message for PAY_PER_REQUEST billing mode by @giograno in #5877
- Update ASF APIs by @localstack-bot in #5881
- update Docker base image (python:3.8.13-slim-buster) digest to 36a1e0b by @renovate in #5880
- Add DynamoDB patch to enable more than 20 GSIs on tables by @whummer in #5883
- Upgrade moto-ext to version 3.1.6 by @whummer in #5882
- Migrate StepFunctions to ASF by @whummer in #5869
- update localstack wait command to use docker logs stream by @thrau in #5885
- get_handler_file_from_name when path contains periods by @tmbobbins in #5849
- Support nested EventBridge patterns, improve parity with AWS by @whummer in #5879
- rework localstack.http.Request object to use a dummy WSGi environment by @thrau in #5876
- add task scheduler utility by @thrau in #5857
- Refactor util to create S3 buckets with location constraints by @whummer in #5898
- Test MISSING Function with PartiQL by @giograno in #5899
- Bump moto-ext to 3.1.6.1 by @whummer in #5900
- queryStringParameters set to None when there are no GET parameters by @jops-wtakase in #5893
- Add javaagent loader for DynamoDB local process by @whummer in #5905
- add headers to dummy WSGI environment by @thrau in #5902
- Minor: Bump version of awscli for compabilibity with poetry by @whummer in #5912
- specify content type header with curl PUT request in docker-entrypoint.sh by @nao23 in #5903
- move functions to helper module by @calvernaz in #5925
- Add SES HTML body to match v2 API spec by @NickGrantX in #5920
- Add small utility for base64 URL safe decoding by @whummer in #5932
- Handling TableClass in DynamoDB by @giograno in #5923
- add decorator for adding routes to a Router by @thrau in #5927
- Remove explicit object inheritance by @dominikschubert in #5933
- Update ASF APIs by @localstack-bot in #5929
- Allow multiple bind addresses to be passed to hypercorn by @dfangl in #5937
- extend s3 virtual host addressing rules exemptions by @thrau in #5952
- Apigateway import test extension by @pinzon in #5953
- Ensure eventID is contained in DDB stream records by @whummer in #5960
- Feature log for fifo queue creating by @pinzon in #5962
- migrate cloudformation to ASF by @thrau in #5965
- simplify StsAwsApiListener JSON response modification by @thrau in #5968
- allow http.Request object to retain dashes and key casing by @thrau in #5969
- update Docker base image (python:3.8.13-slim-buster) digest to 8b65f13 by @renovate in #5971
- chore: add user survey over README by @HarshCasper in #5975
- DynamoDB Streams - code removal by @giograno in #5981
- Update README.md by @dijonkitchen in #5979
- Update ASF APIs by @localstack-bot in #5973
- Bump version of moto-ext to 3.1.8 by @whummer in htt...
LocalStack release 0.14.2
LocalStack release 0.14.2
Change log
1. New Features
- add ability to import keys into KMS
- enable and refactor rotation logic and version stages in SecretsManager
- support "Accept" header to switch response format
- add provider for S3Control service
2. Enhancements
- migrate services to ASF: EC2, KMS, Route53, STS
- skip installing -ext dependencies in CI tests
- lazily load subclasses for instance manager to enable plugin loading at runtime
- add missing UpdateDomainConfig for OpenSearch and Elasticsearch
- pin werkzeug version to fix Transfer-Encoding "chunked" on empty responses
- apply filter pattern for log subscriptions
- skip "online-only" tests, fix some tests
- use valid references for EC2 resources to fix CloudFormation tests
- enhance handling of KMS key pairs for SIGN_VERIFY keys
- add CloudFormation support for IAM::ServiceLinkedRole
- reintroduce Lambda log output str casting
- source API Gateway domain name and prefix from invocation context
- pin airspeed version and remove patch code
- add CloudFormation support for AWS::CDK::Metadata
- remove SERVICES from default docker-compose.yaml
- round DynamoDB ApproximateCreationDateTime to seconds
- add GetAtt support for AWS::EC2::VPC DefaultSecurityGroup and DefaultNetworkAcl
- minor update in patch decorator to allow multiple/composite patches of methods
3. Bug Fixes
- fix PaginatedList nextToken generation
- fix MessageGroupId for publish batch to SQS fifo queue
- fix elliptic curve key specs for KMS keys
- fix broken transitive imports of quart from jinja
- fix Terraform creation of EC2 Security Groups with default egress
- fix eager deserialization for 404 responses returned from Lambda
- fix CloudFormation Route53 deployment without ResourceRecords
- fix ACM DomainValidationOptions to support waiters
- fix Flask app routes for Lambda API
- fix broken patch for moto S3 is_delete_keys(..)
- fix CFn name autogeneration for SQS fifo queues
- fix CFn Route53 deployment
- fix CFn default name for Kinesis streams
- fix logs subscription filter
- fix query request parser for operations without input shape
- fix nested stack outputs in CloudFormation
- fix handling encoded
$
for default stage in API Gateway path regex - fix redirect to index file in S3 website
LocalStack release 0.14.1
LocalStack release 0.14.1
Change log
1. New Features
- push Docker images to public ECR registry on CI build
- add internal endpoint to output diagnostics data
- add ability to build, tag, and push images using Docker client
- add API Gateway SNS integration
- add OpenSearch destination to Firehose
- add support for CloudWatch set_alarm_state and trigger actions
2. Enhancements
- implement in-memory request dispatching to moto
- implement generic HTTP route dispatching
- migrate several services to ASF (ACM, CloudWatch, CloudWatch Logs, ConfigService, DynamoDB Streams, Redshift, ResourceGroups, SecretsManager, SSM, Support, SWF)
- migrate from requirements.txt/setup.py to setup.cfg
- CircleCI pipeline parallelization
- add GitHub action to automatically update ASF APIs
- migrate resourcegroupstagging API to ASF
- split up Docker client, remove obsolete
docker
client binary from image - refactor handling of API Gateway request/response templates
- introduce CODEOWNERS file for code ownership
- add timeout to status services cli command
- add DynamoDB Streams integration for PartiQL query updates
- add ability to extract cookies from API Gateway invocation context
- update generated ASF APIs to latest version
- add ability to specify timeout and max content length for HTTP server
- improve cli startup performance
- refactor utils imports in utils and services packages
- patch moto Lambda backend to access LocalStack Lambdas directly
- add ability to extract tgz archives via download_and_extract utility
- allow specifying working directory when running Docker exec
- implement regex rules for the http Router
- migrate from localstack-plugin-loader to plux
- add support for #define function in API Gateway velocity templates
- add a GHA workflow to track first-time pull request and issue creators
- rework docker capabilities, remove intermediate containers after building images in docker-sdk client
- add optimizing and sorting of imports to ASF scaffold
- add support for response templates in API Gateway MOCK responses
- add mock ECR CFN resource and integration test for CDK bootstrap template v10
- add flag to call_moto to exclude the ResponseMetadata
- upgrade airspeed dependency and remove custom patches
- add helpers to unpause Docker containers
- reorganize utility package
- add deep copy of handler results to avoid unwanted mutations in parser
- add error check for fifo attribute when creating SQS fifo queues
- update renovatebot config to ignore Dockerfile.rh
- add ApiGateway S3 integration using action name
- add method to allow calling moto with a new request in request dispatcher
- add resolve_hostname(..) util function, refactor some utils into sub-modules
- improve performance of localstack status command
- remove
six
library from dependencies - add failsafe with try/except for creating log streams to guard against potential duplicates
- add the ability to snapshot running Docker containers
- make autocreating log groups optional
- allow service restart in ServiceContainer from STOPPED state
- add support for DefinitionS3Location in StepFunctions::StateMachine model
- remove superfluous CloudWatch response processing
- add PaginatedList for paginating and filtering response lists
- add default entries in CloudFormation stack template dict to avoid KeyError
- docs: refactor third party software tools docs and remove announcements in README
- refactor some tests to pytest (e.g., Lambda, EC2)
- configure test coverage exclusions
- make Lambda output truncation configurable
3. Bug Fixes
- fix ASF parser and serializer issues
- fix custom error responses from lambda when handler throws an exception
- fix moto dispatching for trailing slashes and response headers
- fix OpenSearch data dir issue that would block startup in pro
- fix encoding problem for AlarmDescription in put-metric-alarm
- fix making typing_extensions import dependent on python version
- fix ApiGateway v2 path-base style requests without stages
- fix several ASF parser, serializer, and scaffold issues
- fix replacement of AWS::NoValue, add default props for Elasticsearch::Domain resources
- fix service provider configuration override
- fix edge route mapping for STS AssumeRole
- fix API Gateway integration with Kinesis
- fix linting issues by pinning flake8-black
- fix python 3.7 compatibility with TypedDict for cli
- fix ASF xml-rest parser location- and payload-trait handling
- fix CloudFormation stack class to return latest raw template if change sets are present
- fix OpenSearch cluster shutdown in tests
- fix parameter for StateMachine type in CFN model
- fix uncapped recursion bug in parser