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:
- [Our v1 release blog article](https://localstack.cloud/blog/2022-07-13-announcing-localstack-v1-general-availability/)
- https://discuss.localstack.cloud/
How to Migrate
- Update your startup configurations to the new *LocalStack volume* directory. Find out more about the concept [in our docs](https://docs.localstack.cloud/localstack/filesystem/).
- **Starting with docker-compose**:
Update your volumes mounts from
yaml
volumes:
- "${TMPDIR:-/tmp}/localstack:/tmp/localstack"
to
yaml
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’s 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 with `pip install --upgrade localstack`. The latest version of the CLI already uses the new *LocalStack volume* directory.
*The volume directory can be configured via the `LOCALSTACK_VOLUME_DIR`, which defaults to:
- Mac: `~/Library/Caches/localstack/volume`
- Linux: `~/.cache/localstack/volume`
- Windows: `%LOCALAPPDATA%/localstack/cache/volume`
- The old filesystem hierarchy (including `/tmp/localstack` mounts,`DATA_DIR`and `HOST_TMP_PATH`) can be enabled using `LEGACY_DIRECTORIES=1`
- If you mount a volume into `/tmp/localstack` instead of `/var/lib/localstack`, then LocalStack will automatically enable `LEGACY_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 run `pip install --upgrade "localstack>=1.0.0.dev"`
- Remove `DATA_DIR` which has been deprecated and will be ignored. Use `PERSISTENCE=1` and find your state files in your LocalStack volume in `state/`
- Remove `HOST_TMP_PATH`, which was previously necessary for `LAMBDA_EXECUTOR=docker` or `docker-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’ve 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](https://docs.localstack.cloud/tools/multi-account-setups/)
- 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 https://github.com/localstack/localstack/pull/6427
* add new log output formatting and asf trace logging by thrau in https://github.com/localstack/localstack/pull/6424
* set analytics api version to v1 by thrau in https://github.com/localstack/localstack/pull/6431
* collect parity metrics by steffyP in https://github.com/localstack/localstack/pull/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 https://github.com/localstack/localstack/pull/6433
* fix aws header list parsing by thrau in https://github.com/localstack/localstack/pull/6435
* Make SERVICES act as preload-list for EAGER_SERVICE_LOADING by dfangl in https://github.com/localstack/localstack/pull/6438
* Fixes 6405 Kms import key material ignores requested wrapping algo by srgg in https://github.com/localstack/localstack/pull/6407
* update readme header to new theme by thrau in https://github.com/localstack/localstack/pull/6446
New Contributors
* srgg made their first contribution in https://github.com/localstack/localstack/pull/6407
**Full Changelog**: https://github.com/localstack/localstack/compare/v0.14.5...v1.0.0