备份恢复禁用邮件

It’s great that outgoing email gets suspended when a backup is restored, along with a suitable site notice to remind the admin to switch it on.

Should / could this be extended to override POP polling too, incase that was setup and starts consuming messages?

This would be helpful where the settings “pop3 polling enabled” and “pop3 polling delete from server” are both set.

4 个赞

Yes, I second that.

It would be great if there was a “don’t reach out to any external service” mode that disables all external actions that have a permanent effect on the world outside the forum, like outgoing emails (except for those that are really essential), POP3 delete from server and triggering webhooks.

5 个赞

Yep - a sort of ‘isolation mode’ so that you can do a test restore of a backup (as is good practice from time to time) without any worry of impacting the running instance, or during migration you can stand up the new instance and check it over safely before making the switch (presuming the source site is in read-only mode or down etc…).

2 个赞

Good point, any thoughts on this @gerhard?

2 个赞

I agree. An “isolation mode” would be a useful feature. Not just after restores.

For now, something similar could be done with a simple plugin. Something like the following should work:

# name: isolation-mode
# about: Enables isolation mode after restoring backup.
# version: 1.0

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

As an alternative, you could also use the discourse restore CLI command and update site settings and whatnot afterwards with the rails runner.

3 个赞

这仍然是最好的建议吗?

是的,没有任何改变。“隔离模式”功能不存在,因此在恢复时,除了禁用传出电子邮件之外,无法执行更多操作,因为没有办法通知管理员并为他们提供重新启用所有功能的简便选项。

1 个赞

我已将其添加到我自己的仓库中(当然,已注明 @gerhard 的功劳!)。

我添加的内容:

  • disable emails: 是
  • login required: true

瞧,在完成备份恢复后:

这对于托管包含真实用户电子邮件的敏感暂存版本来说,确实是救命稻草……

再次感谢!

1 个赞