DEV Community

Cover image for Variáveis de Ambiente no ruby on rails
Lucas Cuerci Soares (Cuerci)
Lucas Cuerci Soares (Cuerci)

Posted on

Variáveis de Ambiente no ruby on rails

Uma variável de ambiente é um valor configurável que seu aplicativo pode usar em diferentes ambientes (como desenvolvimento, teste e produção) sem que esses valores sejam explicitamente definidos no código.

Elas são ideais para armazenar informações sensíveis ou que podem variar entre ambientes, como credenciais de API, configurações de banco de dados, chaves secretas e URLs de serviços externos.

Como armazenar variáveis de ambiente em um app Rails

Em resumo existem 3 maneiras pra fazer isso:

1. configuração direta no sistema operacional

Esse método é o mais simples de fazer, além de ser muito seguro para ambientes de produção pois evita o armazenamento de dados sensíveis no repositório

No terminal , defina uma variável com:
export SECRET_KEY=uma_chave_secreta

Então sua aplicação poderá acessar essa variável com:
ENV["SECRET_KEY"]

Caso queira saber quais variáveis de ambiente já existem no seu sistema, utilize o comando:
env ou printenv

2. Usando Credenciais Encriptadas (Rails Encrypted Credentials)

O próprio Rails oferece uma camada de segurança adicional para armazenar variáveis sensíveis através de uma master.key visivel em config/master.key e por padrão já é incluída no arquivo .gitignore evitando risco da chave ser acidentalmente versionada no Git e exposta publicamente.

execute o comando:
EDITOR="code" rails credentials:edit

Assim o VScode irá abrir o arquivo credentials.yml.enc permitindo criar e editar suas variáveis, inicialmente com uma aparência bem parecida com essa:
imagem padrão rails credentials

Uma possibilidade interessante é que dessa maneira é possível agrupar variáveis, por exemplo:
google_default

Sendo possível acessar os valores agrupados através do comando:
Rails.application.credentials.google[:client_id]

obs: sempre dê dois espaços manuais(tecla espaço) invés de tabulações(Tecla tab), caso contrario é possível q o sistema não consiga acessar suas variáveis

3. Usando um arquivo .env com a gem Dotenv:

A gem Dotenv permite que você crie um arquivo .env na raiz do projeto onde as variáveis são armazenadas seguindo o msm padrão em formato CHAVE=VALOR.

Como configurar

  1. Adicione gem 'dotenv-rails' ao seu Gemfile e instale as dependências bundle install.

  2. Em seguida, crie um arquivo .env na raiz do seu projeto e adicione suas variáveis:
    SECRET_KEY_BASE=uma_chave_secreta

  3. não se esqueça de adicionar o arquivo .env ao .gitignore para evitar que suas variáveis ​​de ambiente sensíveis sejam

  4. Verifique se suas variáveis de ambiente estão configuradas corretamente acessando no rails c: ENV['SECRET_KEY_BASE']

obs: O uso de um arquivo .env com a gem Dotenv é prático e ideal para ambientes de desenvolvimento e testes, mas não deve ser usado em produção.


Conclusão

Escolher a abordagem certa para gerenciar variáveis de ambiente depende das necessidades do seu projeto e do seu ambiente de desenvolvimento.

Cada método tem suas vantagens e limitações, e a escolha certa pode fazer toda a diferença na segurança e na organização do seu código.

O mais importante é garantir que os dados sensíveis estejam sempre protegidos, evitando o risco de exposição acidental, independentemente da abordagem escolhida, adotar boas práticas de segurança desde o início é essencial para qualquer projeto.

Top comments (0)