**1. New Features**
* add generic LocalStack plugin framework
* implement CLI using click, rich, and stevedore
* add Node.js/Python/java8.al2 runtime support for Thundra plugin
* add extensible class abstraction for Lambda event source listeners
* introduce Lambda executor plugin mechanism to hook in custom extensions at runtime
* add support for local execution of Go Lambda functions
* add support for generated secrets in CFN SecretsManager::Secret
* add initial version of Config Service API
**2. Enhancements**
* make some integration tests more lenient to environment changes
* add attributes to SQS messages from Lambda event source mapping
* add support for LS_LOG=trace-internal log level
* add check if DNS_ADDRESS is zero before starting the DNS server
* consider function alias when resolving Lambda function or layer ARN
* refactor Lambda executor methods to use InvocationContext as input param
* move pre- and post-create CFN actions from template_deployer to resource models
* extend util function for creating simple SSL proxy servers
* add plugin_spec to signatures of PluginLifecycleListener
* move API imports in infra.py to respective start methods
* add missing SSEDescription and TableId entries in DynamoDB DescribeTable calls
* add ability to specify --network via DOCKER_FLAGS config
* add util function to manually configure region for current request context
* enable sync/async SFN invocations in API Gateway integration
* remove obsolete patches for Logs metric_filters
* add test for deletion of SQS messages with changed visibility
* parse volume mount flag with regex to allow windows paths and additional arguments
* support `<apiId>.execute-api.*` hostnames for API Gateway invocation URLs
* distinguish polling and reactive mode in EventSourceListener
* add CloudFormation support for AWS::Events::EventBusPolicy
* create SQS queue policy for AWS::SQS::QueuePolicy CFN resource
* add support for DefinitionSubstitutions in CFN StateMachine resources
* add support for ApiGateway::DomainName and ::BasePathMapping CFN resources
* add get_physical_resource_id() for ApiGateway::Deployment
* add ability to specify SelfManagedEventSource for CFN Lambda::EventSourceMapping
* update kinesis-mock to 0.2.0, adding built-in multi-region support
* add startup logic to install prebuilt SSL cert if available
* update setup.py with additional information
* run Golang local test only if executed in Alpine
* run LocalStack tests against LocalStack Pro in Github Action
* rework some integration tests to make them more robust
* restructure Python requirements, Dockerfile and Makefile
* add `LAMBDA_CODE_EXTRACT_TIME` to configure max Lambda code extract wait time
* add default name for IAM::ManagedPolicy CFN resource
* aggregate valid regions accross all available partitions, to support regions like us-gov-*
* disable cli banner when running infra in docker
* move code in RESOURCE_TO_FUNCTION into service models, split into separate files
* add exception handling to EventBridge notifications if targets are unaccessible
* inject AWS_ENDPOINT_URL into Lambda container environment
* add plug points for code/config initializations in LambdaExecutorPlugin
* refactor `testutil.py` to deploy large Lambda zip files via S3
* add separate section with service provider configurations to README
* disable shell mode in run(..) util if cmd is passed as a list
* pass Cognito Identity info through HTTP headers, return `InvocationResult` with content instead of wrapping as Flask response for LAMBDA_FORWARD_URL
* add util functions get_edge_port_http() and is_provided_runtime(..)
* add localstack infra cli command for backwards compatibility
* add test assertion to verify value of maxReceiveCount in SQS RedrivePolicy
* extend logic to apply request/response templates in API GW messages
* add support for synchronous invocations of StepFunctions via API GW
* support `--add-host` argument in `LAMBDA_DOCKER_FLAGS`
* add simple integration tests for Support API
* add utility function to parse properties/INI config files
* add restart method for Kinesis and DynamoDB processes
* add util function to inject specific region into AWS Authorization header
* inject missing Lambda environment variables in local Lambda executor
* add resource id to auto-generated Lambda name in CFN stacks
* add warning message for LAMBDA_EXECUTOR=docker* if Docker is not accessible
* consolidate .coveragerc and .flake8 config int pyproject.toml
* minor: remove references to PORT_WEB_UI in docs
* minor: add util function to extract access_key_id from auth header, add type hints to utils
* minor: expose private Docker client methods as static methods in Docker Util class
**3. Bug Fixes**
* fix logic and add test for edge invocations from AWS Go SDK v2
* fix CFN list_stack_resources() for stacks with deleted resources
* fix ApiKeyRequired in API Gateway CloudFormation resources
* fix code updates of Lambda functions for Docker executor
* fix EC2/Logs tests after upstream changes
* fix raw message delivery attribute for SNS/SQS subscriptions
* fix documenting TMPDIR and HOST_TMP_FOLDER in docker-compose
* fix getting IP addresses of Docker containers with non-default networks
* fix template deployer and tests to retrieve updated PhysicalResourceId for EC2::Instance
* fix spaces in JSON events passed to custom runtime
* fix AWS::ApiGateway::Account regression
* fix argument error in exception handling in lambda_api.py
* fix adding tags to SQS queues when value is an empty string
* fix missing request parameters in CFN ApiGateway integration
* fix responding to S3 website requests with proper object content-type
* minor fix in regex to parse Docker volume flags
* restructure and clean up README.md