What's Changed
[1.3.55] — 2026-06-01
Added
- AWS Elemental MediaConnect — control-plane stub —
CreateFlow,DescribeFlow,ListFlows,UpdateFlow,ListTagsForResourceat/v1/flows[/{FlowArn}]and/tags/{ResourceArn}.ListFlowsreturns the slimmer AWSListedFlowprojection (no Outputs/Sources/Entitlements);UpdateFlowis narrow to the AWS-allowed top-level fields (SourceFailoverConfig,Maintenance,SourceMonitoringConfig,NdiConfig); flow records use the wire-form camelCase keys per the AWS REST-JSON model. No real streaming/transcoder — flows are control-plane metadata, enough to integration-test services that wrap the MediaConnect API. Reported by @tashif-hoda. - EKS
AssociateEncryptionConfig+ OIDC discovery / JWKS for IRSA — newPOST /clusters/{name}/encryption-config/associatereturns anupdateenvelope and rejects re-association (matches AWS, which only allows adding encryption to a cluster that has none). Clusteridentity.oidc.issuernow points at a ministack-hosted URL (/oidc/id/{32-char-id}) instead of the realoidc.eks.{region}.amazonaws.com(unreachable from clients);GET <issuer>/.well-known/openid-configurationandGET <issuer>/keysare served at the AWS-shape paths, withauthorization_endpoint: "urn:kubernetes:programmatic_authorization"andclaims_supported: ["sub","iss"]matching the real EKS discovery document. A single RSA keypair is generated lazily on first request and shared across clusters — sufficient for Terraform'saws_iam_openid_connect_providerto fetch the document. Reported by @b-rajesh.
Fixed
- API Gateway v2 Lambda-proxy —
Set-Cookiefromheadersand thecookiesarray now both ship — observed real-AWS behavior is to emit the array entries first followed by anySet-Cookiecarried inheaders; the earlier supersede approach silently dropped the header cookie. Case-insensitive on the header key.Contributed by @rmlasseter. - API Gateway v2 Lambda-proxy —
isBase64Encodedhonored in both directions — request bodies for binary content types are now base64-encoded withisBase64Encoded: true; response bodies markedisBase64Encoded: trueare decoded to raw bytes (HTTP API v2 has nobinaryMediaTypesnegotiation — it's unconditional). The text/binary split for the request body (onlytext/*andapplication/json/application/xml/application/javascriptarrive as UTF-8 strings; everything else, including a missingContent-Typeandapplication/x-www-form-urlencoded, is base64) matches the AWS-observed behavior. Contributed by @rmlasseter. - API Gateway v1 Lambda-proxy —
binaryMediaTypesis now wired — request bodies whoseContent-Typematches a configuredbinaryMediaTypeare delivered base64-encoded withisBase64Encoded: true; response bodies withisBase64Encoded: trueare decoded to raw bytes only when the requestAcceptalso matches abinaryMediaType.binaryMediaTypeswas stored on the API record but inert at invocation before this. Wildcards (*/*,type/*) honored on the configured side; a request value of*/*does NOT auto-match specific configured types — verified against real AWS. Contributed by @rmlasseter. - API Gateway v2 Lambda-proxy — case-insensitive header override — a lowercase
content-type(or any case-mismatched header) from a Lambda response now replaces ministack's seeded default rather than shipping a duplicate header. HTTP field names are case-insensitive per RFC 9110 §5.1. Contributed by @rmlasseter. - API Gateway v1 Lambda-proxy — case-insensitive header override — same fix on the
headersmerge for REST APIs: the v1 builder previously case-folded only themultiValueHeadersmerge, so a lowercasecontent-typeshipped twice; it now overrides the default and is emitted once. Contributed by @rmlasseter.