Skip to content

chore(runtime): raise Node floor to 22 (20 is EOL) - #65

Open
keithfawcett wants to merge 1 commit into
mainfrom
chore/node-22-runtime-floor
Open

chore(runtime): raise Node floor to 22 (20 is EOL)#65
keithfawcett wants to merge 1 commit into
mainfrom
chore/node-22-runtime-floor

Conversation

@keithfawcett

Copy link
Copy Markdown
Contributor

Why

Node 20 hit end-of-life in March 2026 — no more security patches. Codex flagged it during the SSRF hardening review. This raises the floor to Node 22 (current LTS).

Changes (pins only — no source, no deps)

  • apps/{api,portal,router}/DockerfileARG NODE_VERSION=20-alpine22-alpine
  • .nvmrc20.10.022.20.0
  • root package.jsonengines.node >=20.10.0>=22
  • .github/workflows/ci.yml + npm-publish.ymlnode-version: '20''22'

No pnpm-lock.yaml change (no dependency change), so --frozen-lockfile stays valid. CI on this PR is the real validation of the image builds + test run on 22.

Notes

  • Independent of the SSRF PR (feat(security): SSRF guard for outbound webhooks + partner postbacks #64), which deliberately uses undici@6 so it runs on both 20 and 22 — these two can merge in either order.
  • CLAUDE.md still says "Node 20+" in the tech-stack blurb; left untouched here only to avoid entangling the local GitNexus auto-block in this diff — worth a one-line follow-up.
  • DO App Platform picks up the version from .nvmrc/engines on next deploy.

🤖 Generated with Claude Code

Node 20 reached end-of-life in March 2026 and no longer gets security
patches. Bump the runtime floor to Node 22 (current LTS) across every pin:
Docker build args (api/portal/router), .nvmrc, root engines (>=22), and the
CI + npm-publish workflow node-version. No dependency or lockfile change; no
source change. Surfaced by Codex during the SSRF hardening review.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant