- unify service metadata behind a descriptor-backed catalog for enablement, routing, and storage lookups
- include
ec2andecsin enabled-service reporting and enforce disabled gating for ACM and ECS targeted requests - return protocol-correct JSON disabled responses for auth-only REST GETs instead of falling back to XML
- honor
floci.storage.services.acm.*overrides inStorageFactory - s3: honor canned object ACLs on PutObject, CopyObject, and multipart uploads
1.5.2 (2026-04-10)
- apigateway: implement v2 management api and cfn provisioning (#323) (30f9cd3)
- cloudwatch: implement tagging support for metrics and alarms (#320) (c426e80)
- dynamodb: handle null for Java AWS SDK v2 DynamoDB EnhancedClient correctly (#309) (8bac818)
- dynamodb: implement list_append with if_not_exists support (#317) (0eb908a)
- dynamodb: remove duplicate list_append handler that breaks nested expressions (#321) (92ba56b)
- rds: DescribeDBInstances returns empty results due to wrong XML element names and missing Filters support (#319) (473fece)
- s3: preserve leading slashes in object keys to prevent key collisions (#286) (c7d5c55)
- support LocalStack-compatible
_user_request_URL for API Gateway execution (#314) (55325ec)
- kinesis: add IncreaseStreamRetentionPeriod and DecreaseStreamRetentionPeriod (#305) (a770b61)
- kinesis: resolve stream name from StreamARN parameter (#304) (202d6eb)
- kms: add GetKeyRotationStatus, EnableKeyRotation, and DisableKeyRotation (#290) (1fa7ae7)
- s3: preserve Cache-Control header on PutObject, GetObject, HeadObject, and CopyObject (#313) (89a0744)
1.5.1 (2026-04-09)
- merge branch 'main' into release/1.x (b2075be)
- native image build failure due to SecureRandom in CognitoSrpHelper (e83f6d6)
1.5.0 (2026-04-09)
- append march x86-64-v2 (#303) (ddccbe0)
- DynamoDB DescribeTable returns Projection.NonKeyAttributes (#300) (552e71e)
- implement missing RDS resource identifiers and fix filtering (#231) (#302) (7af3600)
- Implement S3 Lambda notifications (#278) (04cbeb5)
- implement SRP-6a authentication for Cognito (#284) (#298) (7c6e6a6)
- merge branch 'main' into release/1.x (f32f4a9)
- register Xerces XML resource bundles for native image (#293) (#296) (0bad933)
- s3: use case-insensitive field lookup for presigned POST policy validation (#289) (3d2cc1c)
- s3: use ConfigProvider for runtime config lookup in S3VirtualHostFilter (#288) (944fddf)
- cloudformation: add AWS::Events::Rule provisioning support (#261) (c475e52)
- eventbridge: add InputTransformer support and S3 event notifications (#294) (9ca82e5), closes #140
- load persisted dynamodb streams on start up (#299) (ae49bfb)
1.4.0 (2026-04-08)
- add list_append support to DynamoDB update expressions (#277) (b723a9c)
- default shell executable to /bin/sh for Alpine compatibility (#241) (d02a1d9)
- drain warm pool containers on server shutdown (#274) (caabf46)
- dynamodb support add function multiple values (#263) (1ddc8a3)
- handle base64-encoded ACM cert imports (#248) (1391691)
- include ProvisionedThroughput in DynamoDB GSI responses (#273) (399a96d)
- issues 226 227 (#257) (81f1a01)
- make EmulatorLifecycle use more idiomatic Quarkus code (#190) (7ea586e)
- merge branch 'main' into release/1.x (1feec3a)
- removing log file (17841d2)
- resolve Cognito auth, token, and user lookup issues (#218 #220 #228 #229 #233 #234 #235) (#279) (5e8b39c)
- return 400 when encoded s3 copy source is malformed (#244) (f4f1752)
- s3: enforce presigned POST policy conditions (eq, starts-with, content-type) (#203) (cd1759a)
- s3: versioning IsTruncated, PublicAccessBlock, ListObjectsV2 pagination, K8s virtual host routing (#276) (6d5839b)
- add KMS GetKeyPolicy, PutKeyPolicy and fix CreateKey Tags (#258 #259 #269) (#280) (4724db9)
- add SES V2 REST JSON protocol support (#265) (e7ab687)
- lambda: add missing runtimes, fix handler validation, long path… (#256) (0ef6f87)
- scheduler: add EventBridge Scheduler service (#260) (48b6ca3)
- secretsmanager: add support for BatchGetSecretValue (#115) (#264) (37026b7)
- sfn: nested state machine execution and activity support (#254, #91) (#266) (18bee5b)
- use AWS-specific content type within the response of all JSON-based controllers (#240) (b4afdbb)
1.3.0 (2026-04-06)
- compilation issue (10edd2b)
- fall back to Docker bridge IP when host.docker.internal is unresolvable (#216) (b973b70)
- lambda: copy code to TASK_DIR for provided runtimes (#206) (0de7931)
- lambda: honour ReportBatchItemFailures in SQS ESM (#208) (55b2f29)
- lambda: support Code.S3Bucket + Code.S3Key in CreateFunction and UpdateFunctionCode (#219) (d4ebc8e)
- merge branch 'main' into release/1.x (82d3184)
- ses: add missing Result element to query protocol responses (#207) (80e2054)
- sns: make Subscribe idempotent for same topic+protocol+endpoint (#185) (858775c)
- add GlobalSecondaryIndexUpdates support in DynamoDB UpdateTable (#222) (4e6e953), closes #221
- add scheduled rules support for EventBridge Rules (#217) (e8c6440)
- dynamodb: add ScanFilter support for Scan operation (#175) (fe4ffd1)
- ec2: add EC2 service with 61 operations, integration tests, and docs (#213) (2859d25)
- ecs: adding ecs service (#209) (07a7a97)
- eventbridge: forward resources array and support resources pattern matching (#210) (6d49f09)
- lambda: add AddPermission, GetPolicy, ListTags, ListLayerVersions, etc endpoints (#223) (c79f02f)
- sfn: JSONata improvements, States.* intrinsics, DynamoDB ConditionExpression, StartSyncExecution (#205) (53dd7a6)
1.2.0 (2026-04-04)
- adding aws-cli in its own floci image hectorvent/floci:x.y.z-aws (#151) (aba9593)
- cognito: auto-generate sub, fix JWT sub claim, add AdminUserGlobalSignOut (#68) (#183) (9d6181c)
- cognito: enrich User Pool responses and implement MfaConfig stub (#198) (441d9f1)
- Cognito: OAuth/OIDC parity for RS256/JWKS, /oauth2/token, and OAuth app-client settings (#97) (a4af506)
- core: globally inject aws request-id headers for sdk compatibility (#146) (35e129d), closes #145
- defer startup hooks until HTTP server is ready (#157) (#159) (59c24c5)
- dynamodb: fix FilterExpression for BOOL types, List/Set contains, and nested attribute paths (#137) (453555a), closes #126
- lambda: copy function code to /var/runtime for provided runtimes (#114) (a5ad6cf)
- merge branch 'main' into release/1.x (0105e36)
- polish HealthController (#188) (084237d)
- remove private modifier on injected field (#186) (ebc0661)
- resolve CloudFormation Lambda Code.S3Key base64 decode error (#62) (78be523)
- resolve numeric ExpressionAttributeNames in DynamoDB expressions (#192) (d93296a)
- return stable cursor tokens in GetLogEvents to fix SDK pagination loop (#90) (#184) (7354663)
- s3: Evaluate S3 CORS against incoming HTTP Requests (#131) (e78c833)
- s3: list part for multipart upload (#164) (7253559)
- s3: persist Content-Encoding header on S3 objects (#57) (ff2f68d)
- s3: prevent S3VirtualHostFilter from hijacking non-S3 requests (#199) (59cdc3f)
- s3: resolve file/folder name collision on persistent filesystem (#134) (020a546)
- s3: return CommonPrefixes in ListObjects when delimiter is specified (#133) (845ac85)
- secretsmanager: return KmsKeyId in DescribeSecret and improve ListSecrets (#195) (1e44f39)
- sns: enforce FilterPolicy on message delivery (#53) (2f875d4), closes #49
- sns: honor RawMessageDelivery attribute for SQS subscriptions (#54) (b762bec)
- sns: pass messageDeduplicationId from FIFO topics to SQS FIFO queues (#171) (4529823)
- sqs: route queue URL path requests to SQS handler (#153) (6bbc9d9), closes #99 #17
- sqs: support binary message attributes and fix MD5OfMessageAttributes (#168) (5440ae8)
- sqs: translate Query-protocol error codes to JSON __type equivalents (#59) (7d6cf61)
- support DynamoDB Query BETWEEN and ScanIndexForward=false (#160) (cf2c705)
- wrong method call in test (665af53)
- add support of Cloudformation mapping and Fn::FindInMap function (#101) (eef6698)
- cloudwatch-logs: add ListTagsForResource, TagResource, and UntagResource support (#172) (835f8c6), closes #77
- cognito: add group management support (#149) (75bf3c3)
- health endpoint (#139) (fb42087)
- implement UploadPartCopy for S3 multipart uploads (#98) (d1b9a9c)
- lambda: implement ListVersionsByFunction API (#182) (#193) (ecf25d4)
- officially support Docker named volumes for Native images (#155) (4fc9398)
- s3: support Filter rules in PutBucketNotificationConfiguration (#178) (ef06fc3)
- support GenerateSecretString and Description for AWS::SecretsManager::Secret in CloudFormation (#176) (f994b95)
- support GSI and LSI in CloudFormation DynamoDB table provisioning (#125) (48bee44)
1.1.0 (2026-03-31)
- added versionId to S3 notifications for versioning enabled buckets. (#135) (3d67bc4)
- align S3 CreateBucket and HeadBucket region behavior with AWS (#75) (8380166)
- DynamoDB table creation compatibility with Terraform AWS provider v6 (#89) (7b87bf2)
- dynamodb: apply filter expressions in Query (#123) (8b6f4fa)
- dynamodb: respect
if_not_existsforupdate_item(#102) (8882a8e) - for no-such-key with non-ascii key (#112) (ab072cf)
- KMS: Allow arn and alias to encrypt (#69) (fa4e107)
- resolve compatibility test failures across multiple services (#109) (1377868)
- s3: allow upload up to 512MB by default. close #19 (#110) (3891232)
- s3: expose inMemory flag in test constructor to fix S3 disk-persistence tests (#136) (522b369)
- sns: add PublishBatch support to JSON protocol handler (543df05)
- Storage load after backend is created (#71) (c95dd10)
- storage: fix storage global config issue and memory s3 directory creation (b84a128)
- add ACM support (#21) (8a8d55d)
- add HOSTNAME_EXTERNAL support for multi-container Docker setups (#82) (20b40c1), closes #81
- add JSONata query language support for Step Functions (#84) (f82b370)
- add Kinesis ListShards operation (#61) (6ff8190)
- add opensearch service emulation (#85) (#132) (68b8ed8)
- add SES (Simple Email Service) emulation (#14) (9bf23d5)
- Adding/Fixing support for virtual hosts (#88) (26facf2)
- APIGW: add AWS integration type for API Gateway REST v1 (#108) (bb4f000)
- APIGW: OpenAPI/Swagger import, models, and request validation (#113) (d1d7ec3)
- docker image with awscli Closes: #66) (#95) (823770e)
- implement GetRandomPassword for Secrets Manager (#76) (#80) (c57d9eb)
- lifecycle: add support for startup and shutdown initialization hooks (#128) (7b2576f)
- s3: add conditional request headers (If-Match, If-None-Match, If-Modified-Since, If-Unmodified-Since) (#48) (66af545), closes #46
- s3: add presigned POST upload support (#120) (1e59f8d)
- s3: add Range header support for GetObject (#44) (b0f5ae2), closes #40
- SFN: add DynamoDB AWS SDK integration and complete optimized updateItem (#103) (4766a7e)
1.0.11 (2026-03-24)
1.0.10 (2026-03-24)
- return versionId in CompleteMultipartUpload response (#35) (6e8713d), closes hectorvent/floci#32
1.0.9 (2026-03-24)
1.0.8 (2026-03-24)
- return NoSuchVersion error for non-existent versionId (5576222)
1.0.7 (2026-03-24)
- s3 unit test error (0d77526)
1.0.6 (2026-03-24)
1.0.5 (2026-03-23)
1.0.4 (2026-03-20)
- adding build for development branch (ae15f4c)
- adding build for development branch (95cb2aa)
- docker build on native (525f106)
- rename github action (1fe1f6b)
- update workflow to download artifact into target (4c18934)
1.0.4-dev.3 (2026-03-17)
- update workflow to download artifact into target (4c18934)
1.0.4-dev.2 (2026-03-17)
- rename github action (1fe1f6b)
1.0.4-dev.1 (2026-03-17)
- adding build for development branch (ae15f4c)
- adding build for development branch (95cb2aa)
- docker build on native (525f106)
1.0.3-dev.1 (2026-03-17)
- adding build for development branch (ae15f4c)
- adding build for development branch (95cb2aa)
- improving native image compilation time (49c69db)
- update git pages config for the docs (286bef9)
1.0.2 (2026-03-15)
- docker built action not being triggered (a6b078f)
1.0.1 (2026-03-15)
- github action trigger (156ceb2)
- trigger build actions (e96cf42)