What's Changed
New Contributors
- @lucasmfraser made their first contribution in #887
- @maximoosemine made their first contribution in #890
[1.3.62] — 2026-06-11
Added
- Glue — Iceberg REST Catalog (Glue-backed) — read-path subset of the Apache Iceberg REST OpenAPI at
/iceberg, mirroring AWS Glue'sglue.<region>.amazonaws.com/icebergendpoint (prefix shapecatalogs/{catalog}), served on thegluecredential scope — distinct from the S3 Tables Iceberg surface, exactly as on real AWS.GET /v1/config,ListNamespaces,GetNamespace,ListTables,LoadTable,HEADTableExists; writes return 501. A Glue table participates when itsParameters["metadata_location"]points at an Icebergmetadata.jsonon MiniStack S3 (written by an external engine such as Trino/Spark; passed through verbatim). Lets DuckDB'sicebergextensionATTACHagainst MiniStack (requiresUSE_SSL=1). Contributed by @yonatoasis. - Glue —
ColumnStatisticsAPI family (Table + Partition) —UpdateColumnStatisticsForTable/GetColumnStatisticsForTable/DeleteColumnStatisticsForTableand the*ForPartitionequivalents, with AWS's{ColumnStatisticsList, Errors}/{Errors}response shapes and per-columnEntityNotFoundExceptionerror entries. Stats are account-scoped, persisted, and cleared when the owning table/partition is deleted. Contributed by @yonatoasis.
Fixed
- CloudFormation —
DescribeStackEventsreturns the initialREVIEW_IN_PROGRESSevent for change-set-created stacks —CreateChangeSetwith--change-set-type CREATEleft the placeholder stack inREVIEW_IN_PROGRESSbut seeded an empty event list, soDescribeStackEventsreturned[]and tools readingStackEvents[0](notablysam deploy) crashed withIndexError. The placeholder stack now emits theREVIEW_IN_PROGRESSevent for theAWS::CloudFormation::Stackresource on creation. Contributed by @maximoosemine. - Step Functions —
ecs:runTask/ecs:runTask.syncno longer dropContainerOverrides— the Pascal→camelCase conversion at the SFN→ECS hand-off only covered top-levelParameterskeys, so nestedOverrides.ContainerOverrides(including resolved"Value.$"entries) andNetworkConfigurationstayed PascalCase and were silently ignored — the container ran with task-definition environment only while the.syncstate still succeeded. The conversion is now recursive. Contributed by @lucasmfraser. - Lambda — layers are reachable in the docker executor, and zip permissions are preserved — the docker RIE executor extracted each layer to
/opt/layer_N, which is not on the runtime's search path, soimportfrom a layer failed; layer contents now merge into/opt(so/opt/python,/opt/lib,/opt/binresolve), exactly as on real AWS. Layer and function zip extraction now also restores unix mode bits, so/opt/bintools and bundled binaries keep their+x. Reported by @omargr299. awslocalworks in TLS mode without--no-verify-ssl— the wrapper now resolves MiniStack's TLS certificate (the auto-generated${TMPDIR}/ministack-tls/server.crt, or aMINISTACK_SSL_CERT/MINISTACK_CA_BUNDLEoverride) and exportsAWS_CA_BUNDLEonly when it points at a real file, so the AWS CLI verifies the cert instead of failing — plain-HTTP usage is untouched. Reported by @ChronosMasterOfAllTime.- Lambda — restored SQS event source mappings resume polling after a warm restart — the ESM poller is started from
lambda_svc's import-time restore, but the module was imported lazily only on a Lambda request, so after a persisted restart a pure-SQS workload (just sending to a mapped queue) never started the poller and the restored mapping satEnabledbut unpolled while messages piled up.lambda_svcis now eager-imported at boot when persisted ESMs exist, so polling resumes exactly like a freshCreateEventSourceMapping. Reported by @ChronosMasterOfAllTime.