🎉 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
GetApiKeyroute (#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:
MapItemReaderfor 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
RunTaskby @jvanzyl in #1733 - feat(cloudformation): apply S3 Bucket
CorsConfigurationby @dixitrathod16 in #1617
Step Functions / Secrets Manager
- feat(stepfunctions): support
MapItemReaderfor S3-backed JSON datasets by @shrimptails-f in #1588 - feat(secretsmanager): support
Filtersand pagination inBatchGetSecretValueby @hectorvent in #1737
API Gateway
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
DelaySecondsfor 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:invokeby @abanna in #1660
CloudWatch / EMR / Storage / Docker
- fix(cloudwatch): return
ResourceNotFoundforSetAlarmStateon missing alarm by @mvanhorn in #1621 - fix(emr): return AWS client-error codes instead of 500
InternalServerErrorby @hectorvent in #1731 - fix(storage): make
computeIfAbsentatomic 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
describeDefaultVpcby @okinaka in #1726 - chore(glue): fix
GlueJsonHandlerEmptyListTestcompile on main by @hectorvent in #1764
📚 Documentation
- docs: adding sponsor section by @hectorvent in #1724
👋 New Contributors
A warm welcome to everyone making their first contribution to Floci:
Full Changelog: 1.5.30...1.5.31