Skip to content

Node v0.1.0-alpha.5 — Polish + ops ergonomics

Pre-release
Pre-release

Choose a tag to compare

@davidalmeidac davidalmeidac released this 07 May 18:34
· 87 commits to main since this release

Polish + ops ergonomics on top of the alpha.4 security fix. No wire-format changes — files sealed by 0.1.0-alpha.4 decrypt cleanly on 0.1.0-alpha.5 and vice versa.

Added

  • sealed-env exec --file <path> -- <command> — decrypt the sealed file in memory and run a command with each KEY=value injected into its environment. Plaintext never lands on disk. Forwards Ctrl+C, propagates exit code. Replaces the fragile decrypt > .env && cmd && rm .env recipe.
    sealed-env exec --file .env.sealed -- node server.js
    sealed-env exec --file .env.sealed -- npm start
  • sealed-env rotate <file> — re-seal with a fresh salt and nonce without changing any value. Invalidates any unseal token previously minted for this file. Use after suspected token leak, on a cadence, or after operator offboarding.
  • sealed-env doctor [<file>] — non-destructive diagnostic that validates env vars + file + decrypt roundtrip without printing any secret values. Each env var reports byte length and a short SHA-256 fingerprint. Safe to paste into CI logs.
  • Shell-aware MISSING_KEY errors — when an env var is missing, the error includes the correct syntax for the user's shell (PowerShell, cmd, bash, Git Bash). Includes a note about the classic Windows footgun where set X=Y in PowerShell creates a PS variable, not an env var.

Changed

  • qrcode-terminal is now lazy-loaded via createRequire only when init --mode enterprise actually renders a QR. Restores the "core has zero third-party imports" property for seal/unseal/decrypt and all operational commands.
  • CI: npm audit --audit-level=high --omit=dev runs in Node CI.
  • Workflow permissions: blocks added explicitly to node-ci.yml and node-release.yml (CodeQL).

Fixed

  • CodeQL: incomplete regex escaping in init's .gitignore membership check. Replaced regex with a Set lookup over trimmed lines.

Documentation

  • THREAT_MODEL.md gained a new section ("Token-payload exposure") and matrix entry T13 documenting the 0.1.0-alpha.{1,2,3} JWS-payload TOTP-secret leak (GHSA-x3r2-fj3r-g5mv). Captures three lessons:
    • JWT/JWS payloads are public — signature attests to integrity, not confidentiality.
    • Carry derived material in tokens, never raw secrets.
    • Use negative regression assertions to surface design regressions.

Dependencies


Full changelog: CHANGELOG.md