При восстановлении настройка CSP была принудительно включена. Некоторые компоненты темы использовали скрипты с CDN. Эти скрипты не были внесены в белый список, и из-за ошибок JS сообщения темы не отображались.
Большая безопасность всегда приветствуется, хотя я не ожидал, что Discourse изменит настройку резервной копии. Это понятно для новых установок, но не для восстановления из резервной копии. Поскольку дело было не просто в резервном копировании и восстановлении, я сначала даже не подумал проверить консоль браузера. Признаюсь, я довольно расстроен, потратив столько времени, сил и сна на такую глупую проблему, особенно учитывая, что сборка Discourse занимает чрезвычайно много времени.
В любом случае, теперь я знаю: будьте бдительны, друзья!
Я бы счёл это ошибкой, если бы вы восстановили резервную копию на точно той же версии Discourse. Был ли это ваш случай? При восстановлении резервной копии из более старой версии Discourse на более новой версии вы должны ожидать, что система будет работать иначе.
Вы уже сообщили об ошибках CSP авторам компонентов темы? Это как минимум предотвратит возникновение той же проблемы у других пользователей.
Вероятно, версия новее, так как мы обновляемся только при выходе новой версии, а установка нового экземпляра автоматически заберёт последнюю версию из test-passed.
В любом случае, независимо от того, новее или старее версия, если нет каких-то особых обстоятельств, на мой взгляд, существующие настройки никогда не должны изменяться каким-либо образом. Кроме того, при работе с одной и той же базовой версией я ожидаю, что моя резервная копия будет вести себя идентично. Если изменения всё же необходимы, было бы неплохо хотя бы показывать предупреждение после подключения к Discourse (например: «По соображениям безопасности настройка CSP была включена» — вы понимаете, о чём речь) или уведомлять о любых других изменениях.
Подумайте о последствиях этого. То, чего вы хотите, потребует изменения направления в масштабах всей отрасли.
В настоящее время то, что применяется при обновлении на месте, также применяется при восстановлении более старой базы данных. Это последовательное и предсказуемое поведение для приложений.
Если вы не хотите изменений в настройках, то обычный метод — использовать точно ту же версию приложения.
Под «последней» я имел в виду последний релиз, а не последние коммиты из ветки test-passed на GitHub.
Но да, это одна и та же базовая версия 2.4.0.beta9.
Мы говорим только о резервной копии и только о значениях настроек, ничего больше. Версия Discourse, изменения в БД и прочее не имеют значения. Я не вижу ни одного обоснования для изменения значения настройки из резервной копии без уведомления администратора. Вы настраиваете Discourse с помощью этих конкретных параметров, и бессмысленно произвольно менять вашизначения настроек только потому, что вы восстанавливаете резервную копию на более новой версии Discourse.
Как уже говорилось, если значение конкретной настройки должно быть изменено, я ожидаю, что Discourse сообщит администратору, что происходит. Речь идет просто о прозрачности и облегчении жизни администратора. Моя позиция такова: никогда не следует изменять настройки пользователя, если нет веской причины, и если такая причина есть, то уведомление администратора — это нормально.