What's Changed
New Contributors
- @ry-allan made their first contribution in #702
- @yonatoasis made their first contribution in #707
[1.3.49] — 2026-05-25
Added
- Amazon Inspector2 — new service emulator with 14 API operations:
Enable,Disable,ListFindings(with filtering, sorting, pagination),BatchGetFindingDetails,ListCoverage,ListCoverageStatistics,ListFindingAggregations,SearchVulnerabilities,TagResource,UntagResource,ListTagsForResource,CreateFilter,ListFilters,DeleteFilter. Generates deterministic stub vulnerability findings for ECR container images, Lambda functions, and EC2 instances when enabled. Contributed by @ry-allan. - RDS auto-respawn at boot — when
PERSIST_STATE=1and anrds.jsonstate file exists, MiniStack now eager-imports the RDS module at startup and respawns the Docker container for every persisted instance immediately, with no client API call required. Previously the module loaded lazily on the first RDS request, leaving the postgres/mysql container down until the user happened to call anawslocal rdsoperation. Zero idle cost when no RDS state file is present (the conditional skips the import entirely). Reported by @doodaz. - Glue
CreateTablepersistsViewOriginalText/ViewExpandedText— views created viaCreateTable(the path used by Trino, Spark, and Athena) lost their SQL body because_create_tableignored both fields.GetTablenow returns them, unblocking Trino's iceberg connector and other engines that fail withviewOriginalText must be present. Contributed by @yonatoasis. - Glue
CreateTable/UpdateTablepersistViewDefinitionandIsMultiDialectView— newer multi-dialect view clients (Spark 3.4+, Glue 4.0 jobs, Lake Formation cross-engine views) round-trip the full view definition instead of seeing it silently dropped on create.
Fixed
- AppSync Events resources persist across restarts with
PERSIST_STATE=1— Event APIs, channel namespaces, and API keys created against the AppSync Events endpoint (/v2/apis) were silently dropped on container restart becauseappsync_events.jsonwas never written at shutdown. State is now saved and restored on every restart, matching the behavior of every other persisted service. Same fix covers a related class of restart drops forapigateway_v1on first boot and for services reached only via inter-service calls (Lambda-auto-created CloudWatch log groups, EventBridge targets fired by S3 notifications). Reported by @yaegassy. - RDS respawn after restart no longer fails with
port is already allocated— restored DB instances tried to bind the engine's standard port (5432 for postgres, 3306 for mysql) on the host instead of the original docker host port, so every restart with persisted state left the instance infailed. The host port is now tracked separately on the instance, validated as free before reuse, and falls back to a fresh free port if something else has taken it. StaleCreated-status containers from prior failed boots are force-removed before respawn so they don't hold the binding. Reported by @doodaz. - CloudFront
ListDistributionsround-trips origin configuration —DistributionSummarynow includesOriginsandDefaultCacheBehaviorfrom the stored distribution config, so custom origins round-trip consistently across create, get, list, and update flows. Contributed by @CoffeeRaptor. - CloudFront
DistributionSummaryemits all AWS-required fields —Aliases,CacheBehaviors,CustomErrorResponses,PriceClass,ViewerCertificate,Restrictions,WebACLId,HttpVersion,IsIPV6Enabled, andStagingare now emitted alongside the fields above. When a field wasn't set on the originalCreateDistributionConfig, ministack emits a minimal-but-valid default (emptyQuantity=0containers,CloudFrontDefaultCertificate=true,HttpVersion=http2) so strict-parsing SDKs (Go v2, Java v2) don't reject the response.