Documentação / Segurança

Cofre de credenciais

O Yuli encontra .env, chaves e tokens soltos no seu projeto e oferece guardá-los criptografados fora do repositório, sem quebrar a execução.

O Yuli detecta credenciais soltas no seu projeto (um .env na raiz, chaves privadas, tokens em .npmrc, contas de serviço, segredos escritos no código…) e oferece guardá-las em um cofre criptografado fora do repositório. Nada é movido sem a sua confirmação.

O que ele detecta

Tipo Exemplos
Ambiente .env, .env.local, .env.production… Os modelos .env.example, .env.sample e .env.template não contam.
Chaves e repositórios de chaves *.pem, *.key, *.p12, *.pfx, *.jks, id_rsa, id_ed25519
Credenciais de ferramentas Contas de serviço JSON, credentials.json, .npmrc, .yarnrc ou .pypirc com token, .aws/credentials, kubeconfig, config.json do Docker, *.tfvars, .netrc, .git-credentials, .pgpass
Código Segredos escritos diretamente no código-fonte

Cada achado indica a sua situação no git. Estes casos são marcados com mais gravidade:

Selo Significa
O Git rastreia O arquivo está versionado.
Sem .gitignore O arquivo não está ignorado: o próximo commit pode enviá-lo.
No histórico do git Em algum momento ele foi enviado ao repositório.

O cartão «Credenciais expostas»

Quando o Yuli encontra algo, aparece o cartão Credenciais expostas. Para cada achado, você escolhe:

  • Mover para o cofre (recomendado): o Yuli copia o arquivo criptografado para o cofre, verifica a cópia e só então apaga o original. Ele cria um .env.example com as chaves vazias e adiciona o padrão ao .gitignore.
  • Está bem assim: deixa o arquivo onde está. Escreva o Motivo e clique em Lembrar para não ser perguntado de novo.
  • Abrir: abre o arquivo no editor.

Você sempre pode Restaurar um arquivo movido.

Mover um .env passo a passo

0 de 6 feitos

Se o arquivo chegou a ser enviado ao git, movê-lo não basta: o segredo continua no histórico. O Yuli avisa que você precisa rotacioná-lo (trocar a senha ou o token) e mostra como limpar o histórico com git filter-repo. O Yuli nunca reescreve o histórico por conta própria.

Onde fica e como é criptografado

Local padrão <configuração>/yuli-ide/vault/<id-do-projeto>/, na pasta de configuração do seu usuário, fora de qualquer projeto
Permissões Somente para você: 0700/0600 no macOS e no Linux, uma ACL do seu usuário no Windows
Criptografia no Windows DPAPI
Criptografia no macOS e no Linux AES-256-GCM, com a chave mestra no chaveiro do sistema

Se o sistema não oferecer essa proteção, o Yuli não move nada.

Você pode escolher outra pasta (por exemplo, um disco externo) com Alterar local…, desde que fique fora do projeto e de qualquer repositório git.

Opções

Em Opções globais › Segurança › Cofre de credenciais:

Opção O que faz
Alterar local… Escolhe outra pasta para o cofre.
Injetar Passa as variáveis do cofre para a execução. Por padrão, são injetados .env, .env.local e .env.development.
Materializar ao executar Grava um .env temporário enquanto a execução durar.
Adicionar variável Adiciona uma variável nova diretamente ao cofre.
Criar .env.example no projeto Gera o modelo com as chaves vazias.
Mostrar Exibe um valor durante 20 segundos.

Seu projeto continua funcionando

Ao executar (configurações de execução, tarefas e o terminal integrado), o Yuli injeta as variáveis do cofre como variáveis de ambiente. As bibliotecas dotenv as respeitam porque as variáveis reais têm prioridade.

Se a sua ferramenta precisar do arquivo em disco, ative Materializar ao executar: o Yuli grava um .env temporário (permissões 0600, ignorado pelo git) apenas enquanto a execução durar e o apaga ao terminar.

E os agentes de IA

Os agentes (Claude Code, Kiro, Codex, Antigravity, Copilot e o chat do Yuli) nunca veem os valores. Os hooks do agente negam o acesso à pasta do cofre e, se um valor aparecer na saída do terminal, ele é mascarado.

Os agentes podem, sim, ajudar você a encontrar o problema com duas ferramentas que não devolvem valores:

Ferramenta O que faz
yuli_vault_findings Somente leitura: caminhos, tipo, gravidade, situação no git, nomes das variáveis e o que o cofre já guarda. Nunca um valor.
yuli_vault_propose_move Mostra o cartão do Yuli com os arquivos que ele sugere mover e por quê. Não move nada: quem decide é você, no cartão.

Assim o agente pode dizer «há um .env na raiz, posso movê-lo para o cofre?», mas nunca lê-lo. Veja também Segredos e privacidade.