🎉 Highlights
This release adds AppSync Phase 4 with a full VTL engine, lands cross-account assumed-role routing, ships state reset and nuke endpoints, and brings substantial ECS conformance improvements alongside persistence work for Transcribe vocabularies. Welcome to first-time contributor @dnlopes.
🧩 AppSync Phase 4: VTL Engine
The AppSync VTL story completes its build-out across four releases (Phase 1 through Phase 4). This release lands a full VTL Engine (#1288), evaluating template logic end to end. Combined with the Phase 3 $util runtime library, AppSync resolver templates now execute with real semantics rather than fixture responses.
🔐 IAM: cross-account assumed-role credentials
A meaningful identity improvement: assumed-role credentials now route to the target account (#1549). Multi-account testing patterns that rely on sts:AssumeRole to switch contexts now behave correctly, which unlocks more realistic enterprise-style IAM workflows.
🔄 State reset and nuke endpoints
floci-core gains state reset and nuke endpoints (#1482). Useful for CI suites that want a known-clean starting state without restarting the container, and for development workflows where wiping state mid-session is faster than a full restart.
🚢 ECS conformance pass
A coordinated ECS improvement set:
- Task
portMappingshostPorthonored when launching containers (#1610) - Persisted model records registered for native-image reflection (#1606)
- Idempotent ECS resource deletion on CloudFormation stack delete (#1645)
💾 Persistence improvements
Two notable persistence fixes:
- Transcribe vocabularies now persist across restart (#1608)
- Persisted state flushed before container teardown on shutdown (#1607)
The shutdown-flush fix is particularly important: it closes a small but real window where state changes immediately before shutdown could be lost.
🌐 ELBv2: resolvable local ALB DNS names
ALB DNS names are now resolvable locally (#1492). This addresses a common Terraform / SDK pattern where the ALB DNS name returned by DescribeLoadBalancers needs to actually resolve for the next test step to connect.
✨ New Features
- feat(appsync): Phase 4 — VTL Engine by @AgustinBertagna in #1288
- feat(iam): route assumed-role credentials to the target account by @abanna in #1549
- feat(iam): add
AmazonRDSEnhancedMonitoringRolemanaged policy by @dnlopes in #1559 - feat(floci-core): implement state reset and nuke endpoints by @kapoorp99 in #1482
- feat(stepfunctions): add
aws-sdkCloudFormation / EC2 and S3PutObjectintegrations by @abanna in #1556 - feat(cognito): add Cognito overrides for client ID and secret by @mhayen in #1486
🐛 Bug Fixes
ECS / ELBv2
- fix(ecs): honor task
portMappingshostPortwhen launching containers by @hectorvent in #1610 - fix(ecs): register persisted model records for native-image reflection by @hectorvent in #1606
- fix(cloudformation): idempotent ECS resource deletion on stack delete by @hectorvent in #1645
- fix(elbv2): publish resolvable local ALB DNS names by @jvanzyl in #1492
Persistence
- fix(storage): flush persisted state before container teardown on shutdown by @hectorvent in #1607
- fix(transcribe): persist vocabularies across restart by @hectorvent in #1608
SES / SSM / IoT
- fix(ses): make
FromEmailAddressoptional for v2SendEmailby @okinaka in #1561 - fix(ssm): retain local service diagnostics on command failure by @jvanzyl in #1529
- fix(iot): deflake MQTT lazy-startup test, align 1.5.28 version, make compat runner executable by @hectorvent in #1580
🧰 Tests
- test(autoscaling): fix flaky mixed-policy override assertion by @hectorvent in #1609
📚 Documentation
- docs: add supported action description columns by @hampsterx in #1639
👋 New Contributors
A warm welcome making their first contribution to Floci:
Full Changelog: 1.5.28...1.5.29