Skip to content

Latest commit

 

History

History
94 lines (93 loc) · 46.4 KB

CHANGELOG.md

File metadata and controls

94 lines (93 loc) · 46.4 KB

LocalStack Change Log

  • v0.12.6: Convert Content-Length headers to upper-case as required by some S3 libs; fix logic for restoring DEEP_ARCHIVE objects in S3 API; fix incorrect response tags for Redshift ClusterSubnetGroups; add backdoor API to receive raw CloudWatch metrics; minor: add util function to kill process trees for cleanup/shutdown; minor refactoring of startup log messages; fix Java Lambda containers to listen on debug_port if specified in LAMBDA_JAVA_OPTS; fix millisecond conversion of ApproximateArrivalTimestamp in Kinesis GetRecords; support Lambda/Kinesis/Firehose targets for CloudWatch Log subscription filters; fix test credentials in DynamoDB request headers; fix region lookup for API Gateway REST API invocations; enhance CFN support for EC2::SecurityGroup, IAM::InstanceProfile, and KMS:Key; fix patching of API GW REST API attributes; minor fix for local Lambda mounts; fix CF attribute lookup for LambdaPermission; enhance CloudFormation support for API Gateway resources; fix Kinesis proxy listener to skip base64 decoding for byte message contents; minor CloudFormation fixes for S3 buckets; enhance CloudFormation logic for managed and inline IAM policies; add tagging support for CloudWatch metrics; fixed gzip encoding of payload on Lambda trigger from log subscription event; minor refactoring of Lambda API for better extensibility; fix DynamoDB listener to properly look up throttling configuration; add SES listener to add missing xmlns for error responses; 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; modify timestamp format of CloudWatch GetMetricData entries; minor: add util method to initialize REGIONS for RegionBackend; support EC2:Instance resources in CloudFormation; fix LastModified value for Lambda API to support Terraform 0.13 and 0.14; perform deletion of DynamoDB streams only if table exists; fix date format in SES for AWS Java SDK v2 compatibility; fix deployment of CloudFormation templates with IAM::InstanceProfile; add support for tags in CloudFormation stacks; minor fixes for CloudFormation and handling AWS auth headers; fix logic and integration test for Lambda destinations; 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; fix JSON encoding of payload from Lambda fallback invocation; fix error response on Firehose PutRecord for non-existing stream; minor refactoring of API Gateway invocation logic for better extensibility
  • v0.12.5: Major change: Rewrite CloudFormation to use an independent deployment mechanism; refactor CloudFormation implementation to use resource model classes; fix date format in SSM & SecretsManager for Java SDK compatibility; add missing CF resource props for DDB/SQS resources; add util functions to determine disk usage of files/folders; add proper signal handling in supervisord to support kubernetes deployment; fix removal of deleted resources from CF stack template; add SET_TERM_HANDLER config for Docker entrypoint; minor fixes for CF resource updates for IAM roles and SFN state machines; add default config for StepFunctions port to avoid clash with PORT env variable; fix infinite recursion when loading stack exports that reference other imports; fix response format for CloudFormation ListExports; add support for Lambda destinations to forward results to SQS; add persistence for secrets manager; add missing edge route mapping for SNS ConfirmSubscription; add message group id for events in SNS->SQS integration; 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; fix returning log output on Lambda errors; minor refactoring of region backend base class; fix yaml to JSON parsing of CF templates; recursively return all outputs for nested CloudFormation stacks; support S3 key names containing hashes; minor fix in date format parsing for S3 policy expiration dates; add support for CF functions select/split/base64; minor CF fixes for use with CDK; add gzip decoding to edge service to support zipped request payloads; add missing CF APIs: GetTemplate, GetTemplateSummary, ListImports; add method to configure CF deploy templates in resource class; refactor CloudFormation to use model classes; fix SNS message format for .NET SDK by removing null values; add ability to get an AppSync DataSource's physical id in CF; 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; extend create_zip_file util function to allow specifying target zip file; pass environment variables to Lambdas with "provided" runtime; fix escaping of policy JSON in ApiGateway resources using Terraform; run Lambda set_function_code in background to avoid network timeouts; sort S3 object versions by creation date; fix whitespaces in SQS redrive policy JSON; minor fix when cloning CF stack template metadata
  • v0.12.4: Use locking to run Lambdas with docker-reuse executor in sequence; use locking to fix concurrency during persistence restoration; skip MD5 checks on S3 multipart uploads; log content of outgoing emails in SES; fix absolute path for DATA_DIR when starting up DynamoDB process; extract Ref attribute for CloudFormation Sub attributes with "${resource}" syntax; minor fix in CloudFormation related to missing set_exports method in moto-ext; hardcode local hostname instead of using $HOSTNAME from the environment; make TEST_*_URL endpoints configurable in the environment; 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; use .Config.Entrypoint for more robust Docker entrypoint lookup; add gzip encoding of response payloads to edge service; refactor and enhance CF resolution of placeholders in Sub expressions; minor: add util function to run async coroutine in given event loop; fix logic to update Lambda function version based on content hash; fix CF issue updating state machine with FN ref in definition string; minor: add util function to construct XML response messages; fix resolving name refs when querying CF resource deployment state; minor refactoring in edge routing and CF FN::ImportValue resolution; add backdoor API to restart all processes inside the main container; remove encryptionType:NONE attribute in Kinesis records to avoid breaking .NET lambdas; minor fix in startup command for provided Lambda runtimes; add SNS target type for EventBridge API; 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; add integration for StepFunctions state machine executions in API Gateway; fix default account ID in SecretsManager ARN responses; migrate Helm charts into separate repo
  • v0.12.3: 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; fix /etc/hosts and Quart dependency for Centos 8; add Vagrant configuration for reproducible CentOS dev environments; add support for Lambda concurrency API; 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; fix edge route mapping for EventBridge requests from Go SDK; fix response structure for API GW Integration/Response; 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; fix passing of stack parameters/resources to CloudFormation changesets; fix default account ID in SecretsManager ARN responses; add edge forwarding rule for AWS AssumeRoleWithSAML action; release initial version of Helm chart; fix issue with resolving FN::Sub references in CF templates; ensure using correct test credentials for generating S3 presigned URLs; add missing Access-Control-Allow-Credentials CORS header to S3 responses; fix recreation of SNS topic with same name and different tags; improve Terraform tests; add PackageType property for Lambda functions; fix missing attributes in Lambda update-function-config; 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; fixed 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; 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; fix non-zero content length for gzipped 204 status
  • v0.12.2: Add proper CORS headers to S3 responses; expose SecretsManager secrets via SSM parameter references; fix parsing of Content-Disposition header in S3 multipart uploads; 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 test for S3 precondition check; add test for Terraform API Gateway resources; use distinct values for missing CloudFormation resource props; handle non-zero ReceiveMessageWaitTimeSeconds for SQS; refactor CF tests; add support for custom CI build commands via $CUSTOM_CMD; add README instructions for test credentials required for presigned URLs; fix Content-Length mismatch issue for HTTP server responses; add util function to create API GW Lambda event request context; fix hypercorn response body on 412 status code; upgrade base image and local Lambda executor to Java 11; allow adding multiple permission statements to Lambda function policy; minor: fix logic for missing authorizerId in API GW authorizers
  • v0.12.1: Fix missing module import for Windows; set correct Id attribute in S3 notification messages; enable setting custom authorizers on API GW resource methods; add log output listener for shell command thread; fix DynamoDB streams sequence number mismatch on GetRecords; add docs about using AWS CLI v2 from Docker image; updates in developer documentation and README (e.g., docker-compose version); support filtering of events by pattern using eventPattern; add CloudFormation support for Lambda::Permission; fix date format in CloudWatch responses; fix service name and NS URLs for XML service responses; add Terraform test for several resources (Lambdas, S3 bucket CORS integration); fixed gzip encoding for empty response content; refactor StepFunctions integration tests; pass $EDGE_PORT to Lambdas; add test for creating SFN State Machine with Choice operator; add test for creating SQS queue with attributes via CloudFormation
  • v0.12.0: Single edge port now stable for all APIs; publish SNS messages asynchronously; 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; minor refactoring of /graph endpoint; fix numeric timestamp format in Kinesis records required by Go SDK; add CloudWatch as a static dependency for Lambda API; disable custom Java Lambda executor and replace with default lambci mechanism; add CBOR encoding support for Kinesis API; raise error when attempting to update CF stack with unmodified template; create env INIT_SCRIPTS_PATH to specify path for init files in Docker; add more fine-grained DynamoDB error injection with read/write error probabilities; extract InputPath expression for notification messages to EventBus targets; fix missing attributes when adding IAM permission to Lambda function; fix case sensitivity for bucket names in S3 bucket notifications; add simple integration test for Terraform resources; fix debug port parser for Java Lambda executor to support different formats; add signature and expiry validation for S3 presigned URLs
  • v0.11.6: !!Breaking Change!! Starting with this release, all services are now exposed via the edge service (port 4566) only; fix boolean values in IAM responses; fix PutEvents API call with no source specified; add download URLs for Elasticsearch 7.7; minor refactoring in SFN test code; fix endless loop when S3 error document is missing; add integration test to verify MAP tasks in SFN state machines; refactor CF logic for API GW resources and empty/Null values; fix Python path when running Lambdas using local executor; refactor API Gateway utils and test code; refactor Lambda context handling; add LAMBDA_DOCKER_DNS config to utilise custom DNS server for Lambda containers; fix "TypeName" as optional param for Elasticsearch v7; 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; fix error response for requests to non-activated APIs; add localhost.localstack.cloud as alias to SSL cert; fix network_mode:bridge in docker-compose.yml; add Serverless integration tests to cover DynamoDB and Kinesis resources; add switch to disable Lambda handler validation; add Lambda request body length check; use edge as single entry point; performance improvements in plugin loading; forward requests in-memory instead of opening port per service
  • v0.11.5:
    • !!Breaking Change!!: 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.
    • Changes: 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; fix Lambda event to match SNS message ID; refactor util functions for AWS responses; update Lambda environment variables on CF stack update; fix default region in edge service to avoid region mismatches; concatenate Firehose batch records and combine them into single S3 objects; allow setting MAX_POOL_CONNECTIONS via environment variable; use paginator for DynamoDB list tables; fix EC2 creationTimestamp format; refactor logic to forward requests to S3_BACKEND; fix edge route for /graph endpoint; read name of main Docker container dynamically based on hostname; fix URL encoding of S3 object key names in SQS notification messages; fix edge route for S3 bucket HEAD requests; support gzipped S3 responses when requested via Accept-Encoding header; refactor CloudFormation deployments for API Gateway; add several retries to make integration tests more resilient; add DynamoDB error handling for query type ALL_ATTRIBUTES and projection type != ALL; fix posting to SQS on queue URL with trailing slash; use random available port for Lambda container server in Docker "host" network mode; fix CF/Serverless deployment for ApiGw APIs with missing root resource; add adaptive, unbounded thread pool to avoid deadlocks on concurrent requests; fix JSON serialization of event details on eventBridge put_events; return 304 if If-None-Match header is specified and S3 object ETag has not changed; adjust timestamp format for JSON-safe object conversion; cut out None from Delimiter tag in S3 responses; fix edge mapping for S3 PutObject requests; use a mock client to prevent moto Lambda objects from talking to Docker; fix CF deploy for API GW RestApi resource; add default values for DDB ProvisionedThroughput in CF; add test to trigger Java Lambda from SNS event source; 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; add test for DynamoDB stream triggering Lambda event source; add test to assert exception for DDB query on non-existing table; fix CF deployment of API Gateway integration and integration URI with empty path
  • v0.11.4: Add initial support for ACM API; build and push localstack-full image in CI, make light image the default; support client context passed to Node.js Lambda handler; increase max threads in thread pool to improve concurrency; support custom Lambda integration in API GW; fix HOSTNAME_EXTERNAL extraction to determine path-style addressing in S3; support "sms" as SNS subscriber protocol; support platform endpoints in SNS; fix RedrivePolicy for new SQS backend; fix triple logs in debug mode; fix format of Kinesis stream ARNs in CF; enhance implementation and tests for API GW HTTP/HTTP_PROXY support; support CF deletion of Lambda functions and IAM roles with inline policies; fix DynamoDB TransactWriteItems with ConditionCheck; add retries to fix intermittent SSL cert generation errors; fix DynamoDB stream MODIFY/INSERT event on UpdateItem for new item; fix DynamoDbStreams get-shardId-iterator with AT_SEQUENCE_NUMBER; fix proxy CORS headers; properly convert between Kinesis stream names and ARNs; fix generation of random password in SSM; add dummy AWS credentials to Lambda Docker containers; add test for VPN Gateway attachment.vpc-id filter; fix API key checks for API GW paths with path params; fix content-type in presigned S3 URLs; add support for pathPrefix in IAM list_users; fix SSL context creation error for multiple threads; 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 basic string functions in VLT templates; add tests for SQS FIFO queue with group/deduplication ID on multiple messages; fix invocation of destination Lambda for Logs subscription filters; add config option for DynamoDB Java heap size; add test for SQS DLQ when maxReceiveCount is reached; add missing region to EC2 getAccepterVpcInfo response; return raw response in edge proxy to fix gzip encoded S3 content; add test to trigger multiple SNS subscriptions in the presence of handler errors; fix adding multiple permissions to single Lambda function; return table name for DynamoDB table Ref in CF; make DDB stream creation asynchronous; replace ${filename} variable references in S3 presigned responses; fix HTML escaping of SQS message attributes; increase Quart server max content length; add SQS as target in EventBridge; fix shardId format for DDB Streams; add support for DynamoDB Global Tables; fix S3 Content-MD5 base64 checks; extend Java Lambda classpath; fix Docker port mapping for PORT_WEB_UI
  • v0.11.3: Switch to Quart Server for initial version of HTTP/2 support for API endpoints; move /health check endpoint to edge port; use moto instead of ElasticMQ as default backend for SQS; 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; fix CF deploy issue with SNS resources, IAM role policy document; fix direct access to queue URLs with new SQS backend; encode account ID in SQS queue URLs; add handling of query parameters in SNS requests; use JSON safe dumping of bytes in API Gateway; determine proper external port in SQS URLs; fix handling of S3 LocationConstraint on bucket creation; add missing Record values to Kinesis stream listener response; fix DynamoDB DeleteEventSourceMappings in case tableARN is None; fix format of S3 InvalidRange error response; support CF condition based on AccountId; fix error responses for S3 Content-MD5 header; fix S3 bucket creation date for Java SDK v2; 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; fix edge mapping for CloudWatch, S3 HEAD requests, SQS requests; fix DynamoDB shard IDs; fix lower case for SQS->Lambda message attributes; pass HTTP_PROXY to Lambda if configured; skip Lambda invocation if event source mapping is in state Disabled; fix S3 CORS policy with single origin; fix S3 storage class on multipart upload; fix passed parameters on API Gateway proxy resource method call; cleanup asyncio thread pool on shutdown; fix S3 timestamp format; support expiry in S3 multipart POST; support Elasticsearch snapshot repo; fix binary MessageAttribute for SNS->SQS; make sync/async Lambda event sources configurable; Fix chunked encoding in S3 responses; add Firehose support for EventBridge targets; pass multivalue headers from API GW to Lambda; add persistence support for SNS; add API Key validation in API GW; fix handling of S3 multipart form upload via edge port; fix API GW response on DELETE Lambda integration; support StepFunctions targets in scheduled event rules; filter out Lambdas by region in ListFunctions; fix Terraform deletion of EC2 NAT Gateways; add support for IAM SimulatePrincipalPolicy; remove Python 2 tests in CI; add EventBridge schedule expression for HTTP subscribers; fix Windows host path for Lambda volume mounting; add UnsubscribeURL to SNS notification message
  • v0.11.2: Use dynamic instead of hardcoded backend service ports; use random port for multiserver; add API Gateway integration with DynamoDB; add Lambda support for the dotnetcore3.1 runtime; handle kms_key_arn/vpc_config in Lambda models; add bucket existence checks for S3 operations; refactor CLI and infra startup; fix mapping of CloudFormation account IDs; add persistence support to SQS API; remove obsolete subprocess32 dependency; optimize travis build for light image; add name for non-existent Lambda in calls to LAMBDA_FALLBACK_URL; add tests for CW getMetricData, API GW CreateModels, S3 listing 1000+ objects; add tests for EC2 create_vpc_endpoint, S3 put/get bucket versioning; add integration test for CloudWatch put_metric data; add test case for SQS queue RedrivePolicy attribute; fix health check for HTTPS endpoints with self-signed certs; mock simple response for EC2 reserved instance APIs; fix error handling on SQS sending of empty message batch
  • v0.11.1: Add support for Lambdas triggered by scheduled event rules; lazily install and allow selection of specific Elasticsearch versions; add ability to return multi valued headers from Lambda - API GW integration; fix CF deployment for EventPattern attribute in Events::Rule; add CF support to update instances of IAM::Role; implement Events put_events with SQS and Lambda targets; delete notification configurations on S3 bucket deletion; fix default RoleName in CF dependent IAM roles; support S3 expiry for pre-signed URLs and objects; add metadata headers in S3 GET responses; fix edge request forwarding for public S3 URLs; add missing S3 response headers for bytes ranges and request IDs; add util class to fix account IDs in STS listener; support "exists" operator for SNS filter policy; fix IAM detach_role_policy and add missing managed policies; fix tagging support for ES domains; print version number when starting up; fix response content for IAM error messages; update startup log messages with new edge port; fix requesting SSM params with leading slashes; fix resolving CloudFormation refs when updating resource IDs; add support for tags on IAM CreateUser calls; fix data type conversions in SNS->SQS message attributes; fix API Gateway put_integration to avoid responseTemplates containing null values; add test cases for STS get_federation_token; fix Docker port mapping conflicts by avoiding overlaps; add CF test for empty event rules names; delete SFN state machines via CF; consider None data when stripping chunk signatures in S3 requests; fix DynamoDB behavior for ReturnValues on PutItem; support custom Lambda endpoint for StepFunctions; add simple integration test for Serverless deployment; check BatchSize in Lambda event source mappings; add CFN support for Events::Rule, S3::BucketPolicy, Logs::LogGroup, and ElasticSearch/SecretsManager/KinesisFirehose resources; fix case sensitivity for Connection keep-alive header; put util jars at end of classpath for local Java Lambdas; add persistence for SSM and SecretsManager, introduce PersistingProxyListener; skip persistence replay if an API is disabled; optimize image size; create stripped-down light version of Docker image with lazy loading of ES libs; add documentation for USE_LIGHT_IMAGE; add checks for HOST_TMP_FOLDER when running in Docker
  • v0.11.0: Add Edge service as central API entry point; fix content-type header for CloudWatch logs responses; add test to assert EntityAlreadyExistsException when recreating IAM role; add tests for deletion/re-creation of CloudFormation resources; add missing API Gateway template util functions; add test to assert DelaySeconds for Lambda SQS event source; add tests for S3 uploads with special content and large file sizes; enhance integration tests Secrets Manager API; add debug logs for publishing SNS messages; add support for Lambda FunctionEventInvokeConfig; fix Lambda deployment for mountCode=true; fix Lambda SQS event source for SendMessageBatch; implement tagging for DynamoDB tables; fix message attributes in SQS-Lambda integration; allow setting static debug port in LAMBDA_JAVA_OPTS; add LastUpdateStatus to Lambda response to fix terraform deployment
  • v0.10.9: Update Elasticsearch to 7.1; add support for SNS redrive policy for Lambda/SQS/HTTP events; add message polling mechanism for Lambda-SQS integration; add test for S3 list_object_versions with EncodingType parameter; fix error around ChangeSet deployment in CloudFormation; add CloudFormation support for SSM::Parameter, API Gateway MethodResponses; support passing of parameters to nested CF stacks; fix CF dependency resolution for stack update; fix downloading of CF template from S3 with custom hostname; change timestamp formatting (millis instead of micros); fix returning ETag for S3 GetObject calls with range parameter; handle empty Subject in SNS publish calls; fix send_raw_email for sending raw emails in SES; clear out sys.modules to resolve name clashes for multiple local python lambda functions; add SQS list-dead-letter-source-queues API; fix SecretsManager list-secrets to return same ARNs for secrets; suppress supervisor warning when running in docker as root; generate default Lambda FunctionName in CloudFormation; integrate S3 starter into multiserver to improve performance; Fix empty response for PutTargets in CloudWatch Events; fix forwarding of Lambda output to CloudWatch Logs; fix region in CF stack ARNs
  • v0.10.8: Make Lambda batch size configurable for Kinesis event source mappings; move Java sources into separate project; refactor CF dependency resolution loop; fix deployment of EC2 subnets with CidrIpv6; fix creation of SQS tags via CloudFormation; optimize plugin loading to speed up boot time; fix notifications for S3 uploads made with presigned POST requests; fix objectsize in S3 notification events; fix SNS subscription confirmation message to include signature details; configure Node.js Lambdas to skip SSL verification; add CF support for S3::BucketPolicy; fix returned attributes on ReturnValues=ALL_OLD for DynamoDB PutItem; fix CreationTime for CF stacks; apply LAMBDA_REMOVE_CONTAINERS config for docker-reuse Lambda executor; fix handler lookup for "provided" Lambda runtime; update exports on CF stack update; allow deleting a specific version of an object in S3; return SQS maxReceiveCount as integer; add basic /health check endpoint; return ConsumedCapacity for DynamoDB Query action; fix CloudWatch log streams lambda timestamp format; support static refs in CloudFormation Fn::Sub strings; fix RawMessageDelivery subscription values for SNS - SQS integration; support ExtendedS3DestinationConfiguration in Firehose streams; expose Java options for local Lambda executors; fix setting of empty SQS queue attribute values; add API to confirm SNS subscriptions; add persistence for Elasticsearch Service API calls; mark non-Docker Java LocalstackExtension as deprecated; prefix CloudWatch event file names with timestamps; remove None strings from SNS results; refactor resolution of CF resource name placeholders; fix CloudFormation support for IAM::Role; add ExportName to CloudFormation stack outputs; fix SNS tag listing to remove duplicate tags; fix regex for replacement of S3 ETag hashes; update ElasticMQ version, fix SQS tags API; refactor logic and use single file for persistence; resolve CloudFormation attributes starting with lower case; fix region for SQS queue ARNs in Lambda event source mappings; fix nextToken for CW Logs API; add support for Java11 Lambda runtime; adjust urllib3 pool size to allow more parallel HTTP requests; fix CreationDate format for S3 ListBuckets; fix forward URL prototol for S3 proxy; add test for S3 range header; make Lambdas triggered by SQS run asynchronously; fix S3 uploads with underscores in metadata; include latest Lambda regions from boto3; add ignoreDockerRunErrors JUnit Docker attribute; pull non-existing Docker image from JUnit runner; fix detection of absolute URLs in proxy paths
  • v0.10.7: Support dead letter queues for Lambdas and SQS queues; add support for nested CloudFormation stacks; allow "True" as value for SNS RawMessageDelivery; add mechanism to delete CF resources of deleted stacks; changed local-kms binary location to official upstream repository; fix S3 path layout for Firehose streams; add tagging support for CW events; skip unnecessary extraction of Java lambda archives; add test for SQS change_message_visibility; return CF stack events for deleted stacks; fix URL encoding when reading key name for S3 Range fix; fix content-type for S3 Range requests; increase Java docker timeout for image pulls; fix routes for DynamoDB shell; add Java test for S3 presigned object upload; fix S3 paginated requests; fix S3 delete-objects for non-existing keys; properly map different JSON data types in Lambda responses; fix CF Arn attribute for CloudWatch LogGroups and S3 buckets; fix tags on SNS topic creation; add content-length header in S3 success_action_status response; allow nested invocations of SFN state machines; fix deletion of S3 object tags; fix S3 results for max-keys=0; improve performance on Alpine/TravisCI; lazily start up Elasticsearch instance on ES domain creation; add DOCKER_LAMBDA_API_PORT config
  • v0.10.6: Fix MD5 hash of message attributes on SQS->Lambda integration; add LAMBDA_REMOVE_CONTAINERS config; bump moto to latest version; fix LocationConstraint markup in S3 responses; fix success_action_status for S3 POST Object; add UUIDs to CW events; update SSL certificate to new requirements in MacOS Catalina; fix Docker port mapping for JUnit test runner; add test for CW logs multi-byte message; fix S3 bucket name validation, auto-convert uppercase characters in bucket names; fix CF deployment of step functions; fix DOCKER_HOST_FROM_CONTAINER config for local exec; fix object ACLs for multipart uploads; add initial support for Kinesis stream consumers; enhance proxy to transparently accept both HTTP/HTTPS on the same port; support TemplateURL for CF ValidateTemplate; support Marker for S3 ListObjects; fix passing of metadata on S3 presigned URL put; allow trailing slashes in Elasticsearch API; refactor Java libs, make Docker the default JUnit executor; update ElasticMQ version; add initial support for KMS via local-kms; fix Terraform deployment for Lambdas; fix stack name in CloudFormation resource names; fix S3 bucket name checks for domain based addressing; add locking for SSL cert creation; support JARs in lib/ folder for Java lambdas; disable SSL verification for CF template URLs; add S3 website ErrorDocument emulation; fix return type of Lambda GetPolicy; fix API Gateway authorizer implementation; fix permission issue for cert files; fix non-JSON content types for API Gateway; fix DynamoDB error for Put on non-existing table; fix notification triggers on S3 presigned URL upload; add CloudFormation support for deployment of SAM resources; fix SNS FilterPolicy configuration; add kinesis/ListStreams API Gateway integration
  • v0.10.5: Various CloudFormation fixes: deployment of API GW method integrations, properly skip resource updates, Lambda SQS event source mapping, avoid duplicate resource creation, support for ApiGateway::GatewayResponse and Events::Rule, log groups for Lambdas; support adding Lambda policies; customize Docker registry for Lambda images; support multiple configurations in S3 notifications; fix encoding of non-ASCII results from API Gateway; allow docker-reuse to use mounted volumes; support presigned S3 URL upload notifications; fix lookup of Python Lambda handler in sub directories; upgrade kinesalite; fix duplicate CORS headers; fix mapping of Lambda versions and ARNs; fix SNS x-amz-sns-message-type header; send SNS confirmation message for HTTP(S) subscriptions; fix DynamoDB local libs for Docker Alpine; add CF support for SNS subscriptions; fix RecordId for firehose put-record-batch; fix SQS messages with multi-byte characters; avoid creating multiple SNS subscriptions; add .bat script and support running under Windows; fix S3 location constraint for CF
  • v0.10.4: Add checks for open UDP ports; fix S3 chunked encoding uploads; fix LatestStreamLabel; fix CORS headers for SQS/SNS; set Java lambda debug port only when needed; expose default region in a util function; fix MacOS tmp folder; clear tmp supervisord logs at container startup; fix signed header requests for S3; expose Web UI via HTTPS; add Timestamp to SNS messages; fix attributes for SQS queues addressed via URL
  • v0.10.3: Allow specifying data types for CF attributes; add API for service status and starting services at runtime; support NextShardIterator in DDB streams; add mock responses for S3 encryption and replication; fix rendering of resources in web UI; custom SQS queue attributes; fix Lambda docker command and imports; fix SQS queue physical ID in CF; allow proxy listener to define custom backend per request; support Lambda event body over stdin; exclude ingest-geoip ES module to optimize image size; skip checking MD5 on S3 copy; fix DynamoDB table ARN for CF; fix CF deployment of StepFunction activities; fix uploading of Java Lambda as JAR in ZIP; fix installing libs for plugins; added LAMBDA_JAVA_OPTS for Java Lambda debugging; bump Maven dependency versions; refactor Lambda API; fix boolean strings in CF templates; allow overriding AWS account id with TEST_AWS_ACCOUNT_ID; fix incorrect region for API GW resources created via CF; fix permissions for cache files in /tmp
  • v0.10.2: Fix logging issue with async Lambdas; fix kinesis records processing; add basic support for Ref in CloudFormation; fix ddb streams uuid generation; upgrade travis CI setup; fix DynamoDB error messages; cache server processes
  • v0.10.0: Lazy loading of libraries; fix handling of regions; add API multiserver; improve CPU profiling; fix ES xpack installation; add basic EventBridge support; refactor Lambda API and executor; add MessageAttributes on SNS payloads; tagging for SNS; ability to customize docker command
  • v0.9.6: Add API Gateway SQS proxy; fix command to push Docker image; fix Docker bridge IP configuration; fix SSL issue in dashboard infra; updates to README
  • v0.9.5: Reduce Docker image size by squashing; fix response body for presigned URL S3 PUT requests; fix CreateDate returned by IAM; fix account IDs for CF and SNS; fix topic checks for SMS using SNS; improve documentation around @LocalstackDockerProperties; add basic EC2 support; upgrade to ElasticSearch 6.7; set Last-Modified header in S3; preserve logic with uppercase event keys in Java; add support for nodejs 10.x Lambdas
  • v0.9.4: Fix ARNs in CloudFormation deployments; write stderr to file in supervisord; fix Lambda invocation times; fix canonicalization of service names when running in Docker; add support for @Nested in Junit5; add support for batch/transaction in DynamoDB; fix output buffering for subprocesses; assign unique ports under docker-reuse; check if topic ARN exists before publish
  • v0.9.3: Fix output buffering of child processes; new release of Java libs; add imageTag attribute for Java annotation
  • v0.9.2: Update to Python 3 in Dockerfile; preserve attributes when SNS Subscribe; fix event source mapping in Lambda; fix CORS ExposeHeaders; set Lambda timeout in secs; add tags support for Lambda/Firehose; add message attributes for SQS/Lambda; fix shard count support for Kinesis; fix port mappings for CloudFormation
  • v0.9.1: Define dependent and composite services in config; forward Lambda logs to CloudWatch Logs; add SQS event deserializing for Lambda; fix AWS_PROXY for JSON list payload; add START_WEB config parameter; return correct location for S3 multipart uploads; add support for Lambda custom runtime; fix account ID for IAM responses; fix using correct SSL cert; limit memory usage for Java processes; fix unicode encoding for SNS messages; allow using LOCALSTACK_ prefix in Docker environment variables; enable request forwarding for non-existing Lambdas; fix large downloads for S3; add API endpoint for dynamically updating config variables; fix CloudFormation stack update
  • v0.9.0: Enhance integration with Serverless; refactor CloudFormation implementation; add support for Step Functions, IAM, STS; fix CloudFormation integration; support mounting Lambda code locally; add docker-entrypoint-initaws.d dir for initializing resources; add S3Event Parser for Lambda; fix S3 chunk encoding; fix S3 multipart upload notification; add dotnetcore2.1 and ruby2.5 Lambda runtimes; fix issues with JDK 9; install ES plugins available in AWS
  • v0.8.10: Add kclpy to pip package; fix badges in README
  • v0.8.9: Replace moto-ext with upstream moto; fix SNS message attributes; fix swagger; make external SQS port configurable; support for SNS DeleteTopic; S3 notifications for multipart uploads; support requestContext in AWS_PROXY integration; update docs for SSL usage
  • v0.8.8: Support Docker network config for Lambda containers; support queryStringParameters for Lambda AWS_PROXY apigateway; add AWS SecretsManager service; add SQS/Lambda integration; add support for Firehose Kinesis source; add GetAlias to Lambda API; add function properties to LambdaContext for invocations; fix extraction of Java Lambda archives; check region headers for SNS; fix Lambda output buffering; fix S3 download of gzip; bump ElasticMQ to 0.14.5; fix Lambda response codes; fix syntax issues for Python 3.7
  • v0.8.7: Support .Net Core 2.0 and nodejs8.10 Lambdas; refactor Java libs and integrate with JUnit 5; support tags for ES domains; add CloudFormation support for SNS topics; fix kinesis error injection; fix override of ES_JAVA_OPTS; fix SQS CORS preflight response; fix S3 content md5 checks and Host header; fix ES startup issue; Bump elasticmq to 0.13.10; bump kinesalite version
  • v0.8.6: Fixes for Windows installation; bump ES to 6.2.0; support filter policy for SNS; upgrade kinesalite; refactor JUnit runner; support Lambda PutFunctionConcurrency and GetEventSourceMapping; fixes for Terraform; add golang support to Lambda; fix file permission issue in Java Lambda tests; fix S3 bucket notification config
  • v0.8.5: Fix DDB streams event type; implement CF Fn::GetAZs; async lambda for DDB events; fix S3 content-type; fix CF deployer for SQS; fix S3 ExposePorts; fix message subject in SNS; support for Firehose -> ES; pass external env vars to containers from Java; add mock for list-queue-tags; enhance docker test runner; fix Windows installation issues; new version of Java libs
  • v0.8.4: Fix pipenv dependency issue; Docker JUnit test runner; POJO type for Java Lambda RequestHandler; Java Lambda DynamoDB event; reuse Docker containers for Lambda invocations; API Gateway wildcard path segments; fix SNS RawMessageDelivery
  • v0.8.3: Fix DDB stream events for UPDATE operations; fix DDB streams sequence numbers; fix transfer-encoding for DDB; fix requests with missing content-length header; support non-ascii content in DynamoDB items; map external port for SQS queue URLs; default to LAMBDA_REMOTE_DOCKER=true if running in Docker; S3 lifecycle support; reduce Docker image size
  • v0.8.2: Fix S3 bucket notification configuration; CORS headers for API Gateway; fix >128k S3 multipart uploads; return valid ShardIDs in DynamoDB Streams; fix hardcoded "ddblocal" DynamoDB TableARN; import default service ports from localstack-client; fix S3 bucket policy response; Execute lambdas asynchronously if the source is a topic
  • v0.8.1: Improvements in Lambda API: publish-version, list-version, function aliases; use single map with Lambda function details; workaround for SQS .fifo queues; add test for S3 upload; initial support for SSM; fix regex to replace SQS queue URL hostnames; update linter (single quotes); use docker.for.mac.localhost to connect to LocalStack from Docker on Mac; fix b64 encoding for Java Lambdas; fix path of moto_server command
  • v0.8.0: Fix request data in GenericProxyHandler; add $PORT_WEB_UI and $HOSTNAME_EXTERNAL configs; API Gateway path parameters; enable flake8 linting; add config for service backend URLs; use ElasticMQ instead of moto for SQS; expose $LOCALSTACK_HOSTNAME; custom environment variable support for Lambda; improve error logging and installation for Java/JUnit; add support for S3 REST Object POST
  • v0.7.5: Fix issue with incomplete parallel downloads; bypass http_proxy for internal requests; use native Python code to unzip archives; download KCL client libs only for testing and not on pip install
  • v0.7.4: Refactor CLI and enable plugins; support unicode names for S3; fix SQS names containing a dot character; execute Java Lambda functions in Docker containers; fix DynamoDB error handling; update docs
  • v0.7.3: Extract proxy listeners into (sub-)classes; put java libs into a single "fat" jar; fix issue with non-daemonized threads; refactor code to start flask services
  • v0.7.2: Fix DATA_DIR config when running in Docker; fix Maven dependencies; return 'ConsumedCapacity' from DynamoDB get-item; use Queue ARN instead of URL for S3 bucket notifications
  • v0.7.1: Fix S3 API to GET bucket notifications; release Java artifacts to Maven Central; fix S3 file access from Spark; create DDB stream on UpdateTable; remove AUI dependency, optimize size of Docker image
  • v0.7.0: Support for Kinesis in CloudFormation; extend and integrate Java tests in CI; publish Docker image under new name; update READMEs and license agreements
  • v0.6.2: Major refactoring of installation process, lazy loading of dependencies
  • v0.6.1: Add CORS headers; platform compatibility fixes (remove shell commands and sh module); add CloudFormation validate-template; fix Lambda execution in Docker; basic domain handling in ES API; API Gateway authorizers
  • v0.6.0: Load services as plugins; fix service default ports; fix SQS->SNS and MD5 of message attributes; fix Host header for S3
  • v0.5.5: Enable SSL encryption for all service endpoints (USE_SSL config); create Docker base image; fix issue with DATA_DIR
  • v0.5.4: Remove hardcoded /tmp/ for Windows-compat.; update CLI and docs; fix S3/SNS notifications; disable Elasticsearch compression
  • v0.5.3: Add CloudFormation support for serverless / API Gateway deployments; fix installation via pypi; minor fix for Java (passing of environment variables)
  • v0.5.0: Extend DynamoDB Streams API; fix keep-alive connection for S3; fix deadlock in nested Lambda executions; add integration SNS->Lambda; CloudFormation serverless example; replace dynalite with DynamoDBLocal; support Lambda execution in remote Docker container; fix CloudWatch metrics for Lambda invocation errors
  • v0.4.3: Initial support for CloudWatch metrics (for Lambda functions); HTTP forwards for API Gateway; fix S3 message body signatures; download Lambda archive from S3 bucket; fix/extend ES tests
  • v0.4.2: Initial support for Java Lambda functions; CloudFormation deployments; API Gateway tests
  • v0.4.1: Python 3 compatibility; data persistence; add seq. numbers in Kinesis events; limit Elasticsearch memory
  • v0.4.0: Execute Lambda functions in Docker containers; CORS headers for S3
  • v0.3.11: Add Route53, SES, CloudFormation; DynamoDB fault injection; UI tweaks; refactor config
  • v0.3.10: Add initial support for S3 bucket notifications; fix subprocess32 installation
  • v0.3.9: Make services/ports configurable via $SERVICES; add tests for Firehose+S3
  • v0.3.8: Fix Elasticsearch via local bind and proxy; refactoring; improve error logging
  • v0.3.5: Fix lambda handler name; fix host name for S3 API; install web libs on pip install
  • v0.3.4: Fix file permissions in build; fix and add UI to Docker image; add stub of ES API
  • v0.3.3: Add version tags to Docker images
  • v0.3.2: Add support for Redshift API; code refactoring
  • v0.3.1: Add Dockerfile and push image to Docker Hub
  • v0.3.0: Add simple integration for JUnit; improve process signal handling
  • v0.2.11: Refactored the AWS assume role function
  • v0.2.10: Added AWS assume role functionality.
  • v0.2.9: Kinesis error response formatting
  • v0.2.7: Throw Kinesis errors randomly
  • v0.2.6: Decouple SNS/SQS: intercept SNS calls and forward to subscribed SQS queues
  • v0.2.5: Return error response from Kinesis if flag is set
  • v0.2.4: Allow Lambdas to use file (import from file instead of exec'ing)
  • v0.2.3: Improve Kinesis/KCL auto-checkpointing (leases in DDB)
  • v0.2.0: Speed up installation time by lazy loading libraries
  • v0.1.19: Pass shard_id in records sent from KCL process
  • v0.1.16: Minor restructuring and refactoring (create separate kinesis_util.py)
  • v0.1.14: Fix AWS tokens when creating Elasticsearch client
  • v0.1.11: Add startup/initialization notification for KCL process
  • v0.1.10: Bump version of amazon_kclpy to 1.4.1
  • v0.1.9: Add initial support for SQS/SNS
  • v0.1.8: Fix installation of JARs in amazon_kclpy if localstack is installed transitively
  • v0.1.7: Bump version of amazon_kclpy to 1.4.0
  • v0.1.6: Add travis-ci and coveralls configuration
  • v0.1.5: Refactor Elasticsearch utils; fix bug in method to delete all ES indexes
  • v0.1.4: Enhance logging; extend java KCL credentials provider (support STS assumed roles)
  • v0.1.2: Add configurable KCL log output
  • v0.1.0: Initial release