Введение
Rudel создает временные песочницы WordPress внутри одной установки хоста WordPress.
Песочница выбирается на уровне каждого запроса. Такой запрос использует клонированные таблицы WordPress и копию активной темы выбранной песочницы, а ядро WordPress, файлы плагинов и загруженные файлы остаются общими с хостом.
Что получает песочница
- копию таблиц хоста, включая пользователей и метаданные пользователей, с созданным префиксом таблиц
- копию одной темы (а для дочерней темы — также родительской темы) в каталоге песочницы
- метаданные жизненного цикла в таблицах хоста WordPress MySQL
Пользователи копируются при создании песочницы. После этого пользователи и пароли в песочнице и на хосте изменяются независимо.
Что остается общим
- файлы ядра WordPress
- файлы плагинов
- загруженные медиафайлы
Эта граница выбрана намеренно. Rudel создает быстрые песочницы для агентов, QA, экспериментов и рискованных изменений, выбираемые для каждого запроса, без необходимости использовать мультисайт или устанавливать второй экземпляр WordPress.
Как запрос выбирает песочницу
Запрос HTTP выбирает песочницу по заголовку X-Rudel-Environment или файлу cookie rudel_environment; команда WP-CLI использует переменную среды RUDEL_ENVIRONMENT. Rudel не проверяет подлинность выбранной песочницы: любой клиент, указавший действительный идентификатор, получает доступ к ней. См. раздел Изоляция.
Источник истины
Записи среды выполнения Rudel хранятся в базе данных хоста WordPress:
wp_rudel_environmentswp_rudel_worktrees
Настройки хранятся в параметре rudel_config. Конфигурации JSON среды выполнения и отдельного хранилища метаданных SQLite нет.