Joplin で同期はしない方が無難かも

まずはご紹介

普段使っているノートアプリの Joplin には面白い機能があります。
暗号化機能です。
Joplin 自体は何度か当ブログでもご紹介しましたが、暗号化機能自体の紹介は初めてではないでしょうか。

Joplin の暗号化は、入力したパスワードによって設定されます。
設定されたタイミングで salt(ソルト文字列)が自動生成され、対で保管されます。
また、ファイル単位で暗号化されます。これはパフォーマンスの上から合理的でしょう(暗号化有無に関わらずファイル単位で保管)。
なお、Joplin を他 PC へインストールしてファイルの解読を試みるのは難しいです。
※Joplin で salt が再作成されるため、復号化出来ない。

今回失敗したこと

Joplin には同期機能があります。
Joplin は Electron フレームワークで開発されているため、データは実データと levelDB に分散して保管されます。

この同期機能を使うと、ファイルベースで異なる場所に複製しておくことができます。

この機能を利用して、ファイルを全部消しました・・・。

そして、バックアップから戻そうとしたのですが、前述した暗号化機能の salt 不一致のため可読できませんでした。
※アプリで実装されていると手軽に使えますが、暗号化が怖いものだと改めて感じました。

なお、後述していますが fail-safe 機能追加により、同期先が空の場合は処理されないようになりました。

環境

  • Windows 10 Pro
    1809
  • Joplin
    v1.0.165

同期設定方法

ツールバーから設定が可能です。

  • [ツール] - [全体のオプション] - [Synchronisation]

設定可能項目は以下のとおりです。

  • 同期間隔
  • 同期先
  • 同期先のディレクトリ(絶対パス)

警告

なお、設定欄の真下に以下の警告文が表示されていましたが(英語だったのと大丈夫という思い込みから)スルーしていました。

以下、Google翻訳と併せて掲載しておきます。

Synchronisation
Attention: If you change this location, make sure you copy all your content to it before syncing, otherwise all files will be removed! See the FAQ for more details: https://joplinapp.org/faq/

注意:この場所を変更する場合は、同期する前にすべてのコンテンツを必ずコピーしてください。そうしないと、すべてのファイルが削除されます。詳細については、FAQを参照してください:https://joplinapp.org/faq/

なお、バージョン v1.0.168 では安全機構が追加されたため、私のような不幸は起きなくなりました。

base on Release v1.0.168 · laurent22/joplin · GitHub
Commits on Sep 26, 2019
New: Added fail-safe to prevent data from being wiped out when the sync target is empty

新規:同期ターゲットが空のときにデータが消去されないようにフェールセーフを追加しました

備忘録

今回は、Windows で確認しました。
メインで使っている Lubuntu では問題なく運用しているのですが、如何せん同期設定をしたのがだいぶ前なので、今変更したら同様の現象になるのかどうかまでは未確認です。
(怖くてできません...)。