A idéia básica é que você NÃO faça check-in de valores confidenciais no código ou no binário compilado. Especialmente se o projeto é de código aberto, você realmente não deveria. Existem várias estratégias de configuração que você pode seguir para fazer isso:
Espaços reservados no código (valores codificados)
Espaços reservados no código - como sugerido - o que é mais sensato e fácil de fazer em linguagens de programação dinâmicas, pois o código é fácil de alterar (sem a necessidade de compilar). Eu já vi muitos projetos de código aberto fazendo isso, como o MediaWiki LocalSettings.php
.
A desvantagem dessa estratégia é que a chave está codificada. Portanto, se o programa é distribuído como um binário, ter a chave codificada não o torna particularmente sustentável.
Arquivos de texto de configuração
Você também pode fazer isso implementando arquivos de texto de configuração , ou seja, o programa / aplicativo procura um arquivo de configuração e lê valores a partir dele. Você pode fazer check-in de uma configuração de amostra com espaços reservados, mas ter a configuração real local em sua máquina.
No seu caso, você pode criar um key.conf
arquivo de texto com a chave real, deixar o programa usar esse arquivo e ser ignorado pelo controle de versão. Você pode, por ser útil, fazer check-in de um key.conf.example
arquivo de texto com uma chave falsa e fazer o check-in. Verifique se o seu programa / aplicativo envia uma mensagem de erro útil para o usuário adicionar a chave real no arquivo correto.
Algumas linguagens de programação possuem APIs que fornecem isso automaticamente para você, como:
Se seu aplicativo for um aplicativo de banco de dados, considere colocar a chave ou outras variáveis de configuração no banco de dados. É o mesmo que o arquivo de texto de configuração acima, mas você coloca todas as variáveis de configuração, como a chave em uma tabela de banco de dados.
Através da visualização de preferências ou de um aplicativo Back Office
Se o programa for uma janela ou um aplicativo da Web com visualizações, você também poderá permitir que o aplicativo crie o arquivo de configuração, através de uma espécie de visualização de preferências. Dessa forma, você não precisa verificar um arquivo de configuração de exemplo, como sugerido acima.
O MediaWiki resolveu isso da mesma forma gerando automaticamente o LocalSettings.php
arquivo em um processo de instalação inicial.
É certo que essa não é uma opção para programas executados apenas como processos, serviços ou daemons em segundo plano. No entanto, é por isso que você cria projetos de GUI separados para criar um ponto de entrada para configurações de administração e preferências, em aplicativos Web geralmente chamados de aplicativo Back Office .