Мне нужна упрощенная методология, позволяющая запускать локально (работа выполняется на более чем одной машине), развертывать и выполнять контроль версий, где конфиденциальная информация вплоть до (включая пароль, имя пользователя, порт (-ы) ), имена хостов, имя базы данных) автоматически отсутствуют (или удалены) и импортируются в зависимости от ситуации?
Чувствительные данные были перечислены в порядке важности, поэтому, хотя решения с использованием только паролей хороши, чем дальше по цепочке, тем лучше. Другим приятным было бы иметь пример файла-заглушки для того, чтобы кто-то еще мог опробовать проект на своем компьютере с собственным хостом, просто заполнив недостающие части файла-заглушки.
Какие есть варианты для этой функции? Я думал о добавлении соответствующих настроек в локальный файл machine.config, но затем информация сохраняется в файле компьютера, а не где-то в зашифрованном виде в моем файле пользовательских документов. Кроме того, это не очень хорошо подходит для локального фиктивного файла для новых программистов, которые могут подключиться и играть.
Я думаю, что самое чистое решение - это локальный файл .config в корне проекта, который не добавлен в систему управления версиями.
Если есть способ зашифровать его таким образом, чтобы серверный компьютер был единственным с ключом для дешифрования файла (а не проекта, способного это сделать), который будет развернут, что было бы потрясающе. Тогда я мог бы хранить данные в системе контроля версий, делиться источником с другими людьми, заинтересованными в изучении проекта, без получения ими фактической информации, необходимой для внесения серьезных изменений или просмотра личной информации.