🎉 Highlights
This release adds Amazon DocumentDB, brings a massive CloudFormation provisioning push covering nine resource types, lights up the floci-ui console on demand, and lands meaningful SSM, Auto Scaling, and Cognito improvements. Welcome to the 4 first-time contributors.
🆕 New service: Amazon DocumentDB
Amazon DocumentDB emulation lands (#1341), with docs included (#1386). Local testing of MongoDB-compatible workflows that depend on DocumentDB is now possible without standing up a real cluster.
🧱 CloudFormation: nine new resource types
Easily the biggest CloudFormation push to date. Templates can now provision:
- EC2 instances (#1366)
- EC2 VPC/subnet persistence so references survive restart (#1364)
- RDS resources (#1367)
- EKS clusters and node groups (#1368)
- CloudWatch Logs log groups (#1369)
- CloudWatch metric alarms (#1371)
- Auto Scaling groups and launch configurations (#1372)
- Kinesis data streams (#1370)
- Kinesis Firehose delivery streams (#1399)
Plus the Fn::GetAZs and Fn::Cidr intrinsic functions (#1365) and stage creation from inline StageName on AWS::ApiGateway::Deployment (#1400). Real-world IaC stacks combining VPCs, EKS, RDS, Auto Scaling, and observability now deploy end to end.
🖥️ floci-ui console on demand
Floci now serves a landing page and launches the floci-ui console on demand (#1313). The console runs as a Docker sidecar tied to Floci's own lifecycle, so there's no separate process to manage. The UI groups under the new services.floci namespace alongside DuckDB (#1397).
🛠️ SSM run commands in EC2 containers
SSM SendCommand execution in EC2 containers now works (#1387). Patch baseline APIs (DescribePatchBaselines, GetDefaultPatchBaseline) are also supported (#1404).
🔁 Auto Scaling maturity
Auto Scaling moves well beyond provisioning:
- Group reconciliation and refresh (#1393)
- Policy and mixed-instances parity preserved (#1437)
MixedInstancesPolicylaunch template validation (#1439)
🔐 Cognito alignment pass
A coordinated Cognito pass:
- User pool client config APIs aligned with AWS (#1360)
- Missing
UserPoolClientvalidation added (#1394) - Password recovery flow aligned with AWS (#1415)
📊 Service catalog correction
The supported-services count is now 58 (#1398), with documentation pages added for EMR, WAF v2, and CloudTrail to catch up to the recent service-addition cadence.
✨ New Features
New service
CloudFormation provisioning
- feat(cloudformation): provision EC2 instances by @hectorvent in #1366
- feat(cloudformation): provision RDS resources by @hectorvent in #1367
- feat(cloudformation): provision EKS clusters and node groups by @hectorvent in #1368
- feat(cloudformation): provision CloudWatch Logs log groups by @hectorvent in #1369
- feat(cloudformation): provision CloudWatch metric alarms by @hectorvent in #1371
- feat(cloudformation): provision Auto Scaling groups and launch configurations by @hectorvent in #1372
- feat(cloudformation): provision Kinesis data streams by @hectorvent in #1370
- feat(cloudformation): provision Kinesis Firehose delivery streams by @hectorvent in #1399
- feat(cloudformation): add
Fn::GetAZsandFn::Cidrintrinsics by @hectorvent in #1365
Console & UI
- feat(ui): serve a landing page and launch the floci-ui console on demand by @hectorvent in #1313
Service expansions
- feat(ssm): execute
SendCommandin EC2 containers by @jvanzyl in #1387 - feat(ssm): add
DescribePatchBaselinesandGetDefaultPatchBaselineby @hectorvent in #1404 - feat(autoscaling): support group reconciliation and refresh by @jvanzyl in #1393
- feat(autoscaling): preserve policy and mixed instances parity by @jvanzyl in #1437
- feat(ec2): support Spot Instance request actions by @mansiverma897993 in #1291
- feat(cognito): align user pool client config APIs with AWS behavior by @shrimptails-f in #1360
- feat(kms): add
EnableKeysupport by @jamesnetherton in #1381 - feat(aws): expand EC2 and RDS availability catalogs by @jvanzyl in #1391
- feat(iam): add IAM provisioning preflight support by @jvanzyl in #1250
🐛 Bug Fixes
CloudFormation
- fix(cloudformation): create stage from
AWS::ApiGateway::DeploymentinlineStageNameby @hectorvent in #1400 - fix(cloudformation): record
REVIEW_IN_PROGRESSevent on change-set creation by @vishalgoyal-home24 in #1431 - fix(ec2): persist EC2 state so CloudFormation references survive restart by @hectorvent in #1364
Auto Scaling / Cognito
- fix(autoscaling): validate
MixedInstancesPolicylaunch template by @hectorvent in #1439 - fix(cognito): add missing
UserPoolClientvalidation by @shrimptails-f in #1394 - fix(cognito): align password recovery flow with AWS behavior by @shrimptails-f in #1415
KMS / SES / Secrets Manager
- fix(kms): wrap RSA DIGEST signatures in PKCS#1
DigestInfoby @LorenzoGalassi in #1396 - fix(ses): canonicalize only the domain of suppression-list email addresses by @okinaka in #1350
- fix(secretsmanager): honor
ListSecretsMaxResultsandNextTokenpagination by @LorenzoGalassi in #1383
Lambda / SQS / RDS / RDS Data
- fix(lambda): return
{"status":"OK"}ack body from runtime invocation endpoints by @slang25 in #1418 - fix(lambda): redrive failed SQS ESM messages to the DLQ by @slang25 in #1419
- fix(sqs): message processing from non-default account by @alexjplant in #1406
- fix(rds): report DB parameter group attachments by @jvanzyl in #1392
- fix(rds-data): add native MySQL JDBC support by @devansh-jain-18 in #1352
EC2 / EventBridge Scheduler / API Gateway / ECS
- fix(ec2): enable embedded DNS for instances by @jvanzyl in #1390
- fix(scheduler): support
aws-sdkuniversal targets and FIFOMessageGroupIdby @LorenzoGalassi in #1344 - fix(apigateway): support SQS query-protocol integrations (path-style URI) by @stashev in #1385
- fix(ecs): reject negative
desiredCountinCreateServiceandUpdateServiceby @9046balaji in #1409
CloudWatch / ElastiCache / Core / Auth
- fix(cloudwatch): parse decimal epoch timestamps in JSON protocol handler by @jamesnetherton in #1388
- fix(elasticache): register
Endpointfor reflection soHybridStoragecan persist state by @hectorvent in #1403 - fix(core): return XML error for missing action and add volume action fallbacks by @9046balaji in #1348
- fix(config): make runtime defaults explicit by @jvanzyl in #1389
- fix(auth, s3): resolve account context from
X-Amz-Credentialquery param in presigned URLs by @alexjplant in #1413
🧰 Refactors & CI
- refactor(floci): regroup UI and DuckDB under
services.flociby @hectorvent in #1397 - ci: run focused native compatibility tests by @electrum in #1375
📚 Documentation
- docs: move brand assets into
docs/assetsand fix README image paths by @hectorvent in #1363 - docs: correct service count to 58 and add EMR, WAF v2, CloudTrail pages by @hectorvent in #1398
- docs(docdb): document DocumentDB service by @ahmedk20 in #1386
- docs(cloudformation): sync supported resource types and annotate stub actions by @hectorvent in #1405
👋 New Contributors
A warm welcome to everyone making their first contribution to Floci:
- @ahmedk20 in #1341
- @9046balaji in #1348
- @jamesnetherton in #1381
- @alexjplant in #1406
Full Changelog: 1.5.25...1.5.26