Configuração por ambiente sem vazar segredo
Pergunta
Como um serviço Node deve receber configuração (URLs, chaves, flags) entre dev, staging e produção?
Resposta esperada
Config vem do AMBIENTE, não do código: `process.env`, populado por um `.env` só em dev (com `.env` no `.gitignore` e um `.env.example` versionado sem valores), e por variáveis injetadas pelo orquestrador/secret manager em staging/prod. Boas práticas: validar e tipar a config no boot (com Zod/envalid) e falhar rápido se faltar algo obrigatório, em vez de descobrir com um `undefined` no meio de um request; centralizar num módulo `config.ts` que lê `process.env` uma vez e o resto do código importa dali (nada de `process.env.X` espalhado); nunca commitar segredo (se vazou, rotacione — ver a pergunta de segredos); e distinguir config (varia por ambiente) de constante (não varia — fica no código). Doze-fatores: um mesmo build, comportamento definido por env.
Por que perguntam isso
Pergunta pleno de Node. Sinal bom: 'valide no boot e falhe rápido' e o módulo config central. Conecta com segurança de segredos.