Skip to content

chore(deps): replace uuid dependency with node:crypto.randomUUID - #291

Merged
so0k merged 1 commit into
mainfrom
claude/cdk-terrain-290-uuztv8
Jul 1, 2026
Merged

so0k merged 1 commit into
mainfrom
claude/cdk-terrain-290-uuztv8

Conversation

@so0k

@so0k so0k commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Related issue

Fixes #290

Description

Removes the direct uuid / @types/uuid dependencies from cdktn-cli and @cdktn/commons, replacing runtime UUID v4 generation with Node's native node:crypto.randomUUID().

Changes:

  • @cdktn/commons (src/checkpoint.ts): swapped import { v4 as uuidv4 } from "uuid" for import { randomUUID } from "node:crypto"; getId() and ReportRequest() now call randomUUID() for the telemetry user/project/run IDs.
  • cdktn-cli (src/bin/cmds/helper/init.ts): swapped import { v4 as uuid } from "uuid" for import { randomUUID } from "node:crypto"; cdktn init generates the project id via randomUUID().
  • Dropped uuid + @types/uuid from both packages' package.json and refreshed pnpm-lock.yaml, removing the deprecated uuid@9.0.1 direct entry and the direct uuid@8.3.2 dev entry.

randomUUID() returns a v4 UUID string, identical in shape and usage to the previous uuid() call, so behavior is unchanged. The runtime baseline already supports it — the CLI's esbuild target is node22 and the TypeScript templates require Node >=20.9.

This reduces the CLI bundle size and dependency surface, aligning with the AWS CDK CLI dependency-cleanup direction described in the issue.

Checklist

  • I have updated the PR title to match CDKTN's style guide
  • I have run the linter on my code locally
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation if applicable
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works if applicable
  • New and existing unit tests pass locally with my changes

🤖 Generated with Claude Code


Generated by Claude Code

Remove the direct `uuid` / `@types/uuid` dependencies from `cdktn-cli`
and `@cdktn/commons` and generate UUID v4 values via Node's native
`node:crypto.randomUUID()` instead.

This reduces the CLI bundle size and dependency surface, and removes the
deprecated `uuid@8.3.2` / `uuid@9.0.1` direct entries from the lockfile.
The runtime baseline (esbuild target node22, templates Node >=20.9)
already provides `randomUUID`.

Closes #290

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Be4NSJa2v5yPrRhfCWvFov
@so0k
so0k requested a review from a team as a code owner June 30, 2026 01:59
@so0k
so0k merged commit 6d3657a into main Jul 1, 2026
260 checks passed
@so0k
so0k deleted the claude/cdk-terrain-290-uuztv8 branch July 1, 2026 11:28
so0k pushed a commit that referenced this pull request Jul 3, 2026
🤖 Release PR — merge to cut a new release. Kept open and rebased
as commits land on `main`.
---


<details><summary>0.23.4</summary>

##
[0.23.4](v0.23.3...v0.23.4)
(2026-07-02)


### Features

* **cli:** validate Terraform CLI feature versions
([#237](#237))
([32d434c](32d434c))
* declared Terraform/OpenTofu target versions (validation foundation)
([#269](#269))
([0aa2343](0aa2343))
* **lib:** S3-backend - Add `useLockfile` field and update
`dynamodbTable` deprecated JSDoc
([#234](#234))
([32a408f](32a408f))
* **lib:** validate Fn usage against Terraform/OpenTofu versions
([#268](#268))
([cdf8115](cdf8115))


### Bug Fixes

* **cli:** don't mistake terraform error output for a missing-variable
prompt
([#267](#267))
([0ea946f](0ea946f))
* **cli:** release terraform state lock when interrupting diff/deploy
([#284](#284))
([de617db](de617db))
* **cli:** resolve prebuilt Java provider versions via repo1.maven.org
([#285](#285))
([d5af07d](d5af07d))
* **gha:** Adding CHANGELOG.md to prettier ignore list
([#258](#258))
([5160469](5160469))
* **gha:** pull jsii-terraform CI image from GHCR instead of Docker Hub
([#261](#261))
([f19d34b](f19d34b))
* **provider-generator:** copy only publishable files into the jsii
compile bundle
([#292](#292))
([562d4c7](562d4c7))
* **provider-generator:** match shorthand provider sources against
OpenTofu schema keys
([#293](#293))
([fda0103](fda0103))
* **release:** add Changelog title for correct release-please insertion
([#255](#255))
([004818a](004818a))
* **release:** drop devEngines.packageManager that broke npm publish
([ef508a6](ef508a6))
* **tools:** repair generate-function-bindings tool
([#273](#273))
([821e1cf](821e1cf))


### Miscellaneous Chores

* Add Gradle to Mise config
([#271](#271))
([1578270](1578270))
* add pnpm to mise
([#266](#266))
([48ab91f](48ab91f))
* add uv to mise
([#260](#260))
([163cf3d](163cf3d))
* **deps:** bump nrwl/nx-set-shas from
38457b511e60ee4e1da09255b658e480748a1af4 to
afb73a62d26e41464e9254689e1fd6122ee683c1
([#236](#236))
([b5ac018](b5ac018))
* **deps:** bump the github-actions-backward-compatible group across 1
directory with 7 updates
([#235](#235))
([de67d9f](de67d9f))
* **deps:** replace uuid dependency with node:crypto.randomUUID
([#291](#291))
([6d3657a](6d3657a))
* ESLint ignore test edge-provider-bindings
([#270](#270))
([ba407bb](ba407bb))
* Fix Verdaccio logging config
([#272](#272))
([aded64b](aded64b))
* **gha:** parallelize provider binding generation for documentation
examples
([#244](#244))
([0a9c955](0a9c955))
* Migrate package manager from yarn to pnpm
([#170](#170))
([d23da4e](d23da4e))
* migrate planning artifacts to cdktn-planning [skip ci]
([968c358](968c358))
* **release:** add release-please automation for versioning
([#243](#243))
([c759eec](c759eec))
* Remove dependency-pinner tool
([#250](#250))
([42c27d5](42c27d5))
* Remove unused dependencies
([#281](#281))
([c7de65e](c7de65e))
* **tests:** run verdaccio in-process
([#248](#248))
([c17677d](c17677d))
* Update JSII version constraint
([#245](#245))
([d89558f](d89558f))
* Update scheduled workflows to only run on open-constructs/cdk-terrain
([#256](#256))
([ba408cf](ba408cf))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: open-constructs-cdktn[bot] <291052431+open-constructs-cdktn[bot]@users.noreply.github.com>
@github-actions

github-actions Bot commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

I'm going to lock this pull request because it has been closed for 30 days. This helps our maintainers find and focus on the active issues. If you've found a problem that seems related to this change, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.

@github-actions github-actions Bot locked as resolved and limited conversation to collaborators Aug 1, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

cli: remove uuid dependency in favor of node:crypto.randomUUID

3 participants