De acordo com o link, há interesse, mas vários anos se passaram e não sei se eles realmente implementaram ou não.
Um cenário muito útil para isso é configurar um servidor VPS com exatamente as mesmas configurações do servidor de produção, e este VPS clonado seria apenas para desenvolvimento. Dessa forma, posso trabalhar de forma mais eficaz com minha equipe de desenvolvedores.
Você precisa de muito mais do que apenas as configurações para ver que as coisas funcionam. Por que não restaurar o banco de dados de produção para o ambiente de teste (staging)? Veja Configurar um servidor de teste (staging).
Uma pergunta: isso também clona as credenciais e o conteúdo do fórum? Porque, obviamente, os desenvolvedores não precisam disso, apenas da configuração básica para desenvolver os plugins. Eu não quero que eles tenham acesso às contas dos meus usuários, muito menos às contas de Administrador.
Sim - ele clona absolutamente tudo. Se você tem desenvolvedores não confiáveis, talvez não seja a melhor coisa. Pessoalmente, eu contrataria desenvolvedores confiáveis!
Como está, você precisaria se comprometer a clonar a estrutura que você precisa (por exemplo, configurações, categorias, grupos, plugins, etc.) e mantê-la sincronizada manualmente, cloná-la novamente quando necessário ou desenvolver sua própria solução para automatizá-la.
Mesmo que você confie nos seus desenvolvedores, pode haver regulamentações (como a GDPR) que proíbem você de compartilhar informações pessoais com pessoas fora de uma determinada jurisdição ou que exigem que você minimize a quantidade de informações pessoais copiadas para outro sistema. Um servidor de desenvolvimento ou de staging executa software não testado que pode conter problemas de segurança.
Nós sempre executamos algo como isto no servidor de staging imediatamente após restaurar o backup da produção, o que anonimiza todos os usuários, exceto a equipe e aqueles no grupo testusers.
keep_groups = Group.where(name: ['staff', 'testusers']).pluck(:id)
acting_user = User.find(-1)
User.all.each do |u|
next if u.in_any_groups? keep_groups
user = UserAnonymizer.new(u, acting_user).make_anonymous
end