github floci-io/floci 1.5.20

13 hours ago

🎉 Highlights

This release brings CloudFormation SAM transform support and nested stack deployment, a major OpenSearch overhaul with 3.x support and a real ES 7.10 OSS image, KMS Grant APIs, and a long-requested global CORS filter for browser-based local development. Plus solid lifecycle fixes across Lambda, ECS, ECR, and EC2. Welcome to the 6 first-time contributors.

🧱 CloudFormation: SAM transforms + nested stacks

Two major CloudFormation gaps close in this release:

  • AWS::Serverless-2016-10-31 SAM transform — templates using the SAM macro are now expanded and deployed (#1012)
  • AWS::CloudFormation::Stack — nested stack deployment is implemented end-to-end, including destroy polling that briefly retains deleted stacks (#1052, #1029)

Together, these unblock a large class of real-world IaC stacks that combine SAM with nested CFN modules.

🔍 OpenSearch: 3.x + real ES 7.10 OSS

OpenSearch now supports engine version 3.x, validates engine versions, and uses a real ES 7.10 OSS image for legacy Elasticsearch domains (#1025). Round-trip of VPC, security, and encryption options plus per-family instance type metadata is also wired up (#1039), so Terraform/CDK domains with realistic configs round-trip cleanly.

🔐 KMS Grants

CreateGrant, ListGrants, RevokeGrant, RetireGrant, and ListRetirableGrants are now supported (#1073), enabling local testing of fine-grained KMS authorization flows.

🌐 Global CORS filter

Floci now ships a configurable global CORS filter, making browser-based local development against the emulator finally pleasant (#849). No more proxying through your dev server just to hit S3 from a frontend.

✨ New Features

  • feat(cloudformation): support AWS::Serverless-2016-10-31 SAM Transform by @dixitrathod16 in #1012
  • feat(opensearch): support OpenSearch 3.x, validate engine versions, real ES 7.10 OSS image by @ShubhamDX in #1025
  • feat(opensearch): round-trip VPC/security/encryption options and per-family instance type metadata by @ShubhamDX in #1039
  • feat(kms): add KMS Grant APIs by @nblomquist in #1073
  • feat: add global CORS filter for browser-based local development by @fredpena in #849

🐛 Bug Fixes

CloudFormation

  • fix(cloudformation): implement nested stack deployment via AWS::CloudFormation::Stack by @MattLish in #1052
  • fix(cloudformation): retain deleted stacks briefly for destroy polling by @shrimptails-f in #1029

S3

  • fix(s3): implement TaggingDirective=COPY default in CopyObject by @edjeffreys in #1049
  • fix(s3): omit whole-object checksum headers on range responses by @ahmd-soliman in #1040
  • fix(s3): clean up versioned file data on permanent version deletion by @edjeffreys in #1045

EC2

  • fix(ec2): fix DescribeNetworkInterfaces (#1031) by @nblomquist in #1035
  • fix(ec2): skip terminated instances in DescribeNetworkInterfaces by @nblomquist in #1074
  • fix(ec2): add volumeId to BlockDeviceMapping and disableApiStop / disableApiTermination fields by @thanhquang2004 in #1028

Lambda / ECS / ECR / ELBv2

  • fix(lambda): Lambda WarmPool timeout when stopping multiple containers by @steve-hb in #1055
  • fix(ecs): reconcile task lifecycle when container exits naturally by @hectorvent in #1078
  • fix(ecr): shutdown ECR registry manager on observable shutdown event by @steve-hb in #1063
  • fix(elbv2): offload Lambda invocation to a worker thread by @okinaka in #1034

API Gateway / EventBridge

  • fix(apigw-v2): populate pathParameters in Lambda proxy event for HTTP API integrations by @MattLish in #1067
  • fix(apigateway): resolve _user_request_ APIs created outside default region by @JonghyeokNam in #1032
  • fix(eventbridge): enforce $or negation in event pattern matching by @jhuiting in #1068

📚 Documentation

👋 New Contributors

A warm welcome to everyone making their first contribution to Floci:

Full Changelog: 1.5.19...1.5.20

Don't miss a new floci release

NewReleases is sending notifications on new releases.