# ストレージと暗号化 (/ja/docs/workspaces/storage-and-encryption)

Echolotは、2種類のデータを分けて保持します。ワークスペースは、好きな場所に置くフォルダです。Echolot自身のデータ（レスポンスのボディ、履歴、クラッシュレポート）は、あなたのMac上のストレージフォルダにあります。そのフォルダを削除して失うのは履歴で、リクエストは失われません。

## 保存場所 [#where-things-are]

| 項目 | 場所 |
| --- | --- |
| ワークスペース | 作成した場所、または置いた場所。 |
| シークレットの値、OAuthトークン、暗号鍵 | ログインキーチェーン。 |
| レスポンスのボディと通信のキャプチャ | Echolotのストレージフォルダ内の`Payloads`。 |
| 履歴 | Echolotのストレージフォルダ内の`History`。ワークスペースごとに1ファイル。 |
| 共有していないアシスタントの会話 | Echolotのストレージフォルダ内の`Assistant`。 |
| クラッシュレポート（許可した場合） | Echolotのストレージフォルダ内の`Crash Reports`。 |
| 自分のコードテンプレート | Echolotのストレージフォルダ内の`Code Templates`。[書き出し](/docs/workspaces/exporting#copy-a-request-as-code)を参照してください。 |
| サンプルのワークスペース | Echolotのストレージフォルダ内の`Examples.echolot`。 |
| 設定、グローバル変数、各ワークスペースのアクティブな環境 | Echolotの環境設定。 |

Echolotのストレージフォルダは`~/Library/Application Support/Echolot`です。開くには、**設定 › 情報**に移動して、**レスポンスと履歴**の横の**Finderに表示**をクリックします。

<Edition only="appstore">
  App Store版は、`~/Library/Application Support/Echolot`の代わりに、独自のコンテナに同じデータを保存します。
  **設定 › 情報 › Finderに表示**を使えば、どちらのエディションでも正しいフォルダが開きます。ワークスペースは、どちらでも保管した場所にそのまま残り、どちらでも開けます。
</Edition>

## レスポンスのボディ [#response-bodies]

レスポンスのボディはすべて、届いた時点でメモリに入れずに直接ファイルに書き込まれるので、数ギガバイトのレスポンスでも問題ありません。ボディは、何回届いても1回だけ保存されます。同じ応答が返る同じリクエストを10回送信しても、コピーは1つだけ保持されます。

ボディが使える容量は、**設定 › ストレージ › レスポンスのボディ**で設定します。**レスポンスのボディを保持する上限**を1、2、5（デフォルト）、10、20、50 GBから選びます。このサイズを超えると、Echolotは最近使われていないボディから削除します。次のものは常に保持されます。

- 開いているタブに表示されているボディ
- 保存済みの各リクエストの最新のレスポンス（再起動後も再び表示されます）
- `$responseJSONPath`などの[動的な値](/docs/requests/dynamic-values)を通じて、ほかのリクエストが読むボディ

上限の下の行には、保存されているボディがディスク上で使っている容量が表示されます。その容量をすぐに解放するには、<strong>保存済みのボディを削除…</strong>をクリックして確認します。Echolotは、開いているウインドウに必要なものだけを残します。開いているタブに表示されているボディと、開いているワークスペースの各リクエストの最新のレスポンスです。開いていないワークスペースのものを含め、それ以外のボディはすべて削除され、元に戻せません。リクエストとその履歴は残り、古いレスポンスはボディなしで表示されます。

履歴は、各やり取りが送信したリクエストを保持します。256 KBを超えるリクエストボディは履歴に保持されませんが、通信のキャプチャには先頭部分が残ります。

## 履歴 [#history]

<strong>設定 › ストレージ › 履歴</strong>では、[履歴](/docs/workspaces/history)がリクエストごとに保持するレスポンスの数を、10、25、50（デフォルト）、100、200から設定します。古いエントリーから順に削除されます。すべての送信は、誰が行ったか（あなた、実行、エージェント）とともに保持されます。ワークスペースの履歴を消去するには、その[履歴ページ](/docs/workspaces/history)の⋯メニューの<strong>履歴を消去…</strong>を使います。リクエスト自身の履歴は、その履歴の一覧にある同じメニューから消去できます。

<Shot id="workspaces-settings-storage" alt="設定のストレージペイン。レスポンスのボディをディスク上で暗号化、レスポンスのボディを保持する上限が5 GB、リクエストごとの履歴が50件のレスポンス" />

## ディスク上のレスポンスのボディを暗号化する [#encrypt-response-bodies-on-disk]

レスポンスには、個人データ、トークン、そのほかAPIが返すあらゆるものが含まれることがあります。暗号化をオンにすると、レスポンスのどの部分も、キーチェーンの鍵がなければEcholotのストレージフォルダ内で読めません。

1. **設定 › ストレージ**を開きます。
2. **レスポンスのボディをディスク上で暗号化**をオンにします。

Echolotは初回に鍵を作成し、**Echolot response storage key**という名前でログインキーチェーンに保管します。新しいボディは、すぐに暗号化されて書き込まれます。すでに保存されているボディは、バックグラウンドで暗号化されます。設定には、進み具合（「860個中120個を暗号化中…」）と、その後の状態（「保存済みのボディ860個がすべて暗号化されています。」など）が表示されます。

ボディは、カウンターモードのAES-256で暗号化されます。そのため、Echolotはボディの残りを復号せずに、任意の部分を読み取れます。ビューア、レスポンス内の検索、大きなボディは、これまでどおり動作します。

### 暗号化の対象 [#what-it-covers]

| 暗号化される | 暗号化されない |
| --- | --- |
| レスポンスのボディ | ワークスペースのファイル（もともとシークレットの値は入っていません） |
| 通信のキャプチャ（送受信した生のバイト列） | 履歴のファイル: 名前、アドレス、ヘッダー、ステータス、所要時間 |
| ボディの整形済みのコピー | Echolotの環境設定 |

履歴のファイルは暗号化されないので、暗号化がオンの間、履歴にはボディのテキストが保持されません。その場合、検索ではリクエストを名前、アドレス、ヘッダーで見つけられますが、ボディの内容では見つけられません。暗号化をオンにすると、履歴がすでにインデックスしていたボディのテキストは削除されます。シークレットの値は、暗号化がオンでもオフでも、履歴ではマスクされます。

### オフにする [#turning-it-off]

**レスポンスのボディをディスク上で暗号化**をオフにします。新しいボディは再び暗号化されずに書き込まれ、Echolotは保存済みのものをバックグラウンドで復号します（「860個中120個を復号中…」）。鍵はキーチェーンに残るので、まだ復号されていないボディも引き続き読めます。

暗号化がオンの間に記録されたレスポンスは、履歴のボディ検索の対象外のままです。それ以降のレスポンスは、再びボディで検索できます。

<Callout type="warn">
  キーチェーンの**Echolot response storage key**の項目は残しておいてください。Echolotは、暗号化されたボディを読むためにこれを必要とします。
</Callout>

鍵を作成または読み取れない場合は、設定にそのことが表示され（「暗号鍵をキーチェーンに保管できませんでした…」）、ボディはそのままです。

## 容量を空ける [#free-up-room]

- **設定 › ストレージ**の**レスポンスのボディを保持する上限**を下げます。Echolotは、その少し後に、最近使われていないボディを削除します。
- [履歴](/docs/workspaces/history#clear-history)ページで、1つのリクエスト、またはワークスペース全体の履歴を消去します。
- Echolotを終了して、ストレージフォルダ内の`Payloads`または`History`を削除します。過去のレスポンスと履歴は失われますが、リクエスト、環境、すべてのワークスペースのファイルは残ります。
