Alex_P
(Alex P.)
1
本番のフォーラムを壊すリスクを避けるため、ローカル環境でプラグインやテーマなどを少し実験したいと考えています。しかし、本番環境と似た状態をローカルで構築するのは大変なので、バックアップをローカルインスタンスにそのまま復元できれば理想的です。
ただ、ローカルインスタンスから本番のユーザーにメールが送信されてしまうなどのリスクを避けるためには、どのように対応すべきでしょうか?また、私が気づいていない落とし穴などはありますか?
バックアップ内のすべてのユーザーデータを匿名化(少なくともメールアドレスの削除など)する方法はありますか?あるいは、ユーザーデータのみを除外して他をすべて復元する方法はあるでしょうか?
RGJ
(Richard - Communiteq)
2
スタッフ以外のすべてのユーザーを匿名化するには、Rails コンソールから以下を実行してください:
acting_user = User.find(-1)
User.all.each do |u|
next if u.staff?
user = UserAnonymizer.new(u, acting_user).make_anonymous
end
すべての送信メールを無効にする方が簡単ではありませんか?それはグローバルなサイト設定です。
Alex_P
(Alex P.)
4
はい、おそらくこの設定を変更する方が簡単でしょう。ただし、バックアップ復元時にはすべての設定が上書きされるため、復元完了からメール送信無効化までの間に何通かのメールが送信されてしまう可能性があります。ただし、バックアップ時にソースインスタンス側でもメール送信が無効化されていた場合は例外です。
余談ですが、ローカルの Docker 開発環境ではなく、別のサーバーとドメインを使用する方がよいと気づきました。
バックアップ復元は app.yml には影響しないと理解していますが、テストサーバーの app.yml に SMTP 設定を入力しなければ、メールが送信されることはないのでしょうか?
RGJ
(Richard - Communiteq)
5
CCPA など多くの法律において、匿名化されていない本番データを開発およびテスト環境で使用することは、不正な処理とみなされます。バグを含む可能性のあるシステムや、ラップトップ上にデータベースを保持しているシステム、または権限のない人物がアクセスできるシステムでは、データ漏洩のリスクが高まります。
いいえ、リストア操作中は Sidekiq が一時停止されるため、そのようなことはありません。
Alex_P
(Alex P.)
6
はい、でも私が言いたいのは、リストア操作中ではなく、リストア完了後(私の理解では、その後すべてのプロセスが即座に再開されるはずですが)で、メール送信を無効にするためにこの設定を変更する前のことです。
RGJ
(Richard - Communiteq)
7
申し訳ありません、私の回答は確かに不十分でした。Discourse のバックアップを復元すると、復元操作の一環として送信メールが自動的に無効になります。復元後に明示的に有効にする必要があります。
POP ポーリングが設定されている場合は、手動で無効化する必要があります。そうしないと、テストインスタンスが本番インスタンスとは別に受信メールの処理を開始する可能性があります。
Alex_P
(Alex P.)
9
lentower
(Len Tower Jr.)
10
管理者には、送信メールを有効にするようリマインドするメッセージが表示されますか?