github ministackorg/ministack v1.3.49

4 hours ago

What's Changed

New Contributors

[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=1 and an rds.json state 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 an awslocal rds operation. Zero idle cost when no RDS state file is present (the conditional skips the import entirely). Reported by @doodaz.
  • Glue CreateTable persists ViewOriginalText / ViewExpandedText — views created via CreateTable (the path used by Trino, Spark, and Athena) lost their SQL body because _create_table ignored both fields. GetTable now returns them, unblocking Trino's iceberg connector and other engines that fail with viewOriginalText must be present. Contributed by @yonatoasis.
  • Glue CreateTable / UpdateTable persist ViewDefinition and IsMultiDialectView — 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 because appsync_events.json was 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 for apigateway_v1 on 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 in failed. 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. Stale Created-status containers from prior failed boots are force-removed before respawn so they don't hold the binding. Reported by @doodaz.
  • CloudFront ListDistributions round-trips origin configurationDistributionSummary now includes Origins and DefaultCacheBehavior from the stored distribution config, so custom origins round-trip consistently across create, get, list, and update flows. Contributed by @CoffeeRaptor.
  • CloudFront DistributionSummary emits all AWS-required fieldsAliases, CacheBehaviors, CustomErrorResponses, PriceClass, ViewerCertificate, Restrictions, WebACLId, HttpVersion, IsIPV6Enabled, and Staging are now emitted alongside the fields above. When a field wasn't set on the original CreateDistributionConfig, ministack emits a minimal-but-valid default (empty Quantity=0 containers, CloudFrontDefaultCertificate=true, HttpVersion=http2) so strict-parsing SDKs (Go v2, Java v2) don't reject the response.

Don't miss a new ministack release

NewReleases is sending notifications on new releases.