# Self-hosted LiveSync の設定項目 Self-hosted LiveSync には数多くの設定項目があります。このドキュメントでは各設定の詳細について説明します(導入手順そのものではありません)。設定は複数のカテゴリに分類され、アイコンで表示されます。アイコンの対応は以下のとおりです。 Obsidian 1.13 以降では、ルート設定ページはタスク別に整理されています。未設定の状態では **Quick Setup(クイックセットアップ)** が最初に表示され、続いて **Synchronisation(同期)** と **General Settings(一般設定)** が表示されます。本プラグインの設定が完了すると、**Synchronisation(同期)** と **General Settings(一般設定)** が先頭になり、続いて **Set up other devices(他のデバイスのセットアップ)** と **Quick Setup(クイックセットアップ)** が表示されます。以前のサポート対象 Obsidian バージョンでは、同じ項目を備えたペイン形式が維持されます。未設定時は **Quick Setup** が開き、設定済み時は **General Settings** が開きます。 | アイコン | ルートグループ | 内容または利用条件 | | :--: | ------------------------ | ------------------------------------------------------------- | | 🧙‍♂️ | Quick Setup | セットアップ URI、オンボーディング、有効化操作 | | 🔄 | Synchronisation | リモート設定および同期設定 | | ⚙️ | General Settings | 外観、ロギング、追加メニュー | | 📲 | Set up other devices(他のデバイスのセットアップ) | 設定完了後のセットアップ URI のコピーまたは QR コード表示 | | 🛠️ | Maintenance and recovery(メンテナンスと復旧) | メンテナンスおよび Hatch(ハッチ) | | 🧩 | Extra features(追加機能) | 高度な機能が有効な場合のセレクターおよびカスタマイズ同期 | | 🔧 | Advanced settings(高度な設定) | 各モードが有効な場合の高度な設定、パワーユーザー向け設定、パッチ | | ℹ️ | Help and information(ヘルプと情報) | ヘルプとトラブルシューティング、更新履歴 | ## 1.0 における機能の成熟度 以下のステータスは、1.0 系統におけるオプション機能および互換性機能に適用されます。 | ステータス | 対象機能 | 1.0 の方針 | | --- | --- | --- | | サポート対象(オプトイン) | Peer-to-Peer(P2P)同期、非表示ファイル同期、カスタマイズ同期 | 維持されており、実際のランタイムテストでカバーされています。それぞれのセットアップ手順や運用上の制約を受け入れられる場合にのみ有効化してください。 | | メンテナンス継続(高度な設定) | データ圧縮 | ストレージと帯域幅のトレードオフを明示的に選ぶ機能として利用できます。複数種類のデータを含むデータセットでは、容量の節約効果より処理負荷とメモリ消費の方が大きくなるため、デフォルトでは無効です。 | | ベータまたは実験的機能 | JWT 認証、除外ファイル、新しいファイルによる競合の自動解決、CouchDB 向けガベージコレクション V3 | 明示的なテストや特殊な用途のために残されています。デフォルトでは無効であり、サポートされる最小セットアップには含まれません。 | | 互換性維持のみ | V1 動的反復回数、旧 IndexedDB アダプター、現在非推奨のハッシュアルゴリズム、Eden チャンク、保存された `doNotUseFixedRevisionForChunks` キー | 既存の設定とデータは引き続き読み取り可能です。新規 Vault では現在のデフォルトが使用され、互換性コントロールは移行や復旧パスで必要な場合にのみ表示されます。 | ### 初期化が必要な変更の適用 一部の互換性設定はすぐには保存されません。**Apply(適用)** を選択するまで保留状態となります。適用アクションはルート設定ページおよび該当する子ページに表示され続けます。再起動後にどの既存データを使用するかを確認する以下のダイアログが表示されます。 - **Reset Synchronisation on This Device(このデバイスの同期をリセット)**: 設定されたリモートからこのデバイスのローカルデータベースを再構築します。P2P の場合、再起動後にオンラインのソースデバイスを選択します。 - **Overwrite Server Data with This Device's Files(このデバイスのファイルでサーバーデータを上書き)**: この Vault からローカルおよびリモートのデータベースを再構築します。P2P の場合、現在の Vault ファイルからこのデバイスのみを準備します。 - **Review another way to apply these settings(これらの設定を適用する別の方法を確認)**: 変更を保留にしたままにするか、初期化なしで適用するかの別の選択肢に戻ります。初期化なしで適用するのは高度な互換性のためのフォールバックであり、既存の同期データと互換性がなくなる可能性があります。 LiveSync は保留中の設定を保存する前に、選択された次回起動時の操作を予約します。検証またはその予約に失敗した場合、設定は未適用のままとなり、設定のみを適用する選択肢は提示されません。 | アイコン | 説明 | | :--: | ------------------------------------------------------------------ | | 💬 | [0. Change Log(更新履歴)](#0-change-log) | | 🧙‍♂️ | [1. Quick Setup and Extra menus(クイックセットアップと追加メニュー)](#1-quick-setup-and-extra-menus) | | ⚙️ | [2. General Settings(一般設定)](#2-general-settings) | | 🛰️ | [3. Remote Configuration(リモート設定)](#3-remote-configuration) | | 🔄 | [4. Sync Settings(同期設定)](#4-sync-settings) | | 🚦 | [5. Selector(セレクター:高度な設定)](#5-selector-advanced) | | 🔌 | [6. Customisation sync (Advanced)(カスタマイズ同期:高度な設定)](#6-customisation-sync-advanced) | | 🧰 | [7. Hatch(ハッチ)](#7-hatch) | | 🔧 | [8. Advanced settings(高度な設定)](#8-advanced-settings) | | 💪 | [9. Power users(パワーユーザー向け設定)](#9-power-users) | | 🩹 | [10. Patches (Edge Case)(パッチ:エッジケース)](#10-patches-edge-case) | | 🎛️ | [11. Maintenance(メンテナンス)](#11-maintenance) | ## 0. 変更履歴 このペインには常に最新のリリースの履歴が表示されます。特定のプラグインバージョンが読まれたかどうかは追跡せず、通常のアップデート後に自動的に開くことはありません。 内部データベースや設定の互換性レビューは、このペインではなく独立した安全確認ダイアログを使います。Obsidian のレイアウト準備が整った後、保留中のレビューがある場合は **「互換性レビューのため同期を一時停止しました(Synchronisation paused for compatibility review)」** として開きます。ダイアログにはリモート同期が一時停止された理由が説明され、アップデート前に設定されていた自動同期の選択は保持されます。ダイアログを閉じるか **「同期の一時停止を維持(Keep synchronisation paused)」** を選択すると、同期は一時停止されたままになります。通知(Notice)内の **「理由を確認(Review why)」** リンクをクリックするか、コマンド `Review why synchronisation is paused` を実行して再度開けます。**Change Log** を開いてもレビューを承認したことにはなりません。 新しいデバイスを追加した場合や、新しいプロファイルで複製された Vault を開いた場合など、デバイスローカルの承認記録が存在しないこと自体は、レビューを必須とする理由にはなりません。他に保留中のレビューがない場合、LiveSync は現在の内部データベースバージョンを記録します。未設定の既存 Vault はオンボーディング状態のままとなり、次回設定済み起動時に互換性を評価した上で、マーカーが存在しないことを記録します。既知のバージョン差異、無効なマーカー、設定スキーマの問題、および保存済みのレビューについては引き続き対応が必要です。検出された状態が実行中のバージョンで処理可能な場合、**「同期を再開(Resume synchronisation)」** を選択すると現在の内部データベースバージョンが記録され、設定どおりの動作が復元されます。古いバージョンのプラグインでは、新しいデータベースや設定バージョンによって引き起こされた一時停止を解除できません。 ## 1. クイックセットアップと追加メニュー Quick Setup(クイックセットアップ)には、Self-hosted LiveSync を設定するためのアクションが含まれています。Obsidian 1.13 以降では、これらのアクションはルート設定ページに表示されます。ペインベースのインターフェースでは、**Quick Setup** ペインにまとめて表示されます。 未設定の環境では、オンボーディングダイアログは自動で開かず、Vault のローカルデータベースへのスキャンも行われません。長時間表示される通知からオンボーディングを開始できます。通知を閉じた場合は、Obsidian 1.13 以降ではルートの **Quick Setup** グループにある **「オンボーディングウィザードを再実行(Rerun Onboarding Wizard)」** を使用してください。以前のサポート対象バージョンでは、**Self-hosted LiveSync settings** → **Quick Setup** → **Rerun Onboarding Wizard** から開きます。 このデバイスが同期の初期化元となるファイルを所有している場合は「新しいデバイス(new-device)」のパスを選択してください。すでに確立されたリモートの状態を受信する場合は「既存デバイス(existing-device)」のパスを選択します。ウィザードは設定を有効化して再起動を要求する前に、それぞれ Rebuild(再構築)または Fetch(取得)を予約するため、通常の起動時スキャンが実行される前に選択した初期化処理が実行されます。 ### 1. セットアップ操作 Self-hosted LiveSync を設定する推奨手順です。数回のクリックで設定できます。 #### セットアップ URI で接続 [動作中のデバイスからコピーした](#copy-the-current-settings-to-a-setup-uri)、またはセットアップスクリプトによって生成されたセットアップ URI を使用して Self-hosted LiveSync を設定します。 現在のセットアップ URI は、リモートプロファイル、表示名、および個別のメイン/P2P の選択を保持します。フラットな接続設定のみを含む古い形式のセットアップ URI も引き続きサポートされており、適用時にリモートプロファイルへ移行されます。 設定するデバイスに応じてアクションを選択してください。 | 選択肢 | 動作 | | --- | --- | | **⚠️ Initialise or overwrite the remote(リモートを初期化または上書き)** | この Vault からリモートを初期化します。リモート上の既存データは上書きされます。 | | **🔗 Join this device(このデバイスを参加させる)** | 既存のリモートに参加し、その同期データをこのデバイスに取得(Fetch)します。追加のデバイスにはこれを使用します。 | | **⚙️ Apply settings only (advanced)(設定のみ適用:高度な設定)** | 再構築や取得を行わずに設定のみを適用します。このデバイスにすでに互換性のある同期データがある場合にのみ使用してください。 | #### 手動セットアップ Self-hosted LiveSync をステップバイステップで手動設定します。最小限の設定項目で設定できます。 手動で CouchDB、オブジェクトストレージ、または P2P のセットアップを完了すると、すでに保存されているプロファイルを置き換えることなく、対応するリモートプロファイルが作成されます。CouchDB およびオブジェクトストレージのセットアップでは、新しいプロファイルがメインリモートとして選択されます。P2P セットアップでは P2P 用として選択され、ウィザードが LiveSync を有効化している場合はメインリモートとしても選択されます。わかりやすい表示名が自動生成され、後から変更可能です。 #### LiveSync を有効化 セットアップが完了していない場合にのみこのボタンが表示されます。手動セットアップが完了したら、このボタンからこのデバイスで LiveSync を有効化できます。 ### 2. 他のデバイスをセットアップ #### 現在の設定をセットアップ URI にコピー 動作中のデバイスから現在の設定をコピーし、[追加のデバイスでセットアップ URI を開きます](#connect-with-setup-uri)。URI と個別のパスフレーズは厳重に保管してください。 パスフレーズを入力した後、**Setup URI availability** で **Time-bound(有効期限付き)** または **Compatible (no time limit)(互換性優先:無期限)** を選択します。 - **Time-bound(有効期限付き)**: デフォルトです。ダイアログにはこのデバイスのローカルタイムゾーンでの正確な終了時刻が表示されます。現在の固定7日間の UTC ウィンドウの終了時点を指すため、残り時間は7日未満になる場合があります。受信側デバイスには、有効期限付きセットアップ URI をサポートするバージョンが必要です。 - **Compatible (no time limit)(互換性優先:無期限)**: 時間制限のない既存の暗号化 URI 形式を使用します。古い受信側デバイスでも、URI に含まれる設定をサポートしている必要があります。 時間制限は URI を開く際にチェックされます。すでにインポートされた設定や認証情報は、期限後も引き続き使用可能です。この制限によってリモートアクセス権が取り消されることはなく、デバイスの時計を巻き戻して URI を再利用することも防げません。表示された時刻を過ぎた場合は、動作中のデバイスから新しい URI を生成してください。 QR コード共有は既存の形式を使用し、時間制限はありません。QR コード には共有設定と認証情報が含まれているため、厳重に保管してください。 ### 3. 追加メニュー 設定ダイアログを簡潔に保つため、一部のメニューや機能はデフォルトで非表示になっています。Obsidian 1.13 以降では、**General Settings** → **Extra menus** から有効化できます。ペインベースのインターフェースでは、General Settings 内に同様のコントロールが表示されます。 #### 高度な機能を有効化 画面表示: **高度な機能を有効にする** 設定キー: `useAdvancedMode` この設定を有効にすると、以下のペインが表示されます。 | アイコン | 説明 | | :--: | ------------------------------------------------------------------ | | 🚦 | [5. Selector (Advanced)](#5-selector-advanced) | | 🔌 | [6. Customisation sync (Advanced)](#6-customisation-sync-advanced) | | 🔧 | [8. Advanced settings(高度な設定)](#8-advanced-settings) | #### エキスパート機能を有効化 画面表示: **エキスパート機能を有効にする** 設定キー: `usePowerUserMode` この設定を有効にすると、以下のペインが表示されます。 | アイコン | 説明 | | :--: | ------------------------------------------------------------------ | | 💪 | [9. Power users(パワーユーザー向け設定)](#9-power-users) | #### エッジケース対応機能を有効化 画面表示: **エッジケース対応機能を有効にする** 設定キー: `useEdgeCaseMode` この設定を有効にすると、以下のペインが表示されます。 | アイコン | 説明 | | :--: | ------------------------------------------------------------------ | | 🩹 | [10. Patches (Edge Case)](#10-patches-edge-case) | ## 2. 一般設定 ### 1. 外観 アイコンの意味、進行状況カウンター、CSS スニペットについては、[ステータス表示ガイド](tips/status-display.md) を参照してください。 #### 表示言語 画面表示: **インターフェースの表示言語** 設定キー: `displayLanguage` 表示言語を変更できます。システムの言語や Obsidian の言語設定とは独立しています。 注意: 未翻訳のメッセージも一部含まれます。エラー報告の際は一度「既定(英語)」に戻してください。もちろん、翻訳への貢献は大歓迎です。 #### エディタ内にステータスを表示 画面表示: **ステータスをエディタ内に表示** 設定キー: `showStatusOnEditor` エディタ内に同期ステータスを表示できます。 再起動後に反映されます。 #### ステータスをアイコンのみで表示 画面表示: **ステータス表示をアイコンのみにする** 設定キー: `showOnlyIconsOnEditor` ステータスをアイコンのみで表示します。ステータスバーのスペースを節約したい場合に便利です。 #### ステータスバーにステータスを表示 画面表示: **ステータスバーに、ステータスを表示** 設定キー: `showStatusOnStatusbar` ステータスバーに同期ステータスを表示できます(デフォルト: オン)。 #### ファイル警告バナーの代わりにステータスアイコンを表示 画面表示: **ファイル警告バナーの代わりにステータスアイコンを表示** 設定キー: `hideFileWarningNotice` 有効にすると、ファイル警告バナーの代わりにステータス内に ⛔ アイコンが表示されます。詳細情報は表示されなくなります。 #### ネットワーク警告の表示方法 画面表示: **ネットワーク警告の表示方式** 設定キー: `networkWarningStyle` 同期サーバーに接続できないときのネットワークエラーの表示方法を設定します。 #### 大量の変更受信時にワークスペースを保護(オプトイン) 画面表示: **SyncGuard を有効化** 設定キー: `syncGuardEnabled` 有効にすると、CouchDB LiveSync の起動時または再開時に多数のノート変更を受信したことを検知した後、ワークスペースの操作を一時的にブロックします。保護中も変更の受信と適用は続きます。同期に失敗した場合やリモートを利用できない場合も含め、オーバーレイはいつでも解除できます。この設定はデバイスごとに保存され、同期先の他のデバイスには影響しません。 SyncGuard の設定はメインのプラグイン設定とは別に、このデバイス、Vault、および[データベースサフィックス](#database-suffix)ごとにローカル保存されます。セットアップ URI では転送されません。以前のテストビルドで保存された値は、プラグイン起動時にデバイスごとの保存領域へ移行されます。 データベースサフィックスを変更した後は、Obsidian を再起動してから、オーバーレイを利用する前に SyncGuard の2つの設定を確認してください。再起動するまでは、設定画面に以前のサフィックスに対する値が表示される場合があります。 このしきい値により、通常の少量の転送では操作を妨げません。ただし、受信前に変更数を把握できないため、SyncGuard が有効になる前に一部のノートが更新されることがあります。SyncGuard はユーザーインターフェース上の補助機能であり、Vault のアトミックなスナップショットを保証するものでも、他のプラグインや外部ツールの操作を制限するものでもありません。ほかのリモート種別や、初回のキャッチアップ後に発生した通常のライブ変更には適用されません。 **待たずに続行**を選ぶと、同期が続いている間もワークスペースを操作できるため、一部のノートが最新でない場合があります。SyncGuard は主に起動時または再開時の保護機能です。手動で解除した後、内部的に再接続してもオーバーレイが再表示されるとは限りません。後続の変更が反映されたか確認するには、同期状態を確認してください。 #### ワークスペース保護に必要な受信ファイル数 画面表示: **SyncGuard を適用する最小ファイル数** 設定キー: `syncGuardMinimumFiles` キャッチアップ中に保護を開始するために必要な、異なるノートのメタデータドキュメント数です(デフォルト: 20)。チャンクドキュメントや同じノートの繰り返しのリビジョンは件数に加算されません。保護が始まると、ネットワークからのキャッチアップが正常に完了し、観測されたローカル処理がすべて終わるまで保護が続きます。キャッチアップに失敗した場合は、**待たずに続行**を選んでオフラインで作業してください。 ### 2. ログ #### 通知のみを表示 画面表示: **通知のみ表示** 設定キー: `lessInformationInLog` ログ出力を抑制し、通知のみを表示します。不具合のログを報告する際は無効にしてください。 #### 詳細ログ 画面表示: **詳細ログ** 設定キー: `showVerboseLog` 詳細なログを出力します。不具合のログを報告する際は有効にしてください。 ## 3. リモート設定 ### 1. 接続設定 Self-hosted LiveSync は、**Connection settings** → **Saved connections** に複数のリモート接続プロファイルを保存します。各プロファイルは CouchDB データベース、オブジェクトストレージ接続、または P2P 設定を表し、1つの Vault 内に複数のプロファイルを保持できます。 各プロファイルには一意の内部識別子と表示名があります。表示名は重複しても問題なく、プロファイルの選択には使用されません。メインリモートと P2P リモートは個別に選択されるため、コードや設定のインポートでは `default` のような特別な識別子に依存せず、両方の選択を保持する必要があります。 - **➕ 新規接続を追加 (Add new connection)**: セットアップダイアログを開いて新しい接続プロファイルを作成します。 - **📥 接続をインポート (Import connection)**: 接続文字列(`sls+https://...`、`sls+s3://...`、`sls+p2p://...` など)を貼り付けてリモート設定プロファイルをインポートします。 - **🔧 設定 (Configure)**: セットアップダイアログを開き、選択した接続プロファイルの設定を編集します。 - **✅ 有効化 (Activate)**: このプロファイルを選択し、現在アクティブなリモートとして有効化します。 - **🗑️ 削除 (Delete)**: 接続プロファイルを一覧から削除します。 #### リモートの種類 画面表示: **現在の同期方式** 設定キー: `remoteType` アクティブな接続タイプです。接続プロファイルをアクティブ化すると、自動的に従来の構成へ反映されます。 ### 参加済みデバイス **「参加済みデバイス」** から **「デバイスを確認」** を選択すると、アクティブな CouchDB またはオブジェクトストレージ接続上のデバイスレコードを確認できます。コマンドパレットやバージョン通知からも同じ操作を実行できます。**「更新」** を選択すると、リモートから一覧を再読み込みします。このデバイスのレコードがリモートに存在しない場合も含め、常にこのデバイスが先頭に表示されます。このダイアログを開いたり更新したりしても、欠落している CouchDB データベースが自動作成されることはありません。 一覧には各デバイスの ID、記録されたプラットフォーム、プラグインのバージョン、アプリのバージョン、最後に記録された接続日時が表示されます。古いクライアントでは情報が不完全な場合があります。これらの記録から、デバイスが現在オンラインかどうかは分かりません。ロックされたリモートでは、許可リスト外のデバイスは **「接続拒否」** と表示されます。 同期が開始される前、およびこのダイアログが更新されたときに、Self-hosted LiveSync は自身より新しいまたは古いプラグインバージョンが記録されていないか確認します。バージョンが異なる場合は、デバイス間でプラグインバージョンを確認して統一するよう推奨通知が表示されます。これは推奨通知であり、同期自体は停止しません。ダイアログでは、明示的に接続がブロックされていない限り異なるバージョン間の同期は概ね安全ですが、効率が低下したりストレージを多く消費したりする可能性があること、また P2P 同期が利用できない可能性があることが説明されます。不明な開発バージョンのラベルは未分類のままとなります。自動確認は同期開始時に最大で1分に1回実行され、接続を持続的にポーリングすることはありません。 **「デバイスの記録を削除(Forget device)」** は、確認後に他のデバイスの参加レコードを削除します。リモートのロック状態や他のすべてのデバイスは保持されます。Vault ファイルが削除されたり、認証情報が無効化されたりすることはありません。ロックされていないリモートでは、デバイスは再度登録可能です。ロックされたリモートでは、既存の復旧手順が適用されます。CouchDB に保存後、結果が確認されます。確認できない場合は一覧を更新して再試行してください。CouchDB はこれらのレコードを同時更新を拒否しないローカルドキュメントにまとめて保存するため、他のデバイスからの変更によって上書きされる可能性があります。他のデバイスで同期を一時停止することで競合を回避できます。オブジェクトストレージは条件付き更新を使用します。サーバーが条件付き更新をサポートしていない場合、レコードは保持されます。 ### 2. 通知 #### 起動時にリモートの推定ストレージ容量を通知 画面表示: **起動時に推定リモートストレージサイズがしきい値を超えたら通知** 設定キー: `notifyThresholdOfRemoteStorageSize` MB 単位(0で無効化)。起動時、この値が未設定の場合、または推定リモートストレージサイズがこの値を超えた場合に、クリック可能な長時間表示通知が表示されます。**「選択肢を確認(Review options)」** を選択すると、時間制限のない詳細ダイアログが開きます。明示的にリモートサイズチェックを実行すると、そのダイアログが直接開きます。 ### 3. プライバシーと暗号化 #### エンドツーエンド暗号化 画面表示: **E2E暗号化** 設定キー: `encrypt` エンドツーエンド暗号化を有効にします。有効化を推奨します。パスフレーズを変更した場合は、データベースの再構築が必要になります(案内が表示されます)。 #### パスフレーズ 画面表示: **パスフレーズ** 設定キー: `passphrase` 暗号化パスフレーズです。パスフレーズを変更した場合は、データベースの再構築が必要になります(案内が表示されます)。 #### 独立した ID の導出 設定キー: `idDerivationVersion`, `idDerivationKey` この設定は、暗号化されたチャンク ID および難読化されたメタデータドキュメント ID 用に独立したキーを保存します。新しい Vault のセットアップでは、E2EE が有効な場合にデフォルトで **「ランダムな ID キーを生成(Generate a random ID key)」** が選択されます。既存の Vault ではデフォルトで **「現在の設定を保持(Keep current configuration)」** が選択されます。ラジオボタンの選択肢には利用可能な構成がまとめて表示されます。**Keep current configuration** の下の小さな説明文には、保存されている構成(既存の ID キー、または E2EE パスフレーズにリンクされたレガシー ID)が表示されます。その選択肢はどちらの状態も維持します。新規 Vault で明示的に選択するとレガシー ID が使用されます。レガシー構成の場合、E2EE パスフレーズを変更すると ID も変更されます。 自分でキーを設定するには、**「ID キーを設定(Set an ID key)」** を選択します。その後、**「現在の E2EE パスフレーズから導出(Derive from current E2EE passphrase)」**、**「ID ソースを入力(Enter an ID source)」**、**「ID 復旧コードをインポート(Import an ID recovery code)」** の3つの選択肢が表示されます。後ろの2つではテキスト入力欄が表示されます。ソース入力欄はタグ付きの復旧コードも認識します。空欄のままにすると既存のキーが保持され、最初のキー設定には入力が必要です。通常のソースは設定を適用する際にキーに変換され、後から再表示できません。復旧コードは保存されたキーを直接インポートします。 このデバイスで保存されたキーを表示・コピーするには、**「現在の復旧コードを表示(Show current recovery code)」** を使用します。コードは `sls-id-v1:` で始まり、別のキーを導出することなく、別のデバイスの手動入力欄に貼り付けられます。セットアップ URI は別のパスフレーズの下で同じ保存済みキーを保持します。すべてのデバイスを紛失した後に構成を復元する必要がある場合は、ランダムなデフォルトに頼る前に、復旧コードを保存するか、再現可能なソースを選択してください。コードは厳重に保管してください。 E2EE パスフレーズをソースとして使用すると、後からパスフレーズを変更しても ID の安定性が保たれますが、既知の ID に基づく推測から元のパスフレーズを分離できません。その分離が重要な場合は、長く予測困難な別のソースを使用してください。強度の低いソースをハッシュ化しても強度は向上しません。 後から E2EE パスフレーズを変更しても保存された ID キーは変更されませんが、暗号化されたデータに対しては既存の再暗号化および再構築(Rebuild)手順が引き続き適用されます。E2EE がオフの間、保存された ID キーは保持されますが使用されず、E2EE が再び有効になるまでは既存のレガシー ID 生成が適用されます。パスの難読化がオフの場合、異なる ID キーを持つデバイス間でも同期できますが、同一のコンテンツに対して重複したチャンクが生成される可能性があります。パスの難読化が有効な場合、ID キーを有効化、置換、または無効化するとドキュメント ID が変わる可能性があります。通常の同期を再開する前に、参加デバイスを更新し、信頼できる Vault から Rebuild を実行し、他のデバイスで Fetch を実行してください。QR コード には既存の QR 共有ルールに基づき保存されたキーが含まれるため、QR コード は厳重に保管してください。 #### パスの難読化 画面表示: **パスの難読化** 設定キー: `usePathObfuscation` デフォルトでは、パフォーマンス向上のためファイルパスは難読化されません。これを有効にするとファイルパスが難読化されます。ファイルパスを隠蔽したい場合に便利です。 #### ファイルの内部プロパティを暗号化 画面表示: **内部ファイルプロパティを暗号化** 設定キー: `encryptInternalMetadata` CouchDB では、非表示ファイル同期およびカスタマイズ同期で使用されるメタデータ内のパス、日時、サイズ、およびチャンク参照を暗号化します。E2EE V2 と **Property Encryption(プロパティ暗号化)** が必要です。新規 Vault ではデフォルトで有効になっていますが、これらの前提条件が有効になるまでは効果がありません。既存の Vault や古いセットアップ URI、QR コードでは、有効化しない限り無効のままとなります。 この設定を有効にすると、今後のメタデータ書き込みが保護されます。既存のメタデータや以前のリビジョンはリモートデータベース内で平文のまま残る可能性があります。既存のメタデータも保護したい場合は、完全なデータを準備し、すべてのデバイスを互換バージョンにアップデートした上で、手動でリモートデータベースを再構築(Rebuild)してください。この設定を変更しても、LiveSync が自動的にデータを収集したり再構築を開始したりすることはありません。再構築せずに有効化する操作では、現在 LiveSync を実行中のデバイスも含め、他のすべての同期デバイスを事前にアップデートするよう明示的にリマインドされます。移行期間中は平文と暗号化されたメタデータが混在できます。ドキュメント ID、リビジョン情報、ドキュメント数、および暗号文の長さは引き続き外部から確認可能です。 #### 暗号化アルゴリズム 画面表示: **暗号化アルゴリズム** 設定キー: `E2EEAlgorithm` エンドツーエンド暗号化に使用する暗号化アルゴリズムのバージョンです。 - `v2`(V2: AES-256-GCM With HKDF): 推奨およびデフォルトのバージョン。 - `forceV1` または `""`(V1: レガシー): 旧世代の暗号化。レガシー形式で暗号化された既存の Vault がある場合にのみ使用してください。 #### 反復回数を動的に設定(旧 V1 との互換性) 設定キー: `useDynamicIterationCount` この設定はレガシーな V1 暗号化データにのみ適用されます。既存の V1 データベースを開く際は保存された値を維持してください。新規 Vault では E2EE V2 が使用されるため、この設定は使用されません。 ### 4. 取得設定 #### リモートサーバーから設定を取得 すでに設定されているリモートサーバーから必要な設定を取得します。 ### 5. MinIO・S3・R2 これらの設定は、オブジェクトストレージの接続プロファイルを追加(`➕`)または編集(`🔧`)する際に開く **S3/MinIO/R2 セットアップダイアログ** 内で設定します。 #### エンドポイント URL 画面表示: **エンドポイント URL** 設定キー: `endpoint` リモートストレージのエンドポイント URL です。 注意: Obsidian Mobile ではセキュア接続(HTTPS)のみが使用可能です。 #### アクセスキー 画面表示: **アクセスキー** 設定キー: `accessKey` 認証に使用するアクセスキー ID です。ダイアログ内では **Access Key ID** と表記されます。 #### シークレットキー 画面表示: **シークレットキー** 設定キー: `secretKey` 認証に使用するシークレットアクセスキーです。ダイアログ内では **Secret Key** と表記されます。 #### リージョン 画面表示: **リージョン** 設定キー: `region` ストレージのリージョンです(例: `us-east-1`、Cloudflare R2 の場合は `auto`)。 #### バケット名 画面表示: **バケット名** 設定キー: `bucket` 同期ファイルを保存するバケットの名前です。 #### カスタム HTTP ハンドラーを使用 画面表示: **カスタム HTTP ハンドラーの利用** 設定キー: `useCustomRequestHandler` この項目はセットアップダイアログ内では **Use internal API(内部 API を使用)** と表記されます。オブジェクトストレージが CORS をサポートしていない場合に有効化してください。S3 サーバーとの通信に Obsidian の内部 API を使用します。これは Web 標準に準拠していませんが、CORS 制限を回避できます。将来の Obsidian バージョンで動作しなくなる可能性があります。 #### バケット内のファイルプレフィックス 画面表示: **バケット内のファイルプレフィックス** 設定キー: `bucketPrefix` この項目はセットアップダイアログ内では **Folder Prefix(フォルダープレフィックス)** と表記されます。実質的なディレクトリとして機能します。末尾は `/` で終わる必要があります(例: `vault-name/`)。バケットのルートにデータを保存する場合は空欄のままにします。 #### forcePathStyle を有効化 画面表示: **forcePathStyle を有効化** 設定キー: `forcePathStyle` この項目はセットアップダイアログ内では **Use Path-Style Access(パススタイルアクセスを使用)** と表記されます。有効にすると、バケット操作に forcePathStyle オプションが使用されます。 #### カスタムヘッダー 画面表示: **カスタムヘッダー** 設定キー: `bucketCustomHeaders` オブジェクトストレージバケットに送信されるすべてのリクエストに含めるカスタム HTTP ヘッダーです。`Header-Name: Value` の形式で、各ヘッダーを改行で区切って指定します。 #### 接続をテスト 接続をテストします。 #### 設定を適用 設定を適用します。 ### 6. CouchDB これらの設定は、CouchDB 接続プロファイルを追加(`➕`)または編集(`🔧`)する際に開く **CouchDB セットアップダイアログ** 内で設定します。 #### サーバー URI 画面表示: **サーバー URI** 設定キー: `couchDB_URI` CouchDB サーバーの URI です。ダイアログ内では **URL** と表記されます。 Obsidian Mobile ではセキュアな HTTPS 接続のみが使用可能です。セットアップダイアログは完全な HTTP または HTTPS URL を受け付け、設定適用時に正規化します。 #### ユーザー名 画面表示: **ユーザー名** 設定キー: `couchDB_USER` CouchDB の認証に使用するユーザー名です。ダイアログ内では **Username** と表記されます。 #### パスワード 画面表示: **パスワード** 設定キー: `couchDB_PASSWORD` CouchDB の認証に使用するパスワードです。ダイアログ内では **Password** と表記されます。 #### データベース名 画面表示: **データベース名** 設定キー: `couchDB_DBNAME` データベースの名前です。空にはできません。CouchDB は接続試行時に名前を検証します。セットアップダイアログ側で独自の狭い命名ルールを適用することはありません。 #### Request API を使用して避けられない CORS 問題を回避 画面表示: **Request API を使用して避けられない CORS 問題を回避** 設定キー: `useRequestAPI` この項目はセットアップダイアログ内では **Use Internal API(内部 API を使用)** と表記されます。有効にすると、Obsidian の内部リクエスト API を使用して CORS 制限を回避します。Obsidian 管理下の API を通じて設定された認証情報を CouchDB サーバーに送信するため、信頼できるサーバーに対してのみ使用してください。可能な限り CouchDB 側の CORS を適切に設定することを推奨します。この互換性回避策は、将来の Obsidian バージョンで変更される可能性があります。 #### カスタムヘッダー 設定キー: `couchDB_CustomHeaders` 画面表示: **カスタムヘッダー** CouchDB サーバーに送信されるすべてのリクエストに含めるカスタム HTTP ヘッダーです。`Header-Name: Value` の形式で、各ヘッダーを改行で区切って指定します。 #### JWT 認証を使用 画面表示: **JWT 認証を使用** 設定キー: `useJWT` CouchDB で JSON Web Token(JWT)認証を有効にします。これは実験的機能であり、完全な検証は行われていません。 #### JWT アルゴリズム 画面表示: **JWT アルゴリズム** 設定キー: `jwtAlgorithm` JWT の署名に使用するアルゴリズムです。対応アルゴリズム: `HS256`, `HS512`, `ES256`, `ES512`。 #### JWT の有効期間(分) 画面表示: **JWT 有効期限(分)** 設定キー: `jwtExpDuration` トークンの有効期間(分単位)です。0を指定すると有効期限は無効になります。 #### JWT キー 画面表示: **JWT キー** 設定キー: `jwtKey` JWT の署名に使用するシークレットキー(HS256/HS512 の場合)または PKCS#8 PEM 形式の秘密鍵(ES256/ES512 の場合)です。 #### JWT キー ID(kid) 画面表示: **JWT キー ID (kid)** 設定キー: `jwtKid` JWT に含まれるキー ID(`kid`)ヘッダーパラメータです。 #### JWT サブジェクト(sub) 画面表示: **JWT サブジェクト (sub)** 設定キー: `jwtSub` JWT のサブジェクト(`sub`)クレームであり、CouchDB のユーザー名と一致する必要があります。 #### 接続と保存の操作 ダイアログが開かれた理由によってアクションが異なります。 - 最初のデバイスのオンボーディングでは **「データベースを作成または接続して続行(Create or connect to database and continue)」** を使用します。データベースが存在せず、指定したアカウントに作成権限がある場合は自動作成されることがあります。 - 追加デバイスのオンボーディングでは **「既存のデータベースに接続して続行(Connect to existing database and continue)」** を使用します。存在しないデータベースを自動作成することはありません。 - 保存済みリモートプロファイルの追加や編集では **「接続テストして保存(Test connection and save)」** を使用します。存在しないデータベースを自動作成することはありません。 - 設定モードでは **「接続せずに保存(Save without connecting)」** も選べます。プロファイルは更新されますが、接続が修正されるまで自動同期が失敗する可能性があります。 オンボーディングでは接続の成功が必須であり、未検証のまま続行するアクションは提供されません。 #### サーバーの要件を確認 画面表示: **サーバー要件を確認** このオプションチェックは、Obsidian の内部リクエスト API を通じて CouchDB サーバーの設定を読み取り、設定された認証情報をそのサーバーに送信します。管理者権限が必要になる場合があります。初期チェックは読み取り専用です。提示される各修正案には CouchDB の正確な設定項目と推奨値が示され、変更を適用する前に個別の確認が必要です。 #### 設定を適用 設定を適用します。 ### 7. ピアツーピア(P2P)同期 #### P2P 同期を有効化 画面表示: **P2P 同期を有効化** 設定キー: `P2P_Enabled` WebRTC 経由の直接ピアツーピア同期を有効にします。 #### シグナリングリレー URL 設定キー: `P2P_relays` ピア検出と WebRTC 接続ネゴシエーションに使用される、Nostr 互換の WebSocket リレー URL です。複数の URL をカンマで区切って指定できます。シグナリングリレーは Vault のコンテンツを保存または転送しません。詳細は [P2P 同期の仕組み](p2p.md) を参照してください。 P2P セットアップの接続テストは、アクティブな P2P ルームを中断しません。アクティブなリレーセットが要求された URL をすでにカバーしている場合、テストはそのアクティブなシグナリングトランスポートを監視します。テストによって P2P 実行中にリレーが追加されることになる場合は、アクティブなリレー設定を使用するか、事前に P2P を切断するよう求められます。P2P がアイドル状態の場合、テストは短時間のシグナリング試行を開始して破棄します。このチェックでは、ピアの検出、他デバイスとの認証、または TURN/WebRTC データパスの導通までは確認できません。 #### グループ ID 画面表示: **グループ ID** 設定キー: `P2P_roomID` 同期デバイスのグループを識別するためのルーム ID またはグループ ID です。同期するすべてのデバイスで同じグループ ID を使用する必要があります。任意のカスタム文字列を入力するか、ランダムなグループ ID を生成できます。 #### パスフレーズ 設定キー: `P2P_passphrase` 画面表示: **パスフレーズ** P2P 通信の認証および暗号化に使用するパスワードまたはパスフレーズです。すべてのデバイスで同じパスフレーズを使用する必要があります。 #### デバイスのピア ID 画面表示: **デバイスのピア ID** 設定キー: `P2P_DevicePeerName` P2P ネットワーク内でのこのデバイスのピア名または識別子です。デバイスグループ内で一意である必要があります。 #### 起動時に P2P 接続を自動開始 画面表示: **起動時に P2P 接続を自動開始** 設定キー: `P2P_AutoStart` この項目はセットアップダイアログ内では **Auto Start P2P Connection** と表記されます。有効にすると、プラグイン起動時に P2P 接続が自動的に開始されます。 #### 接続と切断 P2P 接続を閉じると、LiveSync P2P ルームから退出し、そのレプリケーションサービスを停止し、シグナリングリレーソケットを閉じて自動再接続を一時停止します。アイドル状態の WebRTC 接続は再利用のために一時的にトランスポート管理下に残る場合がありますが、退出したルームのトラフィックは処理できません。再度接続するとリレーの再接続が再開され、新しい LiveSync ルームに参加します。 #### 接続後に変更を自動通知 画面表示: **接続中のピアに変更を自動ブロードキャスト** 設定キー: `P2P_AutoBroadcast` 有効にすると、ローカルでの変更後に接続されたピアに変更を通知します。通知には Vault データは含まれません。受信側ピアは、このデバイスをフォローしている場合にのみ変更を取得(Fetch)します。 #### TURN 設定 設定キー: `P2P_managedType` 既存の TURN サーバー設定項目を使用する場合は **Manual(手動)** を、TURN キー ID および TURN キー API トークンを使用する場合は **Managed (Cloudflare)(マネージド:Cloudflare)** を選択します。API トークンはプロファイルとともに保持され、セットアップ URI や QR コード共有に含まれます。発行された一時認証情報はメモリ内にのみ保持されます。レポートではプロバイダー設定は伏字になります。共有、有効期限、再接続の挙動については [TURN 認証情報](p2p.md#turn-credentials) を参照してください。 #### TURN キー ID と TURN キー API トークン 設定キー: `P2P_managedId`, `P2P_managedToken` **Managed (Cloudflare)** が選択されている場合に表示されます。TURN キーの ID と専用 API トークンを入力します。トークン欄はマスク表示されます。アカウント ID、カスタムエンドポイント、更新間隔は不要です。 #### TURN サーバー URL(カンマ区切り) 画面表示: **TURN サーバー URL(カンマ区切り)** 設定キー: `P2P_turnServers` カンマ区切りの TURN サーバー URL リストです。TURN は、厳格な NAT やファイアウォール規則によって直接ピア接続が妨げられている場合に、暗号化された WebRTC トラフィックを中継するオプションのフォールバックです。必須のシグナリングリレーとは異なります。ほとんどの環境では空欄のままで問題ありません。 #### TURN ユーザー名 画面表示: **TURN ユーザー名** 設定キー: `P2P_turnUsername` TURN サーバーの認証ユーザー名です。 #### TURN 認証情報 画面表示: **TURN 認証情報** 設定キー: `P2P_turnCredential` TURN サーバーの認証パスワードまたは認証情報です。 #### P2P メッセージサイズ 設定キー: `P2P_maxWirePayloadBytes` このプロファイル設定は、Trystero が独自のフレーミングを適用する前の、各送信 Commonlib RPC メッセージのサイズを制限します。Vault のチャンクサイズや IP MTU、SCTP フラグメントサイズとは異なります。利用可能なプリセットは **Standard**(15,360バイト)、**Reduced**(2,048バイト)、**Conservative**(1,024バイト)、**Maximum compatibility**(800バイト)です。値を小さくすると、大きな WebRTC メッセージがドロップされる経路でのスループットと引き換えに互換性が向上します。 送信側が送信メッセージのサイズを制御します。制約のある経路を経由して送信する可能性のあるすべてのデバイスで、同じ保守的なプリセットを選択してください。このキーのない既存プロファイルでは **Standard** が使用されます。P2P 接続文字列および暗号化されたセットアップ URI は、選択されたプリセットを保持します。 #### 接続経路 設定キー: `P2P_connectionPath` **Automatic(自動)** は、WebRTC に直接接続または TURN リレー経路の選択を任せるデフォルト設定です。**TURN relay only(TURN リレーのみ)** は `iceTransportPolicy: 'relay'` を強制し、プロファイルに有効な手動 TURN URL または設定された TURN 認証情報ソースが含まれている場合に利用可能です。リレー専用モードが選択されている状態で手動 TURN 設定を削除すると、**Automatic** に戻り通知が表示されます。認証情報を提供できないソースが選択されている場合、接続は開始されず、接続経路は変更されません。 この選択は P2P プロファイルに属し、P2P 接続文字列および暗号化されたセットアップ URI に保持されます。異なる互換性の選択を持つ複数のプロファイルが同じグループ ID と認証情報を使用できますが、アクティブになるのは選択された P2P プロファイルのみです。 ## 4. 同期設定 ### 1. 同期プリセット #### プリセット 画面表示: **プリセット** 設定キー: `preset` プリセット設定を適用します。 ### 2. 同期方法 #### 同期モード 画面表示: **同期モード** 設定キー: `syncMode` 同期を開始するトリガーです。 - **LiveSync** (`LIVESYNC`): リアルタイムで継続的な双方向同期。 注意: CouchDB または WebRTC P2P リモートサーバーが必要です。S3 互換オブジェクトストレージではサポートされていません。 - **Periodic Sync** (`PERIODIC`): **Periodic Sync interval** 設定で指定された一定間隔ごとに同期を実行します。 - **On Events** (`ONEVENTS`): 下記のトグルで設定された特定のイベント(保存、ファイルオープン、起動時など)をトリガーとして同期を実行します。 #### 定期同期の間隔 画面表示: **定期同期の間隔** 設定キー: `periodicReplicationInterval` 同期間隔(秒)。 #### 同期間隔の最小値 画面表示: **同期間隔の最小値** 設定キー: `syncMinimumInterval` イベントによる自動同期の最小間隔。 #### 保存時に同期 画面表示: **保存時に同期** 設定キー: `syncOnSave` ファイル保存時に同期を開始します。 #### エディタ保存時に同期 画面表示: **エディタでの保存時に、同期されます** 設定キー: `syncOnEditorSave` エディタでファイルを保存した際に自動的に同期を開始します。 #### ファイルを開いたときに同期 画面表示: **ファイルを開いた時に同期** 設定キー: `syncOnFileOpen` ファイルを開いた際にそのファイルの同期を強制します。 #### 起動時に同期 画面表示: **起動時同期** 設定キー: `syncOnStart` Obsidian 起動時にすべてのファイルを自動同期します。 #### ファイルのマージ後に同期 画面表示: **ファイルがマージ(統合)された時に同期** 設定キー: `syncAfterMerge` ファイルマージ後に自動的に同期します。 #### バックグラウンドで複製を継続 画面表示: **バックグラウンドでもレプリケーションを継続する** 設定キー: `keepReplicationActiveInBackground` デスクトップ専用。バッテリーとネットワークをより多く消費します。この設定は継続的レプリケーションおよび定期レプリケーションに適用されます。 #### 同期中のスリープを許可 画面表示: **同期中のスリープを許可** 設定キー: `allowSleepDuringSynchronisation` 個別の同期処理の実行中にオペレーティングシステムのスリープを許可します。このオプションは全プラットフォームに適用され、デフォルトでは無効です。無効な場合、個別の処理はベストエフォートで画面スリープ防止を要求します。 #### デスクトップで同期中のスリープを許可 画面表示: **デスクトップで同期中のスリープを許可** 設定キー: `allowSleepDuringSynchronisationOnDesktop` デスクトップ専用。全般オプションが無効な場合でも、個別の同期処理中にオペレーティングシステムのスリープを許可します。このオプションはデフォルトで有効になっているため、定期同期やイベント駆動同期によってデスクトップの自動スリープが繰り返し妨げられるのを防ぎます。デスクトップでも画面スリープ防止を維持したい場合は無効にしてください。 セットアップ URI は両方のスリープ設定を保持します。これらが含まれていない古いセットアップ URI では、上記のデフォルトが使用されます。これらの設定は、ワンショットレプリケーション、P2P ピア検出と選択、再構築、取得、リモートチャンク取得、およびダウンロードされたドキュメントの Vault への適用など、個別のリモート操作を対象とします。Obsidian がバックグラウンドにある間の継続的レプリケーション動作は制御しません。また、スリープを許可しても OS のサスペンドを強制することはありません。 ### 3. 更新の間引き #### データベース更新をバッチ処理 画面表示: **データベースのバッチ更新** 設定キー: `batchSave` LiveSync モード以外では、ローカルデータベースに保存する前に繰り返されたローカルファイルの更新をまとめます。これにより中間のデータベースリビジョンを減らし、他のデバイスへの反映を遅らせます。 #### LiveSync モードでデータベース更新をバッチ処理 画面表示: **LiveSync モードでデータベース更新をバッチ処理** 設定キー: `batchSaveInLiveSync` LiveSync モードでも、同様に上限付きの遅延を適用します。この設定は既存 Vault、新規 Vault のいずれでもデフォルトで無効です。`liveSync: true` と `batchSave: true` を含む古い設定でも有効にはなりません。設定画面には現在のモードに応じた選択肢が表示され、モードを切り替えても両方の設定が保持されます。古いクライアントは引き続き LiveSync モードでのバッチ処理を無視します。 両方の選択肢は以下の遅延設定を共有します。手動同期、削除、または名前変更によってバッチを早期に終了できます。バッチ処理は中間の更新頻度を抑えるための機能です。テンプレート展開の完了検知や、他デバイスとの同時編集の防止を目的としたものではありません。 #### バッチ更新の最小遅延 画面表示: **バッチデータベース更新の最小遅延** 設定キー: `batchSaveMinimumDelay` 最新の対象編集が行われた後、ローカルデータベースに保存するまでの待機時間(秒)。下記の最大遅延に従います。 #### バッチ更新の最大遅延 画面表示: **バッチデータベース更新の最大遅延** 設定キー: `batchSaveMaximumDelay` ファイルに対する最初の保留中更新からの最大意図的遅延(秒)。その後の編集によってこの制限がリセットされることはなく、処理スロットの待機によって別のバッチ遅延が追加されることもありません。この時間が経過すると処理が実行可能になりますが、指定時間内の書き込み完了や他デバイスへの到達を保証するものではありません。 ### 4. 削除の伝播(高度な設定) #### 旧式のゴミ箱設定 設定キー: `trashInsteadDelete` このキーは設定インポート、セットアップ URI、および以前のバージョンとの互換性のために引き続き受け入れられますが、設定画面には表示されなくなりました。リモートファイルの削除は、このレガシーな値に関係なく、`FileManager.trashFile` API を通じてユーザーの Obsidian 削除設定に従います。 #### 空のフォルダーを保持 画面表示: **空フォルダーの維持** 設定キー: `doNotDeleteFolder` ファイルが存在しない空のフォルダーを保持するかどうかを設定します。 ### 5. 競合解決(高度な設定) 競合解決は未知のローカルコンテンツを保護し、利用可能なリビジョン履歴が安全な共通ベースを提供する場合にのみ自動マージを行います。リビジョンツリールール、古い解決や同時解決、バイナリファイルの制限、および競合が未解決の間に使用されるデバイスローカルの系統情報については、[競合解決とリビジョン系統の仕様](specs_conflict_resolution.md) を参照してください。 #### (ベータ)常に新しいファイルで上書き 画面表示: **(ベータ機能)常に新しいファイルで上書きする** 設定キー: `resolveConflictsByNewerFile` テスト専用。より新しい更新日時を持つコピーを選択してファイル競合を解決します。変更されたファイルが上書きされる可能性があり、どのリビジョンがユーザーの意図を反映しているかは判別できません。 #### 非アクティブファイルの競合解決を遅延 画面表示: **非アクティブなファイルは、競合解決を先送りする** 設定キー: `checkConflictOnlyOnOpen` ファイルが開かれたときにのみ競合を確認するかどうかを設定します。 #### 非アクティブファイルのマージ競合の確認を遅延 画面表示: **非アクティブなファイルに対する競合解決プロンプトの表示を遅延させる** 設定キー: `showMergeDialogOnlyOnActive` ファイルが開かれたときに競合ファイルについて確認を求めるかどうかを設定します。 ### 6. Markdown による同期設定(高度な設定) #### ファイル名 画面表示: **ファイル名** 設定キー: `settingSyncFile` 設定を Markdown ファイルに保存します。新しい設定が届いた際に通知されます。プラットフォームごとに異なるファイルを設定できます。 #### ファイルに認証情報を書き込む 画面表示: **認証情報のファイル内保存** 設定キー: `writeCredentialsForSettingSync` (非推奨)有効にすると、認証情報がファイルに保存されます。 この設定が無効な場合、オブジェクトストレージキー、認証ヘッダー、その他の認証情報、すべての接続プロファイルおよびそのアクティブ選択はファイルから除外されます。インポート時も受信側デバイスのローカル認証情報とプロファイルが保持されます。有効な場合、ファイルには認証情報と完全な接続プロファイルが含まれます。手動で共有する場合は、設定画面のプレーンテキストエクスポートまたは暗号化されたセットアップ URI を使用してください。 #### すべての設定ファイルに通知 画面表示: **すべての設定同期ファイルを通知** 設定キー: `notifyAllSettingSyncFile` すべての設定同期ファイルの変更を通知します。 ### 7. 非表示ファイル(高度な設定) この機能を有効にする前に、[非表示ファイル同期ガイド](./tips/hidden-file-sync.md) を確認してください。Rebuild(再構築)および Fetch(取得)のセットアップ操作では意図的にオプション機能が無効化されたままになります。まず通常のノート同期を確立してから、各デバイスで個別に非表示ファイル同期を初期化してください。 #### 非表示ファイル同期を有効化 画面表示: **非表示ファイル同期を有効化** 設定キー: `syncInternalFiles` 非表示ファイルやフォルダー(`.obsidian` 配下の設定ファイル、テンプレート、スニペット、テーマなど)の同期を有効にします。 #### 複製前に非表示ファイルをスキャン 画面表示: **レプリケーション開始前に非表示ファイルをスキャンする** 設定キー: `syncInternalFilesBeforeReplication` レプリケーション前に非表示ファイルをスキャンします。 #### 定期的に非表示ファイルをスキャン 画面表示: **定期的に非表示ファイルをスキャンする** 設定キー: `syncInternalFilesInterval` 非表示ファイルを定期的にスキャンする間隔(秒)。0で無効化。 #### 非表示ファイルの変更通知を抑制 画面表示: **非表示ファイルの変更通知を抑制** 設定キー: `suppressNotifyHiddenFilesChange` 有効にすると、非表示ファイルの変更通知が抑制されます。 ## 5. セレクター(高度な設定) ### 1. 通常ファイル #### 同期するファイル 画面表示: **同期するファイル** 設定キー: `syncOnlyRegEx` (正規表現)通常ファイルを一致するパスのみに制限します。空欄にするとすべての通常ファイルパスが許可されます。非表示ファイル同期は独自のターゲットパターンを使用します。 #### 同期しないファイル 画面表示: **同期しないファイル** 設定キー: `syncIgnoreRegEx` (正規表現)ローカルおよびリモートで、一致する通常ファイルおよび非表示ファイルの変更をスキップします。 #### 最大ファイルサイズ 画面表示: **最大ファイル容量** 設定キー: `syncMaxSizeInMB` (MB)この値を設定すると、これより大きいサイズのローカルファイルおよびリモートファイルの変更はスキップされます。ファイルが再び小さくなった場合は、新しいものが使用されます。 #### (ベータ)除外ファイルを使用 画面表示: **(ベータ機能)除外ファイル(ignore)の使用** 設定キー: `useIgnoreFiles` これを設定すると、除外ファイルに一致するローカルファイルの変更がスキップされます。リモートの変更はローカルの除外ファイルを使用して判定されます。 #### 除外ファイル 画面表示: **除外ファイル** 設定キー: `ignoreFiles` カンマ区切りで指定します(例: `.gitignore, .dockerignore`)。 保存された設定によって通常ファイルを反映できるかどうかが変化した場合、LiveSync はローカルデータベースにすでに保持されている通常ファイルのメタデータを再評価します。これにはセレクター式、除外ファイル設定、最大サイズおよび更新日時制限、ファイル名の大文字小文字の処理が含まれます。したがって、除外中に受信されチェックポイントが記録されたリモートリビジョンも、条件が緩和された後はリモートチェックポイントを巻き戻すことなく反映できます。条件を狭めても、すでに反映されたファイルが削除されることはありません。 ### 2. 非表示ファイル(高度な設定) #### 除外パターン 画面表示: **除外パターン** 非表示ファイル同期で除外するパターンを設定します。 #### 既定のパターンを追加 画面表示: **デフォルトパターンを追加** デフォルトの除外パターンを追加します。 ## 6. カスタマイズ同期(高度な設定) カスタマイズ同期はサポート対象の高度なオプトイン機能です。現在のファイル単位の実装は、スニペット、設定ファイル、およびプラグインファイルに対する2つの Vault による実際の Obsidian ワークフローでカバーされています。非表示ファイル同期は、セットアップ、選択、競合動作が異なる別の機能です。同じファイルを管理するために両方の機能を使用しないでください。 **Automatic(自動)** はアイテムのファイルを非表示ファイル同期に委譲します。[対象パターンと除外パターン](./tips/hidden-file-sync.md#review-the-file-selection) を確認した上で、まずこのデバイスの **Sync Settings** で非表示ファイル同期を有効化および初期化してください。非表示ファイル同期が無効な状態で Automatic を選択すると通知が表示され、現在のモードは変更されません。別のデバイスからインポートされたものを含め、既存の Automatic 割り当ては非表示ファイル同期が無効な間も保持されます。 ### 1. カスタマイズ同期 #### デバイス名 画面表示: **デバイス名** 設定キー: `deviceAndVaultName` 同期されるすべてのデバイス間で一意の名前を指定します。この設定を編集するには、カスタマイズ同期を一度無効にしてください。 #### ファイルごとに保存するカスタマイズ設定を同期 画面表示: **ファイル単位のカスタマイズ同期を有効化** 設定キー: `usePluginSyncV2` 有効にすると、効率的なファイル単位のカスタマイズ同期が使用されます。有効化時に小規模な移行が必要になります。また、すべてのデバイスを v0.23.18 以降にアップデートする必要があります。一度有効にすると、古いバージョンとの互換性は失われます。 #### カスタマイズ同期を有効化 画面表示: **カスタマイズ同期を有効化** 設定キー: `usePluginSync` カスタマイズ同期を有効にします。 #### カスタマイズを自動スキャン 画面表示: **自動的にカスタマイズをスキャン** 設定キー: `autoSweepPlugins` レプリケーション前にカスタマイズをスキャンします。 #### カスタマイズを定期スキャン 画面表示: **定期的にカスタマイズをスキャン** 設定キー: `autoSweepPluginsPeriodic` 1分ごとにカスタマイズを定期スキャンします。 #### カスタマイズの変更を通知 画面表示: **カスタマイズが行われたら通知する** 設定キー: `notifyPluginOrSettingUpdated` 別のデバイスによって新しくカスタマイズされたときに通知します。 #### 開く 画面表示: **開く** ダイアログを開きます。 ## 7. ハッチ ### 1. レポートツール このパネルには、レポートの収集やデータベース状態の検査を行う5つのアクションがまとめられています。これらのアクションは診断情報の取得専用であり、データベースの修復やリセットは行いません。 #### Issue 報告用のレポートを作成 **「レポートをクリップボードにコピー(Copy Report to clipboard)」** を選択すると、サポート報告用の診断情報と最近のログが収集されます。機密情報が含まれる可能性があるため、共有する前にレポートの内容を確認してください。 #### ファイルのデータベース情報をコピー ファイルを選択して、そのローカルデータベース情報をコピーします。コマンド **Copy database information for the active file** を実行すると、エディタで開いているファイルに対して同じ検査が実行されます。 レポートには Vault 相対パス、ドキュメントおよびチャンクの識別子、ローカルデータベースのリビジョン、競合、およびローカルチャンクの利用可能性が含まれます。リモートへの問い合わせやファイルコンテンツの収集は行いません。パスや識別子はプライベートなメタデータである可能性があるため、共有前に確認してください。 #### レポートの仮名からファイルを検索 診断レポートからパスの仮名(pseudonym)を貼り付け、**「ファイルを検索(Find file)」** を選択します。検索は現在の Vault とローカルの通常ファイルメタデータのみを対象とし、リモートデータベースには接続しません。一致するローカル候補がすべて返され、各候補の実際の Vault パスとドキュメント ID はこのローカルダイアログ内でのみ表示されます。1つのパスに対して複数のローカルドキュメント ID が存在する場合は個別の候補として扱われます。Vault のみに存在する候補のフォローアップでは、ローカルドキュメントが選択されなかったため、メタデータは未検査としてマークされます。一致が見つからない場合は、ファイルの名前が変更されたか削除されたか、あるいは該当するメタデータがリモートにのみ存在する可能性があります。 選択した候補について、既存の Vault ファイルを開くか、元のレポートの仮名ソルトと選択した正確なドキュメント ID を使用して共有可能なローカルレポートを作成できます。レポートには現在・競合・履歴のステータス、チャンクの利用可能性、マージベース、Vault のサイズ情報が含まれます。ファイルコンテンツや認証情報は含まれません。履歴ステータス一覧は全履歴本文まではスキャンしません。 パスの仮名はレポートの公開8文字ソルトを使用します。レポートを持っている人は、推測されたパスを仮名と照合してテストできます。同じソルトを使うことで、特定の対象を絞り込んだ追加調査時にもパスや識別子の仮名を再現できます。古い序数形式の仮名はこのツールでは検索できません。 #### データベースの整合性を検査 **「検査(Inspect)」** を選択して、元の名前または一時的な仮名を選択し、通常ファイルのメタデータと現在の競合を検査します。デフォルトで **「リモートデータベースを含める(Include remote database)」** が選択されています。チェックを外すとローカルデータベースと Vault のみを検査します。この選択は現在の実行にのみ適用され、除外された場合はレポートでリモートの対象範囲が未チェックとしてマークされます。コマンド **Inspect database integrity** でも同じダイアログが開きます。検査は読み取り専用であり、修復は行いません。また、その結果だけを根拠にデータを削除しないでください。対象範囲、レポート形式、プライバシー、キャンセルについては [レポートの収集](troubleshooting.md#collect-a-report) を、状態とレビューインデックスの解釈については [コンパクト Markdown 整合性レポートの読み方](troubleshooting.md#read-the-compact-markdown-integrity-report) を参照してください。 #### データベースの使用状況を分析 画面表示: **データベース使用状況を分析** **「分析(Analyse)」** を選択して名前ポリシーを選択し、ローカルのリビジョンおよびチャンクの使用状況をレポートします。[高度な機能](#enable-advanced-features) が有効な場合、コマンド **Analyse Database Usage (advanced)** からも同じダイアログを開けます。完了した実行では TSV および JSON が提供され、未完了の実行ではそのステータスと理由が JSON に保持されます。既存のオンデマンドチャンク取得は変更されません。計算の制限とエクスポート手順については [レポートの収集](troubleshooting.md#collect-a-report) を参照してください。 ### 2. チェックと復旧 このパネルには、設定やデータベースコンテンツの変更につながる可能性のあるチェック項目がまとめられています。 #### 設定診断ツール Setting Doctor(設定診断ツール)を実行して、設定の不一致や最適でない設定がないか確認します。推奨事項を適用すると設定が変更されたりデータベースの再構築が要求されたりする場合があるため、続行する前に推奨内容を確認してください。 #### 破損ファイルをスキャン データベース内に正しく保存されていないファイルがないかスキャンします。スキャンによってデータベースコンテンツを変更する修復操作が提示される場合があります。確定する前に提案された各アクションを確認してください。 ### 3. トラブルシューティング このパネルでは、リモートストレージ通知チェックおよびファイルロギングコントロールを、レポート収集や復旧チェックから分離して管理します。 #### 通知しきい値をリセットしてリモートデータベースの使用量を確認 画面表示: **通知しきい値をリセットしてリモートデータベース使用量を確認** リモートストレージサイズの閾値をリセットし、リモートストレージのサイズを再確認します。これにより保存された通知閾値が変更されます。 #### ログをファイルに書き込む 画面表示: **ファイルにログを記録** 設定キー: `writeLogToTheFile` 警告!パフォーマンスに深刻な影響を与えます。また、デフォルト名ではログは同期されません。ログには機密情報が含まれることが多いため、取り扱いには十分注意してください。 ### 4. Scram スイッチ データベースの破損を防ぐために同期プロセスを中断する緊急コントロールです。重大な不一致や同期エラーが発生した場合、プラグインは自動的に Scram 状態に入り、処理を一時停止することがあります。 #### ファイル監視を一時停止 画面表示: **監視の一時停止** 設定キー: `suspendFileWatching` ローカルファイルの変更監視を停止します。 #### データベースの反映を一時停止 画面表示: **データベース反映の一時停止** 設定キー: `suspendParseReplicationResult` データベースの変更をストレージファイルへ反映する処理を停止します。 ### 5. 復旧と修復 #### 現在の Vault ファイルのチャンクを再作成 現在 Vault 内に存在するファイルからチャンクを再作成します。それらの現在のコンテンツが正本であることが確認された後、欠落しているチャンクを修復できます。利用できない過去のリビジョンや競合コンテンツは復元できません。 #### 競合とファイル/データベース間の差異を確認 各 Vault ファイルを、ローカルデータベース内のすべての現行末端リビジョン(leaf)と比較します。代表リビジョン(winner)と競合リビジョンは、正確なリビジョン識別子、ローカルチャンクの利用可能性、および現在の Vault ファイルとの関係とともに個別に表示されます。利用できない共通祖先も個別に報告されます。これらは安全な3方向マージに必要ですが、破棄対象となる現行末端リビジョンではありません。 **「検査を開始(Begin inspection)」** を選択して検査を実行します。報告された各ファイルと現在の末端リビジョンにはレンチメニューがあり、読み取り専用の比較、Vault への正確なデータベースリビジョンの適用、正確なバイト一致の記録、Vault ファイルを指定ブランチの子として保存、チャンク取得の再試行、またはブランチの明示的な破棄を行えます。破壊的な操作には確認が必要です。リビジョン履歴を変更する前に、[競合または不一致ファイルの復旧](recovery.md#recover-a-conflicted-or-mismatched-file) に従ってください。 同じ検査によって、保存されたドキュメント ID が記録されたパスと一致しないローカルメタデータも報告されます。その論理パスに対応するメタデータを引き続き一貫して特定できる場合、古いエントリがあっても通常の検査は抑制されません。特定できない場合、未解決のパスは通常のファイル修復アクションから除外されます。現在の代表リビジョンに競合する末端リビジョンがなく、修復先が明確な場合は、レンチメニューから対象を個別に確認して修復できます。修復先は、現在のローカルファイル名の大文字小文字とパス難読化の設定から導出され、古い ID を削除する前に書き込みと検証が行われます。対象が曖昧、競合中、削除済み、除外対象、またはその他の理由で安全に修復できない場合は、読み取り専用のままです。この操作で Vault 内のファイル名やフォルダー名が変更されることはありません。バックアップ、修復、伝播、検証の手順については、[メタデータドキュメント ID 不一致の修復](recovery.md#repair-a-metadata-document-id-mismatch) を参照してください。デバイス間で広範な名前の差異がある場合は、そのガイドに従って信頼できる Vault を選び、Obsidian を終了してからストレージ上の名前を修正し、中央のリモートデータベースを再構築して他のデバイスをリセットしてください。 #### 競合ファイルをすべて新しい方で解決 画面表示: **競合したすべてのファイルを新しい方で解決** 確認後、更新日時に基づいてすべての競合を解決します。最新のバージョンを除くすべてのバージョンに論理削除が記録されます。これは破壊的なポリシー選択であり、すでに利用できないコンテンツは復旧できません。 #### パスが難読化されていないファイルを確認して変換 画面表示: **パスが難読化されていないファイルを確認して変換** パスが難読化されていないファイルを確認して変換します。 ### 6. リセット #### 未設定の状態に戻す 画面表示: **未設定状態に戻す** 未設定状態に戻します。 #### カスタマイズ同期データをすべて削除 すべてのカスタマイズ同期データを削除します。 ## 8. 高度な設定 ### 1. メモリーキャッシュ #### メモリーキャッシュのサイズ(項目数) 画面表示: **メモリキャッシュのサイズ(項目数)** 設定キー: `hashCacheMaxCount` ハッシュキャッシュの最大保持アイテム数。 #### メモリーキャッシュのサイズ(文字数) 画面表示: **全体でキャッシュする文字数** 設定キー: `hashCacheMaxAmount` ハッシュキャッシュの最大保持文字数(メガ文字)。 ### 2. ローカルデータベースの調整 #### チャンクサイズを拡大 画面表示: **チャンクサイズを最適化する** 設定キー: `customChunkSize` 新規セットアップでは、すべてのリモートタイプで0が使用されます。V3 Rabin–Karp では、バイナリチャンクに対して最大 100 KiB、最小 25 KiB、約 25 KiB の候補ギャップが設定されます。候補ギャップは平均チャンク長を表す値ではありません。4 MiB 未満のテキストは適応型の小さな境界を維持し、大きなテキストは UTF-8 セーフなカットを伴うバイナリ閾値を使用します。 値を大きくすると、変更がほとんどないバイナリファイルのドキュメント数を削減できますが、編集後に新しく保存されるコンテンツが増加する可能性があります。既存の明示的な値および合意された値は保持されます。プラグインをアップデートしても Vault の再チャンク化は行われません。編集、強制書き込み、チャンク再作成、または完全な Rebuild によって新しい境界が作成される一方、既存のコンテンツは引き続き読み取り可能です。 #### チャンク分割方式 画面表示: **チャンクスプリッター** 設定キー: `chunkSplitterVersion` チャンクスプリッターのバージョンを選択します。V3 が最も効率的です。問題が起きたときは、Default または Legacy を選んでください。 #### 分割上限付きチャンク分割方式を使用 画面表示: **分割制限付きチャンク分割を使用** 設定キー: `enableChunkSplitterV2` 有効にすると、チャンクは最大100個までに制限されて分割されます。ただし重複排除(dedupe)の効果はわずかに低下します。 #### セグメント分割方式を使用 画面表示: **セグメント分割を使用** 設定キー: `useSegmenter` 有効にすると、チャンクは意味のあるセグメント(段落や見出し単位など)に分割されます。一部のプラットフォームではサポートされていません。 #### 起動時にコンテンツを厳密に確認 画面表示: **起動時にコンテンツを厳密に確認** 設定キー: `strictContentCheckOnStartup` 有効にすると、ファイルの正確な更新日時とサイズが一致している場合でも、通常の起動時にファイルコンテンツとローカルデータベースを比較します。無効な場合(デフォルト)、更新日時、サイズ、および記録されたデバイスローカルの系統情報が競合のない現在のリビジョンと一致し、保留中のファイル処理がない場合にのみ、この比較をスキップできます。したがって、通常のファイルイベント経路外で行われ、正確な更新日時とサイズが維持された編集は、通常の起動では検出されない可能性があります。手動スキャンおよび明示的な Fetch や Rebuild 操作では、厳密なコンテンツチェックが維持されます。 ### 3. 転送の調整 #### 必要に応じてチャンクを取得 画面表示: **必要に応じてチャンクを取得する** 設定キー: `readChunksOnline` 有効にすると、通常のプルレプリケーションですべてのチャンクを含める代わりに、必要なときに不足しているチャンクを取得します。新規セットアップでも同様にチャンクサイズ0の推奨値が保持されます。この設定によって、他デバイスで保存済みのコンテンツが再チャンク化されることはありません。 #### オンデマンド取得のバッチサイズ 画面表示: **オンデマンド取得のバッチサイズ** 設定キー: `concurrencyOfReadChunksOnline` オンデマンド取得の並行バッチサイズ。 #### 連続するオンデマンド取得の間隔 画面表示: **連続するオンデマンド取得の間隔** 設定キー: `minimumIntervalOfReadChunksOnline` 連続するオンデマンド取得の遅延間隔。 #### チャンクを手動再送するときの最大リクエストサイズ 画面表示: **チャンクを手動で再送する際の最大リクエストサイズ** 設定キー: `sendChunksBulkMaxSize` 明示的な **「すべてのチャンクを再送信(Resend all chunks)」** メンテナンス操作によって1つのリクエストで送信されるチャンクの最大サイズを制限します(MB 単位)。通常および初期レプリケーションではこの設定は使用されません。 ## 9. パワーユーザー向け設定 ### 1. リモートデータベースの調整 #### ドキュメント内にチャンクを一時格納(終了予定の互換機能) 設定キー: `useEden` この設定は新しい構成では提供されなくなりました。既存の保存された値は引き続き受け入れられるため、既存のデータベースの構造を意図せず変更することなく開いて移行できます。 #### 一時格納するチャンクの最大数 画面表示: **一時保管する最大チャンク数** 設定キー: `maxChunksInEden` ドキュメント内に一時格納できるチャンクの最大数です。この数を超えたチャンクは、直ちに独立したチャンクになります。 #### 一時格納するチャンクの最大サイズ 画面表示: **保持するチャンクの最大サイズ** 設定キー: `maxTotalLengthInEden` ドキュメント内に一時格納できるチャンクの最大合計サイズです。このサイズを超えたチャンクは、直ちに独立したチャンクになります。 #### 一時格納期間の上限 画面表示: **最大保持期限** 設定キー: `maxAgeInEden` ドキュメント内にチャンクを一時格納できる最大期間です。この期間を超えたチャンクは、独立したチャンクになります。 #### データ圧縮(高度なオプトイン機能) 設定キー: `enableCompression` データ圧縮は、E2EE の前に各チャンクに対して fflate レベル8を適用します。圧縮によって小さくならないチャンクは非圧縮のままとなり、読み取り側は両方の表現を引き続き受け入れます。設定を変更しても互換性のための再構築は不要であり、既存の表現と新しい表現が共存できます。 測定されたストレージおよび転送の利点に伴い、ワークロードに応じた処理負荷とメモリコストが発生するため、この設定はデフォルトで無効のままとなっています。仕様、証拠、実行モデル、再現コマンドについては [データ圧縮の仕様](specs_data_compression.md) を参照してください。 ### 2. CouchDB 接続の調整 #### バッチサイズ 画面表示: **バッチサイズ** 設定キー: `batch_size` 通常の CouchDB レプリケーションバッチ内の変更数。スキーマのデフォルトは25、最小値は2です。この値のみを変更してもレプリケーションチェックポイントは維持されます。数値を大きくすると通信往復回数は減らせますが、リクエストサイズやメモリ使用量は制限されません。 #### バッチ上限 画面表示: **バッチの上限** 設定キー: `batches_limit` PouchDB が先行読み込みできる変更バッチの数。スキーマのデフォルトは25、最小値は2です。これによって並行本文転送が行われることはなく、PouchDB は一度に1つのレプリケーションバッチを順次処理します。P2P やオブジェクトストレージの転送単位は制御しません。 #### ハートビートの代わりにタイムアウトを使用 画面表示: **ハートビートの代わりにタイムアウトを使用** 設定キー: `useTimeouts` このオプションを有効にすると、PouchDB は接続を無期限に開いたままにする代わりに60秒間接続を保持し、その間に変更が届かない場合はソケットを閉じて再度開きます。プロキシがリクエスト時間を制限している場合に役立ちますが、リソース消費が増加する可能性があります。 ### 3. 設定の暗号化 #### 機密設定項目を暗号化 画面表示: **機密性の高い設定項目の暗号化** 設定キー: `configPassphraseStore` 機密設定項目のパスフレーズの提供方法を選択します。**Default(デフォルト)** は既存のデフォルトキーを使用します。**Use a custom passphrase(カスタムパスフレーズを使用)** は `configPassphrase` の値を使用し、そのキーをこのデバイスに保存します。**Ask an passphrase at every launch(起動のたびにパスフレーズを確認)** は起動時にマスクされたパスフレーズを要求し、正常に入力されたキーをその起動セッションの間メモリにキャッシュします。 この設定とパスフレーズは一緒に適用してください。適用すると、保存された機密値が選択したパスフレーズで再暗号化され、LiveSync がそのパスフレーズを取得する方法が一度の操作で変更されます。適用に失敗した場合でも、編集された値は再試行のために保持されます。再暗号化は平文の値を維持します。E2EE パスフレーズ、ID キー、Vault コンテンツを変更することはありません。 #### 機密設定項目のパスフレーズ 画面表示: **機密性の高い設定項目にパスフレーズを使用** 設定キー: `configPassphrase` このパスフレーズは別のデバイスにコピーされません。**Use a custom passphrase** の場合、選択したモードは設定に保存されますが、キーはこのデバイスに残ります。保護された設定を復号する必要があり、別のデバイスにキーがない場合、LiveSync は起動時にパスフレーズを要求します。保護された設定によって検証された後、キーはそのデバイスに保存されます。 ### 4. 開発者向け #### 開発者向けデバッグツールを有効化 画面表示: **開発者向けデバッグツールを有効化(利用可能な場合)。** 設定キー: `enableDebugTools` Obsidian の再起動が必要です。 ## 10. パッチ(エッジケース対応) ### 1. 互換性(メタデータ) #### 削除済みファイルのメタデータを保持しない 画面表示: **削除済みファイルのメタデータを保持しない** 設定キー: `deleteMetadataOfDeletedFiles` 競合のないファイルの場合、この設定を無効にするとメタデータドキュメントに論理削除が記録されます。有効にすると、PouchDB の tombstone(削除済みマーカー)を通じてそのドキュメントが削除されます。どちらの動作もファイルの削除および名前変更を送信元から伝播させます。Vault ファイルを削除する前に、LiveSync は現在の代表リビジョンを再検証します。この最終チェックで同時復元が確認された場合、復元されたファイルが保持されます。この設定は削除の表現方法を変更するものであり、ファイルコンテンツは個別のチャンクに保存されたままとなります。未解決の競合中の削除は、個別の [表示ブランチルール](specs_conflict_resolution.md#operations-while-a-conflict-exists) に従います。 #### 起動時に削除済みファイルの古いメタデータを削除 画面表示: **起動時に削除済みファイルの古いメタデータを削除する** 設定キー: `automaticallyDeleteMetadataOfDeletedFiles` (日数指定。0 の場合は自動削除を無効化) ### 2. 互換性(競合時の動作) #### マージ競合を常に確認 画面表示: **競合のマージ時に毎回確認を求める** 設定キー: `disableMarkdownAutoMerge` 安全に自動マージできる場合でも、すべてのマージについて確認を求めるかどうかを設定します。 #### 競合時に最新の変更を適用 画面表示: **競合がある場合は最新の変更を適用する** 設定キー: `writeDocumentsIfConflicted` 競合が発生した場合でも、ドキュメントに最新の変更を自動的に適用します。 ### 3. 互換性(データベース構造) #### (廃止)互換性のために旧アダプターを使用 画面表示: **(廃止済み)古いアダプターを互換性のために利用** 設定キー: `useIndexedDBAdapter` v0.17.16 より前では、ローカルデータベースに古いアダプターを使用していました。現在は新しいアダプターが推奨されます。ただしローカルデータベースの再構築が必要です。時間のあるときにこのトグルをオフにしてください。オンのままにした場合、リモートデータベースからの取得中にも無効化を求められます。 #### コンテンツ由来のチャンクリビジョン(廃止された設定) 画面表示: **コンテンツ由来のチャンクリビジョン(廃止された設定)** 設定キー: `doNotUseFixedRevisionForChunks` チャンクリビジョンは常にコンテンツから派生します。このキーは互換性のために保存設定やセットアップ URI で引き続き受け入れられますが、その値によって動作が変わることはなく、メンテナンスの前提条件でもありません。 #### ファイル名の大文字と小文字を区別 画面表示: **ファイルの大文字・小文字を区別する** 設定キー: `handleFilenameCaseSensitive` 有効にすると、すべてのファイルが大文字小文字を区別して処理されます(従来の挙動)。 この設定が無効な場合、同じディレクトリ内でのファイル名の大文字小文字のみの変更は名前変更として同期されます。ディレクトリ名の大文字小文字の変更はこの処理ではサポートされていません。 新規 Vault ではクロスプラットフォーム互換性のために大文字小文字を区別しない処理が使用されます。明示的な値を持つ既存の設定はその選択を保持します。以前のリリースでもこの値が存在しない場合は大文字小文字を区別しない処理を適用していたため、1.0 では欠落しているレガシー値を互換性レビューやデータベース再構築を必要とせずに `false` として保存します。 #### Unicode パスの識別 設定キー: `pathNormalizationVersion` バージョン `0` はレガシーなファイル同一性を維持し、既存および新規設定のデフォルトです。バージョン `1` はドキュメント ID 導出時に Unicode NFC を使用するため、CLI と Obsidian 間で合成形式と分解形式の等価なパスが同じファイルを識別します。既存の物理ファイル名は保持されます。このモードは現在 CouchDB のみをサポートしています。 バージョン `1` は協調的な移行が必要です。Rebuild 前にソースクライアントで設定し、Fetch 前に残りの各クライアントで設定してください。設定を変更しただけでは既存のメタデータは移行されません。完全な手順については [Unicode NFC パス同一性への移行](recovery.md#migrate-to-unicode-nfc-path-identity) に従ってください。移行されたリモートに対してバージョン `0` のクライアントを実行しないでください。 選択された値は、通常の設定保存および再読み込みの間保留状態となります。Rebuild または Fetch 操作が正常に予約されたときにのみアクティブになります。キャンセルした場合は保留のままとなります。 同じ ID を持つ別ファイルや保持されたメタデータドキュメントが存在する場合、どちらのデータベースもリセットする前に再構築を停止します。ローカルデータベースを置き換える際、Rebuild および Fetch は未解決の競合がない論理削除を除外します。未解決の競合がある削除済みの代表リビジョンは、引き続き検査対象となります。この検査では、ホストがサポートするファイル一覧を使用します。Obsidian は Vault API が公開するパスを検査するため、インデックスに隠れた物理的な別名は検出できません。名前の重複や同期対象の範囲は、事前に解決してください。Self-hosted LiveSync がそれらを自動マージすることはありません。大文字小文字を区別しない処理では、既存の大文字小文字規則も適用されます。 ### 4. 互換性(内部 API の使用) #### カスタマイズ同期時に変更をスキャン 画面表示: **カスタマイズ同期時に変更をスキャンする** 設定キー: `watchInternalFileChanges` 内部 API を使用しません。 ### 5. エッジケース対応(データベース) #### データベースサフィックス 画面表示: **データベースの接尾辞(suffix)** 設定キー: `additionalSuffixOfDatabaseName` LiveSync は、異なるデータベースサフィックスを付けない限り、同名の複数 Vault を扱えません。この値は自動的に設定されます。 この値を変更した後は Obsidian を再起動し、選択したサフィックスに対応する[SyncGuard の設定](#大量の変更受信時にワークスペースを保護オプトイン)を確認してください。 #### チャンク ID のハッシュアルゴリズム(互換性) 画面表示: **チャンク ID のハッシュアルゴリズム** 設定キー: `hashAlg` `xxhash64` がサポートされている現在の値です。古いアルゴリズムは、既存データベースのエッジケース互換性パスとしてのみ選択可能です。アルゴリズムを変更するとデバイス間でのチャンク再利用が減少する可能性があり、通常の設定差異のレビューが必要になります。 独立した ID 導出が有効な場合、暗号化されたチャンク ID は `hashAlg` の代わりにバージョン付き HMAC 構造を使用します。選択された `hashAlg` は引き続きレガシー ID に適用されます。 ### 6. エッジケース対応(動作) #### 従来の動作でデータベースを取得 画面表示: **以前の動作でデータベースを取得** 設定キー: `doNotSuspendOnFetching` 従来の挙動でデータベースを取得します。 #### 空のフォルダーを保持 画面表示: **空フォルダーの維持** 設定キー: `doNotDeleteFolder` ファイルが存在しない空のフォルダーを保持するかどうかを設定します。 #### 破損しているように見えるファイルも処理 画面表示: **破損していると思われるファイルも処理する** 設定キー: `processSizeMismatchedFiles` サイズ不一致のあるファイルを処理するためにこの設定を有効にします。これらは一部の外部 API や統合によって発生することがあります。 ### 7. エッジケース対応(処理) #### バックグラウンドでチャンクを分割しない 画面表示: **バックグラウンドでチャンクを分割しない** 設定キー: `disableWorkerForGeneratingChunks` 有効にすると、チャンクは UI スレッドで分割されます(従来の挙動)。 #### 小さいファイルをフォアグラウンドで処理 画面表示: **小さいファイルを UI スレッドで処理** 設定キー: `processSmallFilesInUIThread` 有効にすると、1 KB 未満のファイルは UI スレッドで処理されます。 #### 互換性のあるチャンク設定を自動調整 設定キー: `autoAcceptCompatibleTweak` 現在のリリースでは、差異が互換性のあるチャンク設定に限定されている場合にデフォルトでこれが有効になります。チャンクハッシュアルゴリズム、チャンクサイズ、またはチャンクスプリッターのバージョンについて、より新しい更新日時が記録されている側の値が使用されます。どちらにも更新日時が記録されていない場合や日時が等しい場合はリモートの値が使用されます。ダイアログの表示やデータベースの再構築は必要ありません。既存のコンテンツは引き続き読み取り可能ですが、これらの値を変更するとチャンクの再利用性が低下する可能性があります。互換性のある差異を手動で確認したい場合はこれをオフにしてください。互換性のない設定に関わる差異は、常に明示的な判断が必要です。 ### 8. 互換性(対処済みの問題) #### 複製前に設定の不一致を確認しない 画面表示: **レプリケーション前に設定の不一致を確認しない** 設定キー: `disableCheckingConfigMismatch` レプリケーション前に設定の不一致をチェックしません。 ### 9. 是正措置 #### 反映対象とするファイルイベントの更新日時上限 画面表示: **ファイルイベントを反映する最大ファイル更新日時** 設定キー: `maxMTimeForReflectEvents` この値(UNIX エポックからの秒数)より新しい更新日時を持つファイルは、イベントが反映されません。0に設定するとこの制限は無効になります。 ## 11. メンテナンス ### 1. Scram! #### サーバーをロック 画面表示: **サーバーをロック** リモートサーバーをロックして他のデバイスとの同期を防止します。 #### 緊急再起動 画面表示: **緊急再起動** すべての同期を無効にして再起動します。 ### 2. 同期 #### 再送信 画面表示: **再送信** ローカルで利用可能なすべてのチャンクをリモートに明示的に再送信します。これは復旧・メンテナンス専用の操作です。通常のレプリケーションで全チャンクを事前に送信するものではありません。 #### 受信ジャーナル履歴をリセット 画面表示: **ジャーナル受信履歴をリセット** ジャーナル受信履歴を初期化します。次回の同期時に、このデバイスが送信したもの以外のすべてのアイテムが再度ダウンロードされます。 #### 送信ジャーナル履歴をリセット 画面表示: **ジャーナル送信履歴をリセット** ジャーナル送信履歴を初期化します。次回の同期時に、このデバイスが受信したもの以外のすべてのアイテムが再度送信されます。 ### 3. 再構築操作(ローカル) #### このデバイスの同期をリセット 画面表示: **このデバイスの同期をリセット** リモートからローカルデータベースを復元または再構築します。 ### 4. 全体の再構築 #### このデバイスのファイルでサーバーデータを上書き 画面表示: **このデバイスのファイルでサーバーデータを上書き** ローカルファイルを使用してローカルおよびリモートのデータベースを再構築します。 ### 5. 再構築操作(リモートのみ) #### クリーンアップを実行 画面表示: **クリーンアップを実行** 最新以外のすべてのリビジョンを破棄してストレージ容量を削減します。リモートサーバーとローカルクライアントに同等の空き容量が必要です。 #### リモートを上書き 画面表示: **リモートを上書き** ローカルデータベースとパスフレーズを使用してリモートを上書きします。 #### すべてのジャーナルカウンターをリセット 画面表示: **すべてのジャーナルカウンターをリセット** すべてのジャーナル履歴を初期化します。次回の同期時にすべてのアイテムが送受信されます。 #### すべてのジャーナルカウンターを削除 画面表示: **すべてのジャーナルカウンターを削除** すべてのダウンロード/アップロードキャッシュをパージします。 #### 初期化ワイプ(Fresh Start Wipe) 画面表示: **初期化ワイプ** リモートサーバー上のすべてのデータをバッチで削除します。この操作は非トランザクション処理です(途中で中断してもロールバックされません)。開始する前にすべての同期デバイスを停止してください。操作が中断されたり失敗が報告されたりした場合は、停止した状態を維持し、Fresh Start Wipe を再実行した上で、信頼できる Vault から **Overwrite Server Data with This Device's Files** を実行してください。 ### 6. ガベージコレクション V3(CouchDB のみ) ガベージコレクション V3 は、現在のファイルや競合ブランチから到達不可能なチャンクドキュメントを特定し、それらのチャンクに対してローカルで論理削除を作成し、その削除を CouchDB に伝播させてリモートのコンパクション(圧縮)を要求します。 Vault、ローカルデータベース、およびリモートが正常であり、関連するすべてのデバイスが同期完了している場合にのみ使用してください。現在の状態でチャンクが不要になった過去のリビジョンは、読み取り不能になる可能性があります。データの破損修復や意図的な再構築の代替手段にはなりません。詳細は [ガベージコレクション V3 の仕様](specs_garbage_collection.md) を参照してください。 ### 7. リセット #### 既存の設定とデータベースを破棄 Self-hosted LiveSync の設定とローカルデータベースを破棄してリセットします。危険な操作です。実行前に必ずバックアップを作成してください。 #### リセットまたはアンインストールのためにローカルデータベースを削除 画面表示: **Self-hosted LiveSync をリセットまたはアンインストールするため、ローカルデータベースを削除** ローカルデータベースを削除して、Self-hosted LiveSync をリセットまたはアンインストールします。