What's Changed
- chore: updating release strategy and actions by @hectorvent in #78
- feat: add ACM support by @cahna in #21
- fix: load storage after backend is created in StorageFactory by @GuanZitong in #71
- fix: align S3 CreateBucket and HeadBucket region behavior with AWS by @levan-giguashvili-lmnd in #75
- feat: implement GetRandomPassword for Secrets Manager (#76) by @danjee in #80
- docs: add slack community links to readme by @fredpena in #85
- fix(sns): add PublishBatch support to JSON protocol handler by @rpalcolea in #52
- feat: add HOSTNAME_EXTERNAL support for multi-container Docker setups by @justmeben in #82
- feat: add SES (Simple Email Service) emulation by @daphid4 in #14
- feat: Adding/Fixing support for virtual hosts by @ByronLudwig in #88
- feat: add JSONata query language support for Step Functions by @thegagne in #84
- fix: DynamoDB table creation compatibility with Terraform AWS provider v6 by @kurtmc in #89
- fix(KMS): Allow arn and alias to encrypt by @MasatoshiTada in #69
- ci: add compatibility tests workflow and fix JVM Dockerfile permissions by @kurtmc in #100
- docs(contributing): add canonical agent guide reference by @cristiandlahoz in #104
- ci: scope workflow triggers to relevant file changes by @cristiandlahoz in #106
- Add GitHub Contributors badge to README by @fredpena in #111
- feat(s3): add conditional request headers (If-Match, If-None-Match, If-Modified-Since, If-Unmodified-Since) by @rpalcolea in #48
- fix: resolve compatibility test failures across multiple services by @kurtmc in #109
- fix(s3): allow upload up to 512MB by default. close #19 by @hectorvent in #110
- docs(github): add pull request review instructions by @cristiandlahoz in #107
- fix(dynamodb): respect
if_not_existsforupdate_itemby @bruderj15 in #102 - feat(s3): add Range header support for GetObject by @rpalcolea in #44
- feat(SFN): add DynamoDB AWS SDK integration and complete optimized updateItem by @thegagne in #103
- feat: docker image with awscli Closes: #66) by @danjee in #95
- feat(lifecycle): add support for startup and shutdown initialization hooks by @cyrilschumacher in #128
- feat: add Kinesis ListShards operation by @balista-yu in #61
- feat(APIGW): OpenAPI/Swagger import, models, and request validation by @thegagne in #113
- fix(dynamodb): apply filter expressions in Query by @paseri3739 in #123
- fix: added versionId to S3 notifications for versioning enabled buckets. by @LDall in #135
- fix(s3): memory mode and storage defaults by @hectorvent in #117
- feat(s3): add presigned POST upload support by @Meemaw in #120
- feat(APIGW): add AWS integration type for REST v1 by @thegagne in #108
- feat: add OpenSearch Service emulation (#6) by @hectorvent in #132
- fix: for no-such-key with non-ascii key by @hectorvent in #112
- fix(s3): expose inMemory flag in test constructor to fix S3 by @juandiii in #136
- docs: add stars chart history to
README.mdby @cristiandlahoz in #142 - fix(core): inject x-amz-request-id headers globally to properly support SDK ResponseMetadata by @dixitrathod16 in #146
- fix(sns) Allow to publish SMS using phone-number by @MasatoshiTada in #138
- docs: expand community section with GitHub Discussions by @fredpena in #150
- fix(sns): enforce FilterPolicy on message delivery by @rpalcolea in #53
- fix(s3): persist Content-Encoding header on S3 objects by @rpalcolea in #57
- fix(sqs): translate Query-protocol error codes to JSON __type equivalents by @rpalcolea in #59
- docs: improve initialization hooks documentation by @cyrilschumacher in #144
- fix: adding aws-cli in its own floci image hectorvent/floci:x.y.z-aws by @hectorvent in #151
- Cognito OAuth/OIDC parity for RS256/JWKS, /oauth2/token, and OAuth app-client settings by @aquanow-jeffen in #97
- fix(sns): honor RawMessageDelivery attribute for SQS subscriptions by @rpalcolea in #54
- feat(cognito): add group management support by @Ruanrls in #149
- fix(sqs): route queue URL path requests to SQS handler by @hectorvent in #153
- fix(dynamodb): fix FilterExpression for BOOL types, List/Set contains, and nested attribute paths by @nakano16180 in #137
- feat: support GSI and LSI in CloudFormation DynamoDB table provisioning by @yoyo-real in #125
- feat: add support of Cloudformation mapping and Fn::FindInMap function by @grunxen in #101
- feat: implement UploadPartCopy for S3 multipart uploads by @vintitres in #98
- fix: defer startup hooks until HTTP server is ready by @Simi24 in #159
- feat: officially support Docker named volumes for Native images by @dixitrathod16 in #155
- Feat/cfn auto physical name generation by @yoyo-real in #163
- fix: support DynamoDB Query BETWEEN and ScanIndexForward=false by @fredpena in #160
- docs: fix initialization hooks Docker image names and AWS CLI instructions by @xingzihai in #169
- docs: clean up named volume examples in docker-compose docs by @herder in #161
- fix(s3): resolve file/folder name collision on persistent filesystem by @beytullah-gunduz in #134
- fix: resolve CloudFormation Lambda Code.S3Key base64 decode error by @rhrlima in #62
- fix(s3): list part for multipart upload by @hectorvent in #164
- fix(sqs): support binary message attributes and fix MD5OfMessageAttri… by @hectorvent in #168
- docs: add SES documentation by @cyrilschumacher in #181
- feat: health endpoint by @Meemaw in #139
- fix(sns): pass messageDeduplicationId from FIFO topics to SQS FIFO queues by @BSchneppe in #171
- fix(s3): return CommonPrefixes in ListObjects when delimiter is specified by @beytullah-gunduz in #133
- feat(s3): support Filter rules in PutBucketNotificationConfiguration by @fguery in #178
- fix(s3): Evaluate S3 CORS against incoming HTTP Requests by @bruderj15 in #131
- feat(cloudwatch-logs): add ListTagsForResource, TagResource, and UntagResource by @tmchow in #172
- Feature/ecr env var by @j0hnc0yne in #189
- Remove
privatemodifier on injected field by @geoand in #186 - feat: support GenerateSecretString and Description for AWS::SecretsManager::Secret in CloudFormation by @yoyo-real in #176
- fix(lambda): copy function code to /var/runtime for provided runtimes #114 by @hectorvent in #191
- Polish
HealthControllerby @geoand in #188 - fix: resolve numeric ExpressionAttributeNames in DynamoDB expressions by @fredpena in #192
- Cleanup quarkus dependencies by @geoand in #187
- fix(cognito): auto-generate sub, fix JWT sub claim, add AdminUserGlob… by @hectorvent in #183
- fix(cognito): enrich User Pool responses and implement MfaConfig stub (#177) by @hectorvent in #198
- fix: return stable cursor tokens in GetLogEvents to fix SDK paginatio… by @hectorvent in #184
- feat(lambda): implement ListVersionsByFunction API (#182) by @hectorvent in #193
- fix(sm): return KmsKeyId in DescribeSecret and improve ListSecrets by @hectorvent in #195
- fix(s3): prevent S3VirtualHostFilter from hijacking non-S3 requests by @hectorvent in #199
- docs: clarify that AI co-author trailers should not be used in commits by @naile in #200
- feat(dynamodb): add ScanFilter support for Scan operation by @naile in #175
- fix(sns): make Subscribe idempotent for same topic+protocol+endpoint by @naile in #185
- feat(sfn): JSONata improvements, States.* intrinsics, DynamoDB ConditionExpression, StartSyncExecution by @thegagne in #205
- refresh README badges and community links for floci-io and improve configuration table wording by @fredpena in #211
- feat(eventbridge): forward resources array and support resources pattern matching by @fl0rian-p in #210
- feat(ecs): adding ecs service by @hectorvent in #209
- fix(lambda): honour ReportBatchItemFailures in SQS ESM by @hectorvent in #208
- fix(ses): add missing Result element to query protocol responses by @hectorvent in #207
- fix(lambda): copy code to TASK_DIR for provided runtimes by @hectorvent in #206
- docs: update README configuration documentation links by @fredpena in #212
- docs: migrate docs GitHub references to floci-io by @fredpena in #214
- fix: fall back to Docker bridge IP when host.docker.internal is unresolvable by @cahna in #216
- feat: add scheduled rules support for EventBridge Rules by @Mahamed-Belkheir in #217
- feat: add GlobalSecondaryIndexUpdates support in DynamoDB UpdateTable by @balista-yu in #222
- fix(lambda): support Code.S3Bucket + Code.S3Key in CreateFunction and… by @hectorvent in #219
- feat(lambda): add AddPermission, GetPolicy, ListTags, ListLayerVersio… by @hectorvent in #223
- docs: document FLOCI_HOSTNAME for multi-container Docker Compose setups by @hectorvent in #224
- feat(ec2): add EC2 service with 61 operations, integration tests, and docs by @hectorvent in #213
- test: move compatibility tests into this repo by @cahna in #225
- feat: use AWS-specific content type within the response of all JSON-based controllers by @cfranzen in #240
- S3 presigned post policy conditions by @Meemaw in #203
- Make EmulatorLifecycle use more idiomatic Quarkus code by @geoand in #190
- fix: default shell executable to /bin/sh for Alpine compatibility by @mtpettyp in #241
- test: misc compatibility-tests cleanups by @cahna in #244
- feat(scheduler): add EventBridge Scheduler service by @okinaka in #260
- feat(lambda): add missing runtimes, fix handler validation, long path… by @hectorvent in #256
- feat(secretsmanager): add support for BatchGetSecretValue (#115) by @hectorvent in #264
- feat(sfn): nested state machine execution and activity support (#254,… by @hectorvent in #266
- Fix issues 226 227 by @edwintian in #257
- fix: handle base64-encoded ACM cert imports by @cahna in #248
- feat: add SES V2 REST JSON protocol support by @LouisGarret in #265
- Drain warm pool containers on server shutdown by @utafrali in #274
- fix: include ProvisionedThroughput in DynamoDB GSI responses by @utafrali in #273
- fix(s3): versioning IsTruncated, PublicAccessBlock, ListObjectsV2 pag… by @hectorvent in #276
- Fix/sns put timestamp in message envelope by @GitMarco in #268
- Fix/dynamodb support add function multiple values by @GitMarco in #263
- Add support for DynamoDB list_append function by @utafrali in #277
- fix: resolve Cognito auth, token, and user lookup issues (#218 #220 #… by @hectorvent in #279
- feat: add KMS GetKeyPolicy, PutKeyPolicy and fix CreateKey Tags (#258 #259 #269) by @hectorvent in #280
- fix(s3): use EmulatorConfig for FLOCI_HOSTNAME to fix native image crash by @Meemaw in #288
- fix(s3): use case-insensitive field lookup for presigned POST policy validation by @Meemaw in #289
- feat(cloudformation): add AWS::Events::Rule provisioning support by @zeka001 in #261
- fix: register Xerces XML resource bundles for native image (#293) by @hectorvent in #296
- feat(eventbridge): add InputTransformer support and S3 event notifications by @hectorvent in #294
- fix: implement SRP-6a authentication for Cognito (#284) by @hectorvent in #298
- fix: implement missing RDS resource identifiers and fix filtering (#231) by @hectorvent in #302
- fix: DynamoDB DescribeTable returns Projection.NonKeyAttributes by @bkindersleytrulioo in #300
- feat: load persisted dynamodb streams on start up by @bkindersleytrulioo in #299
- fix: Implement S3 Lambda notifications by @fredpena in #278
- fix: append march x86-64-v2 by @hectorvent in #303
- Fix(dynamoDB): handle null for Java AWS SDK v2 DynamoDB EnhancedClient correctly by @GitMarco in #309
- fix: support LocalStack-compatible user_request URL for API Gateway execution by @hectorvent in #314
- fix: implement list_append with if_not_exists support by @utafrali in #317
- feat(kinesis): add IncreaseStreamRetentionPeriod and DecreaseStreamRetentionPeriod by @hampsterx in #305
- feat(s3): preserve Cache-Control header on PutObject, GetObject, HeadObject, and CopyObject by @Meemaw in #313
- fix(dynamodb): remove duplicate list_append handler that breaks nested expressions by @hampsterx in #321
- feat(kinesis): resolve stream name from StreamARN parameter by @hampsterx in #304
- fix(cloudwatch): implement tagging support for metrics and alarms by @hectorvent in #320
- fix: RDS DescribeDBInstances returns empty results due to wrong XML names and missing Filters support by @hectorvent in #319
- feat(kms): add GetKeyRotationStatus, EnableKeyRotation, and DisableKeyRotation (#290) by @hampsterx in #322
- fix(s3): preserve leading slashes in object keys to prevent key colli… by @dixitrathod16 in #286
- fix(apigateway): implement v2 management api and cfn provisioning by @hectorvent in #323
New Contributors
- @GuanZitong made their first contribution in #71
- @danjee made their first contribution in #80
- @rpalcolea made their first contribution in #52
- @justmeben made their first contribution in #82
- @daphid4 made their first contribution in #14
- @thegagne made their first contribution in #84
- @kurtmc made their first contribution in #89
- @MasatoshiTada made their first contribution in #69
- @cristiandlahoz made their first contribution in #104
- @cyrilschumacher made their first contribution in #128
- @balista-yu made their first contribution in #61
- @paseri3739 made their first contribution in #123
- @LDall made their first contribution in #135
- @Meemaw made their first contribution in #120
- @dixitrathod16 made their first contribution in #146
- @aquanow-jeffen made their first contribution in #97
- @Ruanrls made their first contribution in #149
- @nakano16180 made their first contribution in #137
- @yoyo-real made their first contribution in #125
- @grunxen made their first contribution in #101
- @vintitres made their first contribution in #98
- @Simi24 made their first contribution in #159
- @xingzihai made their first contribution in #169
- @herder made their first contribution in #161
- @beytullah-gunduz made their first contribution in #134
- @rhrlima made their first contribution in #62
- @BSchneppe made their first contribution in #171
- @fguery made their first contribution in #178
- @tmchow made their first contribution in #172
- @j0hnc0yne made their first contribution in #189
- @geoand made their first contribution in #186
- @naile made their first contribution in #200
- @fl0rian-p made their first contribution in #210
- @Mahamed-Belkheir made their first contribution in #217
- @cfranzen made their first contribution in #240
- @mtpettyp made their first contribution in #241
- @okinaka made their first contribution in #260
- @edwintian made their first contribution in #257
- @LouisGarret made their first contribution in #265
- @utafrali made their first contribution in #274
- @GitMarco made their first contribution in #268
- @zeka001 made their first contribution in #261
- @bkindersleytrulioo made their first contribution in #300
- @hampsterx made their first contribution in #305
Full Changelog: 1.0.11...1.5.2