π Highlights
This release adds two new services, AWS Cloud Map and CloudTrail, brings EKS managed node groups and Cognito verification codes, and lands a substantial Glue Data Catalog maturation pass. Streamed S3 range responses, storage-backed service state, and a LocalStack-compatible startup log line round out a release that's as much about depth as breadth. Welcome to the 5 first-time contributors.
π Two new services: Cloud Map + CloudTrail
- AWS Cloud Map (
servicediscovery): management API now supported (#1217), with docs (#1221), so service-discovery-based architectures can be exercised locally - CloudTrail: trail lifecycle support, create/start/stop/delete trails for audit-log workflows (#1256)
βΈοΈ EKS managed node groups
EKS gains full managed node group support: create, describe, list, and delete (#1226). Combined with the EKS-aware IAM policy seeding from 1.5.23 and host-reachable clusters from 1.5.22, real EKS provisioning flows now work end to end against Floci.
π Cognito verification code subsystem
A genuine verification-code subsystem lands: store, dispatcher, and SNS/SES inspection (#1249). Tests that exercise signup flows requiring email or SMS verification can now inspect the dispatched codes without intercepting real channels.
πͺ¨ Glue Data Catalog maturation
Six coordinated Glue improvements bring the Data Catalog closer to AWS parity:
- Catalog name normalization (#1208)
BatchDeleteTable(#1209)- Column parameters preserved (#1210)
UpdateDatabase(#1232)- Table versions archived (#1233)
- Database tags support (#1248)
- Plus compatibility tests for the catalog (#1222)
ποΈ Architectural improvements
Several internals get meaningful upgrades:
- Storage-backed maps for service state (#1243), better persistence and recovery characteristics
- S3 range responses now stream (#1255), much better memory profile for large object reads
- EC2 provisioning primitives (#1252)
- KMS key state and description operations (#1251)
- LocalStack-compatible
Ready.startup log line (#1284), so migrating CI workflows that wait on the LocalStack log marker just work
β¨ New Features
New services
- feat(cloudmap): add AWS Cloud Map (
servicediscovery) management API by @hectorvent in #1217 - feat(cloudtrail): add CloudTrail trail lifecycle support by @jvanzyl in #1256
Service expansions
- feat(eks): support managed node groups (create / describe / list / delete) by @hectorvent in #1226
- feat(cognito): add verification code subsystem (store, dispatcher, SNS/SES inspection) by @hectorvent in #1249
- feat(ses): publish events to Firehose, EventBridge, CloudWatch by @okinaka in #1188
- feat(athena): align
CreateWorkGroupwith AWS behavior by @shrimptails-f in #1174 - feat(athena): support
DeleteWorkGroupaction by @mansiverma897993 in #1213 - feat(elbv2): align
DescribeLoadBalancersavailability zones with AWS behavior by @shrimptails-f in #1206 - feat(ec2): auto-create default security group and main route table on
CreateVpc(closes #1091) by @kapoorp99 in #1177 - feat(glue): support database tags (closes #1130) by @nblomquist in #1248
- feat(cloudformation): provision
AWS::StepFunctions::StateMachineby @walker-luke in #1152
Architectural & parity
- feat(core): add storage-backed maps for service state by @jvanzyl in #1243
- feat(s3): stream S3 range responses by @jvanzyl in #1255
- feat(ec2): add provisioning primitives by @jvanzyl in #1252
- feat(kms): add KMS key state and description operations by @jvanzyl in #1251
- feat(parity): emit LocalStack-compatible
Ready.log line on startup by @TomDav28 in #1284
π Bug Fixes
Glue
- fix(glue): normalize Glue catalog names by @electrum in #1208
- fix(glue): support Glue
BatchDeleteTableby @electrum in #1209 - fix(glue): preserve Glue column parameters by @electrum in #1210
- fix(glue): support Glue
UpdateDatabaseby @electrum in #1232 - fix(glue): archive Glue table versions by @electrum in #1233
S3 / Lambda / EC2 / ELBv2
- fix(s3): reject relative S3 object keys by @electrum in #1235
- fix(lambda): normalize backslash ZIP path separators on extraction by @ousamabenyounes in #1215
- fix(elbv2): validate subnet VPC consistency for load balancers by @shrimptails-f in #1244
Athena / ElastiCache / MSK
- fix(athena): align
ListWorkGroupswith AWS behavior by @shrimptails-f in #1259 - fix(elasticache): return reachable Memcached configuration endpoints by @shrimptails-f in #1258
- fix(msk): poll correct Redpanda admin readiness endpoint by @silfabio in #1237
Cloud Map (native image)
- fix(cloudmap): initialize-at-run-time for GraalVM native image by @ousamabenyounes in #1271
- fix(cloudmap): avoid
SecureRandomin native image heap by @hectorvent in #1289 - chore(cloudmap): drop redundant native-image init-at-run-time arg by @hectorvent in #1290
Docker / Tests
- fix(docker): fall back to the default command when entrypoint argv is empty by @TomDav28 in #1283
- test(glue): add Glue catalog compatibility tests by @electrum in #1222
- test(cloudformation): stabilize SAM stack completion test by @jvanzyl in #1257
π Documentation
- docs(cloudmap): add AWS Cloud Map service docs, fix service count, add analytics by @hectorvent in #1221
- docs: adopt
AGENTS.mdstandard by @electrum in #1225 - docs: update references after
AGENT.mdβAGENTS.mdrename by @okinaka in #1272
π New Contributors
A warm welcome to everyone making their first contribution to Floci:
- @jvanzyl in #1243
- @walker-luke in #1152
- @TomDav28 in #1283
- @silfabio in #1237
- @mansiverma897993 in #1213
Full Changelog: 1.5.23...1.5.24