What's Changed
[1.3.5] — 2026-04-20
Added
- API Gateway v2 WebSocket APIs — full WebSocket support on the execute-api host:
CreateApi(ProtocolType=WEBSOCKET),RouteResponse+IntegrationResponseCRUD,$connect/$disconnect/$default/custom-action route dispatch via$request.body.*,AWS_PROXY/AWS/MOCKintegrations, and the@connectionsmanagement API (PostToConnection/GetConnection/DeleteConnection) with per-connection outbox for server-side push.$connectreceivesqueryStringParameters/multiValueQueryStringParametersso token-gated hooks work like AWS. Multi-tenant: connections carry their owning account. Reported by @whittin3. Fixes #383 - Resource Groups Tagging API — Phase 3 —
TagResourcesandUntagResourcesacross S3, Lambda, SQS, SNS, DynamoDB, EventBridge, KMS, ECR, ECS, Glue, Cognito (IdP + Identity), AppSync, Scheduler, CloudFront, EFS. Contributed by @AdigaAkhil (#384). Fixes #382
Changed
- Centralised service registry —
SERVICE_HANDLERS,SERVICE_NAME_ALIASES, and_reset_all_state's module list are now derived from oneSERVICE_REGISTRYinapp.py. Adding a service is one dict entry. Contributed by @jgrumboe (#391) - ASGI dispatcher refactor — the monolithic
app()is split into tiered helpers (pre-body / post-body / special data-plane / generic). Adds an_is_potential_alb_request()gate that skips the ALB module load for non-ALB traffic. Contributed by @jgrumboe (#394)
Fixed
- CloudFormation
AWS::Regionand provisioner ARNs ignored the caller's region — CFN used a module-levelREGIONeverywhere, so CDK bootstrap withAWS_REGION=us-east-2gotus-east-1baked into every${AWS::Region}substitution and ~15 provisioner ARNs. Region is now a per-request contextvar (get_region()); CFN engine, handlers, and every provisioner use it. Reported by @youngkwangk. Fixes #398 - S3
CompleteMultipartUploaddid not version the final object — when versioning was enabled, the response lackedx-amz-version-idand the object never appeared inlist_object_versions. Multipart now follows the same versioning path asPutObject. Reported by @adzcodemi. (#397) Fixes #392 - EC2
CreateSecurityGroupdescription parameter — contributed by @AdigaAkhil (#396) - Tagging
TagResources/UntagResourceserror shape — unsupported resource types and missing resources now returnInvalidParameterException(400) inFailedResourcesMap, matching AWS. Previously returnedInternalServiceException(501/500) or silently no-op'd on Lambda/SNS/SQS/Cognito-IDP. Writers/removers now raise a typed_ResourceNotFoundthat the entry point surfaces per-ARN. Docstrings added across every writer/remover.