Skip to content

1.5.31

Latest

Choose a tag to compare

@hectorvent hectorvent released this 07 Jul 05:51
f5d8748

🎉 Highlights

This release brings CloudWatch Logs Insights, adds RDS Data API for PostgreSQL, introduces RDS mock mode and read-only Cloud Control APIs, and lands substantial persistence and performance work. Lambda cold starts speed up with read-only code mounting, and multiple services join the durable-state family. Welcome to the 2 first-time contributors.

🔍 CloudWatch Logs Insights

Logs Insights query support lands (#1448), enabling local execution of the query DSL for log analysis workflows. This closes one of the more requested CloudWatch Logs gaps.

🐘 RDS Data API for PostgreSQL

The RDS Data API now supports PostgreSQL (#1720), extending the MySQL-backed Data API added in 1.5.25. Serverless SQL workflows against both engines now work locally.

🎭 RDS mock mode

Mock mode for RDS lets clusters and instances be created without Docker (#1655). Useful for CI environments that don't have Docker-in-Docker, or for fast unit-style tests where the real engine isn't needed.

🌐 Cloud Control API

list_resources from local services now works via the Cloud Control API (#1602), and read-only describe/list APIs for resource collection are broadly implemented (#1581). Combined with the Steampipe support in 1.5.28, tools that use unified resource-discovery APIs against AWS can now target Floci.

💾 Persistence expansion

Three more services join the durable-state family:

  • Elastic Beanstalk: applications, versions, and environments persist across restart (#1729)
  • Lambda: version counters and event-invoke configs persist (#1730)
  • API Gateway: API key tags persist, plus GetApiKey route (#1677)

🚀 Lambda cold-start performance

Lambda cold starts get meaningfully faster: function code now mounts from a read-only volume rather than being copied per cold start (#1673). Combined with the base64 round-trip removal in 1.5.30, Lambda's warm-up story is significantly improved.

🖥️ EC2: image and metadata catalogs

Two coordinated EC2 improvements from @jvanzyl:

  • Instance metadata catalog with architecture parity (#1596)
  • Registered images and snapshots support (#1601)

Real IaC that references specific instance types or manages custom AMIs behaves much closer to actual AWS.

📨 EventBridge to Firehose

EventBridge can now deliver events to Firehose delivery stream targets (#1739), closing an integration gap for event-streaming architectures that fan out to analytics pipelines.

🧩 Step Functions extensions

Two more Step Functions capabilities land:

  • Map ItemReader for S3-backed JSON datasets (#1588), enabling large-scale distributed map patterns
  • Qualified Lambda function ARNs resolved in lambda:invoke (#1660)

📚 Docs: auto-generated Supported Actions

Documentation now generates Supported Actions tables from handler source (#1641). Drift between docs and code is structurally addressed, so the service pages stay accurate as new actions land.

✨ New Features

CloudWatch / RDS Data / Cloud Control

  • feat(cloudwatch): add Logs Insights query support by @beytullah-gunduz in #1448
  • feat(rds-data): add Data API for PostgreSQL by @QAnders in #1720
  • feat(rds): add mock mode to create clusters and instances without Docker by @dnlopes in #1655
  • feat(cloudcontrol): list resources from local services by @jvanzyl in #1602
  • feat(read-apis): implement read-only describe / list APIs for resource collection by @Abhi011999 in #1581

EC2 / EventBridge / Scheduler / CloudFormation

  • feat(ec2): add instance metadata catalog and architecture parity by @jvanzyl in #1596
  • feat(ec2): support registered images and snapshots by @jvanzyl in #1601
  • feat(eventbridge): deliver events to Firehose delivery stream targets by @hectorvent in #1739
  • feat(scheduler): dispatch ECS targets to RunTask by @jvanzyl in #1733
  • feat(cloudformation): apply S3 Bucket CorsConfiguration by @dixitrathod16 in #1617

Step Functions / Secrets Manager

  • feat(stepfunctions): support Map ItemReader for S3-backed JSON datasets by @shrimptails-f in #1588
  • feat(secretsmanager): support Filters and pagination in BatchGetSecretValue by @hectorvent in #1737

API Gateway

  • feat(apigateway): persist API key tags and add GetApiKey route by @awuzi in #1677

Core / Docs

  • feat(core): claim wire protocols reactively per Smithy selection guide by @hectorvent in #1712
  • feat(docs): generate Supported Actions tables from handler source by @hampsterx in #1641

🐛 Bug Fixes

Persistence

  • fix(elasticbeanstalk): persist applications, versions, and environments across restart by @hectorvent in #1729
  • fix(lambda): persist version counters and event-invoke configs across restart by @hectorvent in #1730

RDS / Auto Scaling / EC2 / EKS

  • fix(rds): resolve tags by ARN resource type, not only DB instances by @dnlopes in #1649
  • fix(rds): improve Postgres proxy startup parity by @jvanzyl in #1599
  • fix(autoscaling): align active instance refresh behavior by @jvanzyl in #1598
  • fix(ec2): honor launch template default version updates by @jvanzyl in #1704
  • fix(eks): let pods pull images pushed to the Floci ECR registry by @hectorvent in #1762

SQS / S3 / Step Functions

  • fix(sqs): render Query-protocol errors as XML instead of leaking JSON by @hectorvent in #1732
  • fix(sqs): honor queue-level DelaySeconds for standard SQS queues by @Croway in #1567
  • fix(s3): fix CopyObject (issue #1560) by @kapoorp99 in #1670
  • fix(stepfunctions): resolve qualified Lambda function ARNs in lambda:invoke by @abanna in #1660

CloudWatch / EMR / Storage / Docker

  • fix(cloudwatch): return ResourceNotFound for SetAlarmState on missing alarm by @mvanhorn in #1621
  • fix(emr): return AWS client-error codes instead of 500 InternalServerError by @hectorvent in #1731
  • fix(storage): make computeIfAbsent atomic by @jvanzyl in #1699
  • fix(docker): isolate managed resource containers by @jvanzyl in #1703

🚀 Performance

  • perf(lambda): mount function code from a read-only volume instead of copying per cold start by @abanna in #1673

🧰 Tests

  • test(ec2): filter default VPC / subnet lookups to fix flaky describeDefaultVpc by @okinaka in #1726
  • chore(glue): fix GlueJsonHandlerEmptyListTest compile on main by @hectorvent in #1764

📚 Documentation

👋 New Contributors

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

Full Changelog: 1.5.30...1.5.31