Pular para o conteúdo principal

envguard scan

O comando scan realiza uma varredura completa no repositório atual em busca de arquivos de variáveis de ambiente (.env, .env.*, *.env), cruzando os achados com o status do Git.


Sintaxe

envguard scan [flags]

Flags Disponíveis

FlagTipoDescriçãoPadrão
-p, --pathstringDiretório alvo para a varredura"."
-f, --formatstringFormato da saída (text, terminal ou json)text
-s, --severitystringNível mínimo de severidade (all, info, warning, high, critical)all
-c, --configstringCaminho para arquivo de configuração customizado""
--no-colorboolDesativa cores ANSI na saída do terminalfalse
--help, -hboolExibe a ajuda do comandofalse

Exemplos de Uso

1. Varredura Padrão (Texto Formatado)

envguard scan

Exemplo de Saída:

🛡️ envguard v0.3.0
Target: ./meu-projeto
──────────────────────────────────────────────────

Findings:
✗ [CRITICAL] .env
Message: Environment file is tracked by Git (committed in repository history).
Suggestions:
• Remove file from git tracking: git rm --cached .env
• Add to .gitignore
• Rotate any leaked credentials
Secrets:
• [CRITICAL] AWS_ACCESS_KEY_ID (aws) at line 3

⚠ [WARNING] .env.local
Message: Environment file exists locally and is not ignored by .gitignore.
Suggestions:
• Add to .gitignore

──────────────────────────────────────────────────
Summary:
Total Findings: 2 (Critical: 1, High: 0, Warning: 1, Info: 0)
Status: ✗ FAILED

Quando o arquivo contém segredos reais detectados pelo Secret Scanner, cada ocorrência é listada em Secrets: com sua própria severidade, chave, provedor (se aplicável) e linha — o valor do segredo nunca é exibido.


2. Saída em JSON Estruturado

Ideal para integração com scripts personalizados, automações ou ferramentas terceiras:

envguard scan --format json

Exemplo de Saída JSON:

{
"version": "0.3.0",
"timestamp": "2026-09-12T12:00:00Z",
"scanned_dir": "./meu-projeto",
"findings": [
{
"path": ".env",
"severity": "critical",
"message": "Environment file is tracked by Git (committed in repository history).",
"suggestions": [
"Remove file from git tracking: git rm --cached .env",
"Add to .gitignore",
"Rotate any leaked credentials"
],
"git_status": {
"is_repo": true,
"is_tracked": true,
"is_staged": false,
"is_ignored": false
},
"is_allowed": false,
"secret_matches": [
{
"line": 3,
"key": "AWS_ACCESS_KEY_ID",
"method": "pattern",
"provider": "aws",
"severity": "critical"
}
]
},
{
"path": ".env.local",
"severity": "warning",
"message": "Environment file exists locally and is not ignored by .gitignore.",
"suggestions": ["Add to .gitignore"],
"git_status": {
"is_repo": true,
"is_tracked": false,
"is_staged": false,
"is_ignored": false
},
"is_allowed": false
}
],
"summary": {
"total": 2,
"critical": 1,
"high": 0,
"warning": 1,
"info": 0,
"passed": false
}
}

Códigos de Retorno (Exit Codes)

CódigoSignificado
0Nenhuma violação bloqueante encontrada.
1Encontrada ao menos uma violação de severidade CRITICAL ou HIGH.