バックアップ復元時のメール無効化

バックアップの復元時に送信メールが一時停止され、管理者が再度有効にするよう促す適切なサイト通知が表示されるのは素晴らしいことです。

この機能を、設定されている場合やメッセージの消費を開始する可能性がある POP ポーリングのオーバーライドにも拡張することは可能でしょうか、あるいはすべきでしょうか?

これは、「POP3 ポーリング有効化」と「POP3 ポーリングでサーバーから削除」の両方の設定が有効になっている場合に特に役立ちます。

「いいね!」 4

はい、その意見に賛成です。

「外部サービスに一切接続しない」モードがあると素晴らしいでしょう。このモードでは、フォーラム外の環境に永続的な影響を与えるすべての外部アクション(必須のものを除く送信メール、サーバーからのPOP3削除、Webhookのトリガーなど)を無効化します。

「いいね!」 5

はい、バックアップのテスト復元を行う際(定期的に行うことが推奨されます)に、稼働中のインスタンスに影響を与える心配なく、あるいは移行時に新しいインスタンスを起動して安全に確認してから切り替えを行う際(ソースサイトが読み取り専用モードまたは停止中であるなど)に役立つ「分離モード」のようなものです。

「いいね!」 2

いい視点ですね、これについて @gerhard さんはどうお考えですか?

「いいね!」 2

同意します。「分離モード」は有用な機能ですね。リストア後だけでなく、常に利用できると良いでしょう。

現時点では、シンプルなプラグインで同様のことを実現できます。以下のようなコードが機能するはずです:

# name: isolation-mode
# about: バックアップのリストア後に分離モードを有効にします。
# version: 1.0

after_initialize do
  on(:site_settings_restored) do
    SiteSetting.pop3_polling_enabled = false
    WebHook.update_all(active: false)
  end
end

別の方法として、discourse restore CLI コマンドを使用し、その後に rails runner でサイト設定やその他の項目を更新することも可能です。

「いいね!」 3

これはまだ最善のアドバイスですか?

はい、何も変更されていません。「分離モード」機能がないため、復元時に送信メール以外を無効にすることはできません。管理者に通知したり、すべてを簡単にオンに戻すオプションを提供したりする方法がないためです。

「いいね!」 1

これを私のリポジトリに追加しました(もちろん@gerhard氏にクレジットを記載しています!)。

追加したこと:

  • disable emails: はい
  • login required: true

そして、バックアップの復元が完了すると、以下のようになります。

これは、実際のユーザーメールを含む機密性の高いステージングバージョンをホストする上で、まさに救世主となります…

改めて感謝します!

「いいね!」 1