github ministackorg/ministack v1.3.15

10 hours ago

What's Changed

New Contributors

[1.3.15] — 2026-04-26

Added

  • AWS Backup service — 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. Contributed by @AdigaAkhil.
  • EventBridge archive event storage and replay dispatchPutEvents writes matching events to active archives (incrementing EventCount), and StartReplay re-dispatches the snapshot to the destination bus in a background thread so the destination's current rules and targets fire. Archives persist; replays surviving a restart are flipped to FAILED. Closes the long-standing "stored but not dispatched" gap. Contributed by @AdigaAkhil.
  • Transfer Family — real SFTP serverasyncssh-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. SFTP_PORT_PER_SERVER=1 allocates one port per server from SFTP_BASE_PORT (default 2300). HomeDirectoryType=PATH and LOGICAL both honored. Host key persists when PERSIST_STATE=1. Adds StartServer / StopServer (OFFLINE servers refuse auth). asyncssh lives under the [full] extra; the base install serves the control plane and skips the listener.
  • CloudFormation AWS::ApiGatewayV2::Integration and AWS::ApiGatewayV2::Route provisioners — completes the API Gateway v2 CFN surface, enabling full CDK HTTP API deployments (HttpApi.addRoutes()) against ministack. Both support Fn::GetAtt (IntegrationId, RouteId) and idempotent delete. Contributed by @hiddengearz.
  • Step Functions alias APICreate/Update/Delete/Describe/ListStateMachineAliases plus alias ARN resolution on DescribeStateMachine. Validation matches AWS (name regex, weights summing to 100, referenced versions must exist). DeleteStateMachineVersion now refuses to drop a version an alias still routes to. Unblocks terraform plan on aws_sfn_state_machine under provider v6, which unconditionally calls ListStateMachineAliases on every refresh. Contributed by @mattwang44.
  • Step Functions versioning APIPublish/Delete/ListStateMachineVersions plus qualified-ARN resolution on DescribeStateMachine. CreateStateMachine accepts publish=True. Optimistic concurrency via revisionId; version numbers are monotonic and never reused after delete. Same terraform-provider-aws v6 motivation as the alias API. Contributed by @mattwang44.
  • CloudWatch Logs Delivery API — 12 actions across DeliverySource / DeliveryDestination / Delivery (the 2023-era replacement for subscription filters that vended-logs producers like Bedrock and AppSync use to ship to S3 / CWL / Firehose). Server-derived service and deliveryDestinationType, outputFormat validated against the AWS enum, one-Delivery-per-pair enforced with ConflictException. Contributed by @mattwang44.

Fixed

  • RDS Postgres 18+ container refused to startpostgres:18+ images moved to a major-version-specific data layout (docker-library/postgres#1259) and refused to start with the pre-18 mount path. Mount path is now chosen per major: /var/lib/postgresql/data for < 18 (unchanged), /var/lib/postgresql for ≥ 18. MySQL / MariaDB / Aurora MySQL unaffected. Also adds postgres 18.3, 17.5, 16.4 to DescribeDBEngineVersions. Reported and contributed by @whittin3.

Changed

  • RDS containers mount only the engine-appropriate data path — previously both /var/lib/postgresql/data and /var/lib/mysql were mounted on every container regardless of engine. Harmless but wasteful and opaque when debugging.

Don't miss a new ministack release

NewReleases is sending notifications on new releases.