JavaScript SDK 17.5.0
KSM-901: Added custom server public key support for isolated deployments. Supply the key in any of three ways: the
serverPublicKey/serverPublicKeyIdoptions onSecretManagerOptions(the options object passed togetSecrets), the matchingserverPublicKey/serverPublicKeyIdconfig fields, or an extended one-time token in the 4-segment format. When a custom key is configured, server-side key rotation hints are suppressed so the SDK stays pinned to the configured key.KSM-880: Added automatic throttle retry with exponential backoff. HTTP 403
{"error":"throttled"}responses are retried up to 5 times (11s, 22s, 44s, 88s, 176s ±25% jitter), honoringretry_afterwhen present. A typedKeeperThrottleErroris thrown once retries are exhausted. No caller changes required.KSM-887: Added
secureStorage(dbName)browser storage backend — generates a non-extractable AES-256-GCMCryptoKeystored natively in IndexedDB so KSM credentials are never held in extractable form in browser storage.KSM-1010: Added
KeeperRecordLinktyped accessor class andgetLinks()function: exposes permission booleans (isAdminUser,allowsRotation,allowsConnections, etc. withallowedSettingsfallback), data accessors (getDecodedData,getDecryptedData,getLinkData), and settings accessors (getAiSettingsData,getJitSettingsData,getMetaData,getSettingsForPath). All accessors are non-throwing. TypeScript port of Python KSM-992.KSM-1025: Exported
KeeperErrorbase class fromkeeper.ts.KeeperThrottleErrornow extendsKeeperError(which extendsError); null/undefined config-value guards throwKeeperErrorinstead of plainError. Existinginstanceof Errorhandling is unaffected. Migration of remaining throw sites to the typed hierarchy is tracked under the KSM-1024 epic.KSM-1029: Fixed error propagation for stale pinned server key rejections — the diagnostic message now reaches the caller instead of being swallowed by a bare catch block.
KSM-984: Fixed
webSafe64ToBytesandbase64ToBytes(Node and browser) — null/undefined input now throws a typedKeeperErrornaming the affected field instead of a cryptic nativeTypeError. Parity with Python KSM-808 and Java KSM-985.KSM-758: Replaced deprecated
rollup-plugin-sourcemaps@0.6.3withrollup-plugin-sourcemaps2@0.5.6, resolving peer dependency warnings with Rollup 4.x and a transitivepicomatchHIGH vulnerability (dev dependency only; no production impact).Security: Bumped
rollupdev dependency to^4.60.1— fixes HIGH-severity arbitrary file write via path traversal affecting 4.0.0–4.58.0 (dev dependency only; no impact on SDK consumers).
Links:
Last updated

