Skip to content

Release JavaScript SDK v17.4.1#997

Open
stas-schaller wants to merge 18 commits into
masterfrom
release/sdk/javascript/core/v17.4.1
Open

Release JavaScript SDK v17.4.1#997
stas-schaller wants to merge 18 commits into
masterfrom
release/sdk/javascript/core/v17.4.1

Conversation

@stas-schaller
Copy link
Copy Markdown
Contributor

@stas-schaller stas-schaller commented Apr 14, 2026

Summary

Release branch for JavaScript SDK v17.4.1 — patch release adding IL5 (DoD Impact Level 5) region support, a rollup build toolchain fix, and a security bump for rollup itself.

Changes

New Features

  • IL5 region mapping (KSM-901): adds `IL5` token prefix → `il5.keepersecurity.us` hostname, consistent with Python SDK (KSM-900) and Java SDK (KSM-902) implementations

Maintenance

  • Rollup sourcemaps (KSM-758): replaces deprecated `rollup-plugin-sourcemaps@0.6.3` with `rollup-plugin-sourcemaps2@0.5.4` — resolves peer dependency warnings with Rollup 4.x

Security

  • rollup devDependency bump: `^4.52.3` → `^4.60.1` — fixes HIGH severity arbitrary file write via path traversal affecting Rollup 4.0.0–4.58.0; build-only, not shipped in the published package

Breaking Changes

None.

Related Issues

@stas-schaller stas-schaller changed the title feat(sdk/javascript): release JavaScript SDK v17.4.1 Release JavaScript SDK v17.4.1 Apr 14, 2026
KSM-901: add IL5 region mapping (il5.keepersecurity.us)
…7-4-1

KSM-758: replace rollup-plugin-sourcemaps with rollup-plugin-sourcemaps2
@socket-security
Copy link
Copy Markdown

socket-security Bot commented Apr 14, 2026

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addednpm/​rollup-plugin-sourcemaps2@​0.5.6961008086100
Updatednpm/​rollup@​4.52.3 ⏵ 4.60.188 +1100 +1610099100

View full report

@stas-schaller stas-schaller marked this pull request as ready for review April 15, 2026 21:20
- OTT parser: 4-segment IL5 format (IL5:clientKey:keyId:pubKey); save
  both serverPublicKeyId and serverPublicKey; non-IL5 regions unchanged
- Rotation suppression: ignore server-pushed key_id hints when
  serverPublicKey is in storage (override mode) to prevent bricking
- Constructor: add serverPublicKeyId to SecretManagerOptions; persist
  alongside serverPublicKey on first use
- Tests: update Layer 2/3 tests for new format; add non-IL5 isolation
  test and rotation suppression test (16 tests pass)

Closes KSM-901
KSM-901: JavaScript IL5 dynamic server public key support
Copy link
Copy Markdown

@claude claude Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Code review skipped — your organization has reached its monthly code review spending cap.

An organization admin can view or raise the cap at claude.ai/admin-settings/claude-code. The cap resets at the start of the next billing period.

Once the cap resets or is raised, push a new commit or reopen this pull request to trigger a review.

- Add top-level permissions: contents: read
- Pin actions/checkout and actions/setup-node to SHAs (v6.0.2, v6.3.0)
- Add persist-credentials: false to all checkout steps
- Pin ksm-action to SHA 37abbada (KSM-872 ReDoS fix)
- Bump Node.js from EOL 18 to 22 in build and publish jobs
- Bump Syft v1.18.1 -> v1.32.0; Manifest CLI v0.18.3 -> v0.31.0
- Pin actions/upload-artifact to SHA (v7.0.1)
- Add get-version job to extract version once and share via outputs
- Add test job (Node 22+24 matrix) as gate before build and SBOM
- Add validate-version job to abort if version already on npm
Copy link
Copy Markdown

@claude claude Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Code review skipped — your organization has reached its monthly code review spending cap.

An organization admin can view or raise the cap at claude.ai/admin-settings/claude-code. The cap resets at the start of the next billing period.

Once the cap resets or is raised, push a new commit or reopen this pull request to trigger a review.

validate-version now runs unconditionally (not just when publish=true)
and both test and generate-sbom depend on it. A duplicate-version error
fails fast before the test matrix or SBOM generation starts.
keeper.ts:
- Validate IL5 OTT token: reject >4 segments, non-integer keyId, short
  public key; fixes silent misconfiguration on malformed tokens
- Throw clear error when server rejects a custom IL5 public key instead
  of surfacing raw JSON error message
- Persist serverPublicKeyId in postQuery so write operations
  (createSecret, updateSecret, etc.) honour the option, not only getSecrets
- Keep writes in fetchAndDecryptSecrets so they are available before
  prepareGetPayload runs

keeper.test.ts:
- Replace bare catch{} in Layer 3 test with explicit rejects.toThrow
- Update rotation suppression test comment to note e2e coverage gap
- Replace localConfigStorage() with inMemoryStorage({}) in e2e test
- Remove unused localConfigStorage import
- Add IL5 OTT negative-path tests: >4 segments, non-integer keyId,
  short public key, lowercase il5 prefix

test.js.yml: add Node 20 to test matrix (still Active LTS)
package.json: add engines field (node >=20)
CHANGELOG.md: document IL5 dynamic key injection feature (was missing)
publish.npm.yml: remove unused artifact upload from build-npm job;
  add permissions:{} to validate-version job
manifest sbom CLI does not forward --version to Syft's --source-version
flag, so Syft infers the version from git and produces a Go pseudo-version
(v0.0.0-YYYYMMDDHHMMSS-hash) in the SPDX root package versionInfo field.
Use the -- passthrough to explicitly set --source-name and --source-version
on the Syft invocation so the SPDX document root reflects the real version.

Also add get-version to generate-sbom needs so VERSION output is accessible.
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