> For the complete documentation index, see [llms.txt](https://docs.keeper.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.keeper.io/release-notes/jp/enterprise/keeper-secrets-manager/2026/javascript-sdk-17.6.0.md).

# JavaScript SDK 17.6.0

2026年9月17日リリース

{% hint style="info" icon="lightbulb-exclamation-on" %}
**`cachingPostFunction` の削除 (Node):** `createCachingFunction(storage, options?)` に置き換えられました。`cachingPostFunction` を直接呼び出していた場合は、新しい関数に切り替え、作業ディレクトリ内にある古い平文キャッシュファイルを削除してください。
{% endhint %}

### 更新内容 <a href="#updates" id="updates"></a>

* **KSM-1209:** すべてのネットワーク呼び出し (クエリ、ファイルのアップロード、ファイルのダウンロード) に、上限付きで設定可能なリクエストタイムアウトを追加。`SecretManagerOptions` の `requestTimeoutMs` (デフォルト30秒) で設定できます。`downloadFile`、`downloadThumbnail`、`uploadFile` では、呼び出しごとに `timeoutMs` を指定してこの値を上書きすることも可能です。タイムアウトが発生した場合、呼び出しは適用されたタイムアウト値を示す `KeeperError` で拒否されます。
* **KSM-1073:** `pamDatabase` レコードの `pamSettings.connection` に `dbConnectionMethod` フィールドが欠落していた不具合を修正。
* **KSM-1079:** 応答内のフォルダのキーが破損または欠落している場合に `getFolders()` がクラッシュしていた不具合を修正。復号できないフォルダはスキップされるようになりました。
* **KSM-1084:** サーバーが一部のUIDを拒否した場合でも `deleteSecret()` および `deleteFolder()` が成功として扱われていた不具合を修正。アイテム単位のサーバーエラーメッセージが呼び出し元に伝わるようになりました。
* **KSM-748:** 共有フォルダ内でコマンダーまたはボルトUIから作成されたレコードが、`getSecrets()` で取得されずに欠落していた不具合を修正。
* **KSM-1035:** スロットリングのリトライのジッターが、両側 (±25%) ではなく一方向 (0\~+25%) になりました。また、サーバーから提供される `retry_after` の上限が176秒になりました。
* **KSM-1128:** `postQuery` 内のサーバー鍵ローテーションのリトライが無期限ではなく、最大3回に制限されました。また、サーバーが提示する鍵IDは、保存前に検証されるようになりました。
* **KSM-1254:** Nodeプラットフォームの `hash()` が `tag` パラメータを無視していた不具合を修正。
* **KSM-1332:** ブラウザのIndexedDBストレージが、ストレージ障害発生時に拒否されず無期限にハングしていた不具合を修正。
* **KSM-1251:** 応答本文が1000バイトを超える場合に、スロットリングおよび鍵ローテーションの検出処理が解析に失敗し、その応答に対するリトライが行われなくなっていた不具合を修正。
* **KSM-1297:** サーバーから提供されるフォルダの親情報に循環参照がある場合、`getSharedFolderUid()` が無期限にハングし、イベントループやブラウザタブ全体をブロックしていた不具合を修正。循環が閉じるフォルダの名前を示す、分かりやすいエラーが送出されるようになりました。
* **KSM-1342:** 大容量ファイル (おおむね75MB以上) のダウンロードが、誤ったタイムアウトで失敗する不具合を修正。原因は、新しいリクエストタイムアウトの追跡処理が、ネットワークチャンクを受信するたびに応答バッファ全体をコピーし直していたことでした。チャンクは、応答が完了した時点で一度だけ結合されるようになりました。
* **KSM-1351:** `hasEncryptedData()` および `hasReadableData()` が、暗号化済みの実データを約128回に1回の割合で未暗号化と誤判定していた不具合を修正。どちらの関数も、デコード後の先頭1文字を確認するだけではなく、実際にJSONとして解析できるかどうかを確認するようになりました。
* **KSM-1395:** 本番バックエンドに対してスロットリングのリトライが一度も発生しない不具合を修正。リトライの判定処理はHTTP 403のみを確認していましたが、バックエンドは2026年6月15日以降、スロットリングされたシークレットマネージャーのリクエストに対してHTTP 429を返すようになっていました。判定処理は403と429の両方を受け付けるようになりました。
* **KSM-1265:** **互換性に影響 (Nodeのみ):** キャッシュキーを保護対象データと同じ場所に平文で保存していた `cachingPostFunction` を、`createCachingFunction(storage, options?)` に置き換えました。キャッシュはアプリキーから導出した鍵で暗号化され、改ざん検知用の認証も行われるようになり、デフォルトでは `~/.keeper/ksm-cache.dat` に保存されます。詳しくは、本ページ先頭の互換性に関する注記をご参照ください。
* **KSM-1266:** `localConfigStorage` が、破損・読み取り不可・形式不正な構成ファイルを暗黙的に「構成がまだ存在しない」として扱っていた不具合を修正。これらの場合には、型付きの `KeeperStorageError` (可能な場合はファイルシステムのエラーコードを含む) が送出されるようになり、構成ファイルの書き込みはアトミックに行われるようになりました。
* **KSM-1267:** `getFolders()` が、復号できずにスキップしたフォルダの原因を分類し、対象のフォルダ名を記載した概要ログを出力するようになりました。`SecretManagerOptions` に追加された任意の `onDecryptionError` コールバックにより、呼び出し元は部分的な結果に対して独自の処理を行ったり、処理を中断させたりできます。
* **KSM-1263:** 構成ファイルおよびキャッシュファイルの権限が、ファイル作成時だけでなく、書き込みごとに再適用されるようになりました。
* **KSM-1256、KSM-1255:** 保存されている `serverPublicKeyId` が組み込みの鍵テーブルに存在しない場合、それ以降のすべてのリクエストが永続的にブロックされていた不具合を修正。デフォルトの鍵に自動的に復旧するようになりました。また、変更がない場合に `serverPublicKey` / `serverPublicKeyId` を呼び出しごとに再保存する処理を停止し、同時実行中のリクエストによって鍵とIDの組み合わせが不整合な状態で保存される競合状態を解消しました。カスタムの `serverPublicKey` を指定する場合は、同じ呼び出しで必ず `serverPublicKeyId` も指定する必要があります。

### **リソース** <a href="#resources" id="resources"></a>

* [npmパッケージ](https://www.npmjs.com/package/@keeper-security/secrets-manager-core)
* [JavaScript SDKに関するドキュメント](/keeperpam/jp/secrets-manager/developer-sdk-library/javascript-sdk.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.keeper.io/release-notes/jp/enterprise/keeper-secrets-manager/2026/javascript-sdk-17.6.0.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
