Según el enlace hay interés pero han pasado varios años y no sé si lo implementaron o no.
Un escenario muy útil para esto es configurar un servidor VPS con la configuración exacta del servidor de producción, y este VPS clonado sería únicamente para desarrollo. De esta manera, puedo trabajar de manera más efectiva con mi equipo de desarrolladores.
Necesitas mucho más que solo la configuración para ver que esas cosas funcionan. ¿Por qué no restaurar la base de datos de producción en el entorno de prueba (staging)? Consulta Configurar un servidor de prueba (staging).
Una pregunta: ¿eso también clona las credenciales y el contenido del foro? Porque obviamente los desarrolladores no necesitan eso, solo la configuración básica para desarrollar los complementos. No quiero que tengan acceso a las cuentas de mis usuarios, y mucho menos a las cuentas de Administrador.
Sí, clona absolutamente todo. Si tienes desarrolladores en los que no confías, entonces podría no ser lo mejor. Personalmente, ¡yo contrataría desarrolladores de confianza!
Tal como está, necesitarías comprometerte a clonar la estructura que necesitas allí (por ejemplo, configuraciones, categorías, grupos, complementos, etc.) y o bien mantenerla sincronizada manualmente, volver a clonarla cuando sea necesario, o desarrollar tu propia solución para automatizarlo.
Incluso si confías en tus desarrolladores, puede haber regulaciones (como el RGPD) que prohíban compartir información personal con personas fuera de cierta jurisdicción o que requieran que minimices la cantidad de información personal que se copia a otro sistema. Además, un servidor de desarrollo o de staging ejecuta software no probado que podría contener problemas de seguridad.
Siempre ejecutamos algo como esto en el servidor de staging inmediatamente después de restaurar la copia de seguridad de producción, lo que anonimiza a todos los usuarios excepto al personal y a los del 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