Skip to content

1.6.0

Latest

Choose a tag to compare

@hectorvent hectorvent released this 06 Aug 05:32

πŸŽ‰ Highlights

This release adds three new services β€” Amazon MWAA, CloudWatch RUM, and Bedrock with real LLM proxy β€” brings the Lambda Extensions API, lands a substantial CloudFormation resource expansion, and ships the one-button release cut with ECR Public versioned publishing infrastructure. This is the first release in the 1.6.x series, and the version bump reflects the depth of platform additions: real LLMs via a proxy backend, real Airflow, and Lambda extensions collectively unlock service categories that previously required real AWS accounts.

πŸ†• Amazon MWAA backed by real Airflow

Amazon MWAA (Managed Workflows for Apache Airflow) emulation lands (#2086), backed by a real Airflow LocalExecutor. Data engineering workflows that depend on Airflow DAG scheduling can now be exercised locally without provisioning real MWAA environments. Continues the real-Docker-backed pattern (Postgres, Redis, k3s, RabbitMQ, Redpanda, Valkey).

πŸ†• CloudWatch RUM

CloudWatch RUM app-monitor service (#1797) enables local testing of real-user monitoring workflows. Front-end observability instrumentation and app monitor configurations can now be exercised without sending data to real CloudWatch.

πŸ€– Bedrock: proxy backend for real LLM responses

Bedrock gains a proxy backend for real LLM responses via an OpenAI-compatible API (#1789). This is a meaningful capability: Bedrock-backed applications can now be tested with real LLM inference by routing through any OpenAI-compatible endpoint (OpenAI, local models via Ollama/LM Studio, or other compatible providers), rather than mocked responses. Combined with the Bedrock managed policies added in this release (#2034), the Bedrock story is much more complete for AI/ML workloads.

🧩 Lambda Extensions API

The Lambda Extensions API (#1773) is now implemented. Applications using Lambda layers that ship as extensions β€” observability, secrets management, auth β€” can now be tested locally end to end. Combined with /etc/hosts support for launched containers (#2073), Lambda's environment story is meaningfully more realistic.

🧱 CloudFormation resource expansion

Six new CloudFormation resource types plus one intrinsic improvement:

  • AWS::EC2::LaunchTemplate (#1973)
  • AWS::EC2::VPCGatewayAttachment (#1972)
  • AWS::SecretsManager::SecretTargetAttachment (#1804)
  • AWS::Events::EventBus and EventBusPolicy (#1794)
  • AWS::ApiGatewayV2::Authorizer with Route.AuthorizerId wiring (#1760)
  • AWS::IAM::ManagedPolicy exposes PolicyArn for Fn::GetAtt (#2056)
  • Fn::GetAtt [Vpc, DefaultSecurityGroup] resolves (#1977)
  • Delete-of-already-removed DynamoDB tables and Lambda functions is idempotent (#1803)
  • Uniqueness suffix preserved when truncating generated resource names (#1802)
  • Subnet public IP setting preserved on updates (#2031)

Real IaC that provisions launch templates, event buses, and complex API Gateway v2 setups now deploys correctly.

πŸ” IAM: managed policies expansion

Three coordinated IAM improvements:

  • AWSCloudFormationReadOnlyAccess managed policy seeded (#2057)
  • Amazon Bedrock managed policies seeded (#2034)
  • CDK bootstrap managed policies seeded, and CDK scenario stacks attach correctly (#2064)
  • ListEntitiesForPolicy implemented (#1808)

The CDK bootstrap coverage is particularly meaningful β€” CDK-based IaC workflows depend on specific bootstrap policies existing, and this closes a repeated pain point.

πŸš€ Release infrastructure

One-button release cut from main with ECR Public versioned publishing (#2127) is now in place. Releases are more consistent, image tags on ECR Public are properly versioned, and cutting a release requires fewer manual steps.

🎯 API Gateway: floci:override-id

floci:override-id support for both v1 and v2 API Gateway (#2045). Tests that depend on stable, predictable API IDs (rather than randomly generated ones) can now specify their own. Closes a long-open feature request.

🌐 EC2 / SQS / Cognito

  • EC2 volume attach and detach support (#1787)
  • SQS: MessageGroupId retained on standard queue messages (#1891)
  • Cognito: ResendConfirmationCode implemented (#2071), unconfirmed users rejected in SRP auth (#2027)
  • KMS: ListKeyPolicies implemented (#2046)

✨ New Features

New services

  • feat(mwaa): add Amazon MWAA emulation backed by real Airflow (LocalExecutor) (#2086)
  • feat(rum): add CloudWatch RUM app-monitor service (#1797)

Bedrock / Lambda

  • feat(bedrock): add proxy backend for real LLM responses via OpenAI-compatible API (#1789)
  • feat(lambda): implement the Lambda Extensions API (#1773)
  • feat(lambda): support extra /etc/hosts entries on Lambda launch (#2073)

CloudFormation

  • feat(cloudformation): provision AWS::EC2::LaunchTemplate (#1973)
  • feat(cloudformation): provision AWS::EC2::VPCGatewayAttachment (#1972)
  • feat(cloudformation): provision AWS::SecretsManager::SecretTargetAttachment (#1804)
  • feat(cloudformation): support AWS::Events::EventBus and EventBusPolicy (#1794)

IAM

  • feat(iam): add AWSCloudFormationReadOnlyAccess managed policy (#2057)
  • feat(iam): seed Amazon Bedrock managed policies (#2034)
  • feat(iam): seed CDK bootstrap managed policies and attach on scenario stacks (#2064)
  • feat(iam): list entities attached to managed policies (#1808)

API Gateway / EC2 / KMS / Cognito / SQS / Cloud Control

  • feat(apigateway): support floci:override-id for v1 and v2 (#2045)
  • feat(ec2): volume attach and detach support (#1787)
  • feat(ec2): return an empty set for DescribeVpnGateways (#1975)
  • feat(kms): implement ListKeyPolicies (#2046)
  • feat(cognito): implement ResendConfirmationCode (#2071)
  • feat(sqs): retain MessageGroupId on standard queue messages (#1891)
  • feat(cloudcontrol): include EC2 resource tags (#1933)

Release infrastructure

  • feat(release): one-button release cut from main and ECR Public versioned publishing (#2127)

πŸ› Bug Fixes

CloudFormation

  • fix(cloudformation): AWS::IAM::ManagedPolicy exposes PolicyArn for Fn::GetAtt (#2056)
  • fix(cloudformation): keep uniqueness suffix when truncating generated resource names (#1802)
  • fix(cloudformation): preserve subnet public IP setting (#2031)
  • fix(cloudformation): provision AWS::ApiGatewayV2::Authorizer and wire Route.AuthorizerId (#1760)
  • fix(cloudformation): resolve Fn::GetAtt [Vpc, DefaultSecurityGroup] (#1977)
  • fix(cloudformation): idempotent delete of DynamoDB tables and Lambda functions (#1803)

API Gateway

  • fix(apigateway): fall through to less specific resources on method miss (#1630)
  • fix(apigateway): import authorizers and security requirements from OpenAPI (#1798)
  • fix(apigateway): use last duplicate header value (#1806)

S3

  • fix(s3): accept a percent-encoded bucket/key separator in copy sources (#2060)
  • fix(s3): apply CreateBucketConfiguration tags on bucket creation (#2115)
  • fix(s3): include EventBridgeConfiguration in GetBucketNotification response (#2072)
  • fix(s3): recognize virtual-hosted-style requests over HTTP/2 (#1954)

Lambda

  • fix(lambda): carry the owning account into published version snapshots (#2041)
  • fix(lambda): report resolved executed version (#2026)
  • fix(lambda): reset volatile DynamoDB Streams ESM checkpoints on restart (#2077)

DynamoDB / EC2 / ECS / Athena

  • fix(dynamodb): resolve nested document paths in ADD and DELETE update actions (#1908)
  • fix(ec2): DescribeKeyPairs returns InvalidKeyPair.NotFound for missing names/ids (#1932)
  • fix(ec2): return MissingParameter for CreateSubnet without VpcId (#2094)
  • fix(ecs): resolve Secrets Manager JSON-key selectors in task definition secrets (#2133)
  • fix(athena): report the result CSV object key as OutputLocation (#1895)

CodeBuild / Cognito / SSM / TLS / Pipes / Docker

  • fix(codebuild): stabilize start and retry responses (#2052)
  • fix(cognito): reject unconfirmed users in SRP auth (#2027)
  • fix(ssm): report invalid batch parameter names (#2075)
  • fix(tls): reuse the persisted self-signed certificate across restarts (#1799)
  • fix(pipes): register kafka-clients reflection metadata for native image (#2068)
  • fix(dockerfile): ensure docker-java compatibility (#2096)

Alarms

  • fix: better populate describe alarm responses (#1792)

πŸš€ Performance

  • perf(docker): stop duplicating the native binary into a second image layer (#2069)

Full Changelog: 1.5.34...1.6.0