DocsAWS 101Blog
← Back to Blog

v1.3.15 — AWS Backup, real SFTP server, Step Functions versioning, EventBridge replay

April 26, 2026 · v1.3.15

1.3.15 is a feature-heavy release. AWS Backup arrives as a 21-op control plane, Transfer Family gets a real SFTP listener (not a stub), Step Functions picks up the alias and versioning APIs that Terraform v6 expects on every refresh, EventBridge finally dispatches the archive events it stores, and CloudFormation gains the missing ApiGatewayV2 provisioners that block CDK HTTP API deployments.

1. AWS Backup — full control plane

21 operations across vaults, plans, selections, jobs, and tagging. Multi-tenant via AccountScopedDict, persisted, and integrated with the Resource Groups Tagging API. Jobs return COMPLETED immediately — sufficient for Terraform aws_backup_* IaC validation; no real backup is performed.

aws --endpoint-url=http://localhost:4566 backup create-backup-vault \
    --backup-vault-name my-vault

aws --endpoint-url=http://localhost:4566 backup create-backup-plan \
    --backup-plan file://plan.json

Contributed by @AdigaAkhil.

2. Transfer Family — real SFTP server

An asyncssh-backed listener on :2222 (override with SFTP_PORT), backed by MiniStack's S3 state. Public-key auth resolves the user, server, and account in one shot — no username$serverid decoration. Real SFTP clients connect and perform real reads/writes against S3.

asyncssh lives under the [full] extra; the base install serves the control plane and skips the listener.

3. Step Functions — alias and versioning APIs

Two APIs that Terraform AWS provider v6 calls unconditionally on every refresh, and which previously failed with InvalidAction:

Both contributed by @mattwang44.

4. EventBridge archives — events are stored AND dispatched

Until now, archives stored events on PutEvents (incrementing EventCount) but StartReplay didn't actually re-dispatch them. 1.3.15 closes the loop: StartReplay re-dispatches the snapshot to the destination bus in a background thread, so the destination's current rules and targets fire just like a fresh PutEvents. Archives persist; replays surviving a restart are flipped to FAILED (the worker thread is gone, the replay can't safely resume).

Contributed by @AdigaAkhil.

5. CloudFormation — ApiGatewayV2 Integration + Route provisioners

The two missing pieces that block full CDK HTTP API deployments (HttpApi.addRoutes()) against MiniStack. Both support Fn::GetAtt (IntegrationId, RouteId) and idempotent delete. Contributed by @hiddengearz.

6. CloudWatch Logs Delivery API

The 2023-era replacement for subscription filters that vended-logs producers like Bedrock and AppSync use to ship logs to S3 / CWL / Firehose. 12 actions across DeliverySource / DeliveryDestination / Delivery:

Contributed by @mattwang44.

Also in this release

Upgrade

docker pull ministackorg/ministack:1.3.15
# or
docker pull ministackorg/ministack:latest

Full changelog: CHANGELOG.md.

Shipped by the MiniStack community. Contributions credited throughout. GitHub · r/ministack