What's Changed
New Contributors
- @bfreitastgtg made their first contribution in #1145
[1.4.5] — 2026-07-22
Added
- API Gateway v1 —
AWS::ApiGateway::ModelCloudFormation support — stacks with request/response models failed withUnsupported resource type: AWS::ApiGateway::Model. Models now create, update, and delete against the v1 model store; JSON-valued schemas are normalized to the API's string representation andRefreturns the model name. Contributed by @robert-pitt-foodhub. - API Gateway v1 —
AWS::ApiGateway::DomainNameCloudFormation support — CDK custom-domain stacks rolled back withUnsupported resource type. Regional and edge domains now provision through the v1 control plane;Refreturns the domain name andFn::GetAttexposesDistributionDomainName,DistributionHostedZoneId,DomainNameArn,RegionalDomainName, andRegionalHostedZoneId. Contributed by @robert-pitt-foodhub. - API Gateway v1 —
AWS::ApiGateway::BasePathMappingCloudFormation support — base path mappings now create, update, replace, and delete; an omittedBasePathmaps to the root(none)mapping andRefreturns the mapping's identifier. Contributed by @robert-pitt-foodhub. - API Gateway v1 — documentation parts —
CreateDocumentationPart,GetDocumentationPart,GetDocumentationParts,UpdateDocumentationPart, andDeleteDocumentationPart, plusAWS::ApiGateway::DocumentationPartCloudFormation support.Refreturns the documentation part id andFn::GetAtt DocumentationPartIdis exposed. Contributed by @robert-pitt-foodhub. - Lambda —
AWS::Lambda::EventInvokeConfigCloudFormation support — CDK stacks configuring asynchronous retry limits, maximum event age, or on-success/on-failure destinations rolled back withUnsupported resource type. Configs are now isolated per function qualifier (version/alias), andGetFunctionEventInvokeConfig/ListFunctionEventInvokeConfigsreturn them per qualifier. Contributed by @robert-pitt-foodhub. - CloudWatch —
AWS::CloudWatch::DashboardCloudFormation support — stacks containing dashboards rolled back withUnsupported resource type. Dashboards now create, update the body in place, replace on a name change, and delete;Refreturns the dashboard name. Contributed by @robert-pitt-foodhub. - OpenSearch —
AWS::OpenSearchService::DomainCloudFormation support — domains and CDK-generated access policies now provision through CloudFormation with in-place updates, replacement, rollback, andFn::GetAttfor the domain ARN and endpoint. Contributed by @robert-pitt-foodhub. - OpenSearch — package management —
CreatePackage,UpdatePackage,DescribePackages,DeletePackage,AssociatePackage,DissociatePackage, andListPackagesForDomainare now served. Packages reportAVAILABLEand domain associationsACTIVEimmediately, so a poll after create/update/associate succeeds on the first call. Reported by @Simon-Hayden-Dev. - Cognito —
AWS::Cognito::UserPoolGroupCloudFormation support — the raw group APIs existed but the CFN resource type failed the whole stack withUnsupported resource type. Groups now provision through CloudFormation,Refreturns the group name, and deletion removes the group from its member users. Contributed by @ryan-bennett. - Cognito — resource servers (
CreateResourceServer,UpdateResourceServer,DescribeResourceServer,DeleteResourceServer,ListResourceServers) plusAWS::Cognito::UserPoolResourceServerCloudFormation support. Every resource-server action previously returnedInvalidAction: Unknown Cognito IDP actionand the CFN resource type failed the whole stack. Resource servers are keyed by their caller-suppliedIdentifierwithin a pool, matching real AWS, andRefon the CFN resource returns thatIdentifier. Contributed by @ryan-bennett. - Cognito —
GetTokensFromRefreshToken— the session-refresh action aws-amplify v6.15+ uses exclusively returnedInvalidAction: Unknown Cognito IDP action, so Amplify apps silently lost their session when the access token expired. It now returns the sameAuthenticationResultshape asREFRESH_TOKEN_AUTH; refresh token rotation andRefreshTokenReuseExceptionare not modeled. Reported by @scriptgenerator64. - Region scoping — Batch and SES — state is now isolated by account and region, so same-named resources in different regions no longer collide. Persisted state carries a versioned regional schema that an older binary refuses rather than misreads. Contributed by @Areson.
Fixed
- CloudFront — invalidations on CloudFormation-created distributions —
CreateInvalidationon a distribution provisioned through CloudFormation raised aKeyErrorbecause the CFN path never initialized the invalidation store that the nativeCreateDistributiondoes. The store is now initialized on create and cleaned up on delete. Contributed by @robert-pitt-foodhub. - CloudFormation/Lambda — CDK S3 bucket notification custom resources no longer hang — custom-resource properties reached CDK's bundled handler as Python
bool/numbers instead of CloudFormation's string wire representation (it called.lower()onManaged), and the warm Python worker omittedlog_stream_name, so the failure path couldn't PUT to theResponseURLand the stack hung until the one-hour service timeout. Custom-resource properties now use the string representation and warm workers expose the standard Lambda context fields. Contributed by @robert-pitt-foodhub. - API Gateway v1 —
AWS::ApiGateway::StageRef—Refreturned<api-id>-<stage>instead of the stage name, so dependent resources failedGetStagewithInvalid Stage identifier specified.Refnow returns the stage name, matching AWS. Contributed by @robert-pitt-foodhub. - SQS —
ListQueuespagination — results were silently truncated atMaxResultsand noNextTokenwas returned or accepted, so a client with more than 1000 queues could not enumerate them all.ListQueuesnow returns aNextTokenwhen more results remain and accepts it on the next page, across both the JSON and Query/XML protocols. Contributed by @bfreitastgtg. - EC2 —
DescribeSecurityGroupRulestags — the operation omitted each rule'sTagsandSecurityGroupRuleArn, so Terraform'saws_vpc_security_group_ingress_rulesaw perpetualtags_alldrift. Rule tags set at authorize time (or viaCreateTagson thesgr-id) are now stored and returned along with the rule ARN, andtag:/tag-keyfilters are honored. Reported by @staranto. - Cognito —
AWS::Cognito::UserPoolLambdaConfigdropped by CloudFormation — the CFN provisioner built a pool's state without ever readingLambdaConfigfrom the template properties, so any Lambda trigger (PreTokenGeneration, PreSignUp, PostConfirmation, etc.) configured on a CFN-provisioned pool was silently never invoked, even though the identical rawCreateUserPoolAPI call already honored it correctly.LambdaConfigis now copied onto the pool the same way the raw API does. Contributed by @ryan-bennett.