November 4, 2026 · v1.5.37
v1.5.37 adds Glue table optimizers, ALB routing through Route 53 alias records and a .NET Testcontainers example, enforces ElastiCache user groups on the engine, and fixes CloudFormation, DynamoDB, ECS, Lambda, EC2, RDS and Step Functions.
A/AAAA alias record in a public hosted zone, exact or wildcard (*.example.com, the most specific name winning), reaches the load balancer the record targets, so one ALB can serve many hostnames. Reported by @boesing.CreateTableOptimizer, GetTableOptimizer, UpdateTableOptimizer, DeleteTableOptimizer, BatchGetTableOptimizer and ListTableOptimizerRuns store optimizers per Iceberg table with AWS's defaults and errors; they never run. Reported by @lucasmfraser.Testcontainers/dotnet-testcontainers runs MiniStack from Testcontainers for .NET with the AWS SDK for .NET.default is off unless a group has one, and users can't run ACL writes or CONFIG; a change restarts the engine, dropping open connections. CreateUserGroup and ModifyUserGroup refuse current members, non-members, unknown users and duplicates in AWS's order, a Redis OSS group needs a user named default (DefaultUserRequired), every account has the built-in default user, ModifyUser applies AppendAccessString, and a user with a selector gets no channels outside it. Contributed by @chris-plucker and @kharabasz.TemplateURL, nested stack, AWS::Include Location, state machine DefinitionS3Location or Lambda code in another account's bucket is read when the bucket allows it, and a secretsmanager dynamic reference resolves in the account its ARN names. An AWS::ElastiCache::UserGroup update keeps changes made outside the stack unless it changes the users or Engine, and ElastiCache failures read as AWS's handler messages. Contributed by @mishukdutta-cz and @kharabasz.SET a = :v, b = :v, list_append(:l, :l), if_not_exists and PartiQL UPDATE store an independent copy per path, so a nested write to one no longer shows up at the others. Contributed by @toby6578.AWS::ECS::TaskDefinition keeps every nested property, so Secrets are injected, SSM SecureString secrets arrive decrypted, and a task image from MiniStack's ECR is loaded from MiniStack's registry. Reported by @dimazuien and @kharabasz.-1 and protocols other than tcp, udp, icmp and icmpv6 ignore FromPort/ToPort, so the Terraform provider's default egress revoke matches. Contributed by @kharabasz.Architectures pins the container platform, cold starts free their code tar and no longer collide on the context shim, and failed or abandoned containers are cleaned up and carry MiniStack's Testcontainers session labels. Contributed by @toby6578, @skialpine and @kharabasz. Reported by @chandra-purbia.MINISTACK_RDS_PUBLIC_ENDPOINT are stable from CreateDBCluster, and an Aurora global writer endpoint resolves to the writer on the Docker network and is in PostgreSQL members' certificates. Contributed by @kharabasz..sync. A JSONata Distributed Map evaluates its fields, ItemBatcher batches items (256 KiB by default), an Inline Map with ItemReader, ItemBatcher or ResultWriter fails with States.Runtime, a stop ends the running state, and a failed .sync child fails the parent with States.TaskFailed. Contributed by @mishukdutta-cz.docker pull ministackorg/ministack:1.5.37 docker run -d -p 4566:4566 ministackorg/ministack:1.5.37
Or pin in compose.yaml:
services:
ministack:
image: ministackorg/ministack:1.5.37
ports:
- "4566:4566"
Issues and PRs welcome on GitHub. Discussion on r/ministack.