22 pontos por xguru 2025-07-21 | 2 comentários | Compartilhar no WhatsApp
  • Ferramenta de gerenciamento de variáveis de ambiente de próxima geração que supera as limitações do modelo tradicional .env/.env.example, resolvendo de uma vez colaboração/IA/segurança/estabilidade de tipos
    • Gerencia o esquema de variáveis de ambiente em um só lugar com .env.schema, sem o risco de inconsistência entre o valor real e o exemplo, como acontece com .env.example
  • Por meio de anotações com decoradores @env-spec, adiciona de forma declarativa ao arquivo .env várias informações, como esquema, tipo, validação, exemplo, sensibilidade e gerenciamento externo de segredos
    • @required, @type=string, @sensitive, @example etc.
  • Validação robusta: informa imediatamente, com mensagens claras, erros de configuração incorreta ou campos não preenchidos (bloqueando preventivamente antes do runtime)
  • Geração automática de tipos com base no esquema, oferecendo segurança de tipos ao acessar variáveis de ambiente no código e suporte a IntelliSense na IDE
  • Segurança: mascaramento automático de informações sensíveis (logs/console), detecção de vazamento em cliente empacotado/respostas
  • Múltiplos ambientes e overrides: suporta configurações de ambiente complexas, como valores padrão, arquivos por ambiente, valores pessoais ignorados pelo git e combinação com env do processo
  • Integração com segredos externos: carregamento dinâmico de segredos baseado em comandos, como 1Password e exec; suporte a plugins, criptografia local e vault de equipe em breve
  • Independente de linguagem/runtime: além de JS/TS, é possível injetar env validado em qualquer linguagem ou processo, como em varlock run -- python my.py
  • Pode substituir totalmente o dotenv: basta trocar o import do dotenv por varlock para usar imediatamente validação, geração automática de tipos, reforço de segurança, múltiplos ambientes e integração com segredos

2 comentários

 
onixboox 2025-07-23

Então isso significa que .env.schema precisa ser incluído no .gitignore?

 
onixboox 2025-07-23

Ah... então a ideia é deixar as informações no .env e o .env.schema faz a leitura, né.