Repository navigation
Bump cdktn to 0.25 and Azure providers to azurerm 5.x - #1606
Conversation
Booster 4.0.4 fixed the cdktn 0.23 toolchain advisories only through repo-local overrides, which do not reach consumers. A fresh install of an app still resolves @cdktn/hcl2cdk 0.23.3, which pins zod 3.25.76 (high), and cdktn 0.23.3, which bundles fflate 0.8.2. cdktn 0.25.0 fixes both. - cdktn and cdktn-cli 0.23.3 -> 0.25.0 in framework-provider-azure-infrastructure and framework-integration-tests. - @cdktn/provider-azurerm 16.4.0 -> 19.0.0, provider-null 13.1.0 -> 16.0.0, provider-time 13.1.0 -> 15.0.0. These are the only versions that peer on cdktn ^0.25.0. provider-azurerm 19 wraps the Terraform azurerm provider 5.11 (was 4.76). - Event Hub: azurerm 5 removed namespace_name and resource_group_name, so the resource now uses namespace_id. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PR Summary
|
|
/integration sha=07d0874 |
|
⌛ Integration tests are running... Check their status here 👈 |
|
AI-assisted review by Codex of commit Recommendation: request changes.
Validation: forced TypeScript compilation of the Azure infrastructure package passed, and all 18 Azure infrastructure unit tests passed. Cloud integration run |
|
❌ Oh no! Integration tests have failed |
|
⌛ Integration tests are running... Check their status here 👈 |
Address review feedback on the azurerm 5.x upgrade: - azurerm 5.0 changed the default of resource_provider_registrations from "legacy" to "none", so Terraform no longer registers the Azure resource providers Booster needs. Deploys to a subscription where they are not already registered would fail. Set it to "legacy" to keep the 4.x behaviour. - cdktn-cli 0.25.0 requires Node >=22.23.4. Raise the engine range in framework-provider-azure-infrastructure and framework-integration-tests, the two packages that depend on it, and update the installation docs, which still described Booster 3.x and Node 20. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
❌ Oh no! Integration tests have failed |
|
/integration sha=6bee8f0 |
|
⌛ Integration tests are running... Check their status here 👈 |
|
❌ Oh no! Integration tests have failed |
|
✅ Integration tests have finished successfully! |
|
AI-assisted follow-up review by Codex of commit Recommendation: approve. This supersedes my earlier request-changes recommendation. Both findings are resolved, and I found no new blocking issues in the revision.
Remaining validation limitation: this evidence does not establish the upgrade behavior of existing Terraform state created with AzureRM 4.x. I did not independently validate that migration. |
Summary
#1605 (released as 4.0.4) fixed the cdktn 0.23 toolchain advisories with repo-local overrides only. npm and pnpm ignore a dependency's overrides, so apps installing Booster 4.0.4 still get the vulnerable versions:
@cdktn/hcl2cdk@0.23.3pinszod@3.25.76(GHSA high,<4.6.6), which reaches consumers throughcdktn-cli.cdktn@0.23.3bundlesfflate@0.8.2(moderate). It is a bundled dependency, so no override can patch it.cdktn 0.25.0 fixes both:
hcl2cdkmoves tozod ^4.4.3, andcdktnbundlesfflate@0.8.3. The 0.24 line is still in the vulnerable range.This also unblocks a coherent peer range for
rocket-file-uploads-azure-infrastructure. Today it peers@cdktn/provider-azurerm >= 16.0.0next tocdktn ^0.23.0, so a freshnpm installpicks provider-azurerm 19 and fails with ERESOLVE.What changed
framework-provider-azure-infrastructure,framework-integration-tests:cdktnandcdktn-cli0.23.3 → 0.25.0.framework-provider-azure-infrastructure:@cdktn/provider-azurerm16.4.0 → 19.0.0,@cdktn/provider-null13.1.0 → 16.0.0,@cdktn/provider-time13.1.0 → 15.0.0. These are the only versions that peer oncdktn ^0.25.0.terraform-event-hub.ts: azurerm 5 removednamespace_nameandresource_group_namefromazurerm_eventhub, so the resource now usesnamespace_id. This was the only compile error.pnpm-lock.yaml: regenerated withrush update.application-synth.ts: the azurerm provider setsresourceProviderRegistrations: 'legacy'. azurerm 5 changed the default fromlegacytonone, which would stop Terraform registering the resource providers Booster needs on a fresh subscription.framework-provider-azure-infrastructureandframework-integration-testsnow require>=22.23.4 <23.0.0, becausecdktn-cli@0.25.0declaresnode >=22.23.4. The other packages keep>=22.0.0. The installation docs now describe Booster 4.x and this requirement.minor.provider-azurerm 19.0.0 wraps Terraform azurerm 5.11 (16.4.0 wrapped 4.76). Every Azure app deployed with this version upgrades its Terraform provider by a major version. That is the main risk in this PR, and the reason for
minorinstead ofpatch. Reviewers may prefermajor.Other azurerm 5 default changes that touch Booster resources:
azurerm_storage_account.allow_nested_items_to_be_publicnow defaults tofalse. Booster's and rocket-file-uploads' containers are all private, so on existing deployments this shows up as an in-place update, not a replacement.Verification
tsc -bofframework-provider-azure-infrastructure(dist and tsbuildinfo removed first).rush rebuildof the Azure infrastructure package, the integration-test app and their dependencies: 13 operations succeeded.framework-provider-azure-infrastructureunit tests: 18 passing."resource_provider_registrations": "legacy") for Azure, with event streams and subscriptions forced on so the Event Hub and Web PubSub paths are included. Ranterraform init+terraform validateon the output: azurerm v5.11.0 installed, "The configuration is valid", no warnings.Not verified
validatedoes not check how azurerm 5 treats state created by 4.x. Aterraform planagainst a 4.0.4 deployment should show no replace actions, especially on the Event Hub after the switch tonamespace_id.rush updatereports an unmet@opentelemetry/apipeer (<1.10.0, found 1.10.0) insidecdktn-cli's own@sentry/nodedependencies. It is upstream and left as is.Follow-up
rocket-file-uploadsneeds a release after this one, peeringcdktn ^0.25.0,@cdktn/provider-azurerm ^19.0.0and Booster ≥ this version, with itscdktn-cli/@cdktn/hcl2cdkoverrides removed.🤖 Generated with Claude Code