# .gitleaks.toml — Configuração do gitleaks para OmniRoute # Task 7.18 — PLANO-QUALITY-GATES-FASE7.md # # Estende as regras padrão do gitleaks com allowlists específicas do projeto. # # INSTRUÇÕES para allowlists: # Findings legítimos (fixtures de teste, creds OAuth públicas já cobertas pelo # check-public-creds.mjs, valores de exemplo em docs) devem ser registrados abaixo # em [[allowlist]] com um comentário explicativo obrigatório. # # NÃO adicione uma entrada de allowlist sem justificativa. Cada entrada é revisada # a cada release (stale-enforcement). Regra: se o finding é um valor real que o # sistema usa em produção, é um verdadeiro positivo — não allowliste, corrija. # # Referência: docs/security/PUBLIC_CREDS.md (credenciais OAuth públicas conhecidas) # CLAUDE.md Hard Rule #11 (resolvePublicCred obrigatório) # Herdar TODAS as regras padrão do gitleaks. ATENÇÃO: um config customizado # SEM [extend].useDefault = true (e sem [[rules]] próprias) resulta em ZERO # regras — o gitleaks SUBSTITUI o ruleset padrão pelo arquivo, não o estende # automaticamente. Sem esta seção, `gitleaks --config .gitleaks.toml` nunca # detecta nada (todo finding vira 0), tornando o gate inerte. Com useDefault, # a allowlist abaixo é aplicada POR CIMA das ~170 regras padrão. [extend] useDefault = true # Para desabilitar uma regra específica, usar: # [[rules]] # id = "rule-id" # [rules.allowlist] # description = "..." # --------------------------------------------------------------------------- # Allowlist global do projeto # Entradas aqui são ignoradas em TODAS as varreduras. # --------------------------------------------------------------------------- [allowlist] description = "OmniRoute project-level allowlist — fixtures, test vectors, public OAuth creds" # Paths a ignorar completamente (node_modules, builds, etc.) paths = [ '''node_modules''', '''\.next''', '''dist''', '''\.git''', '''coverage''', '''\.nyc_output''', ] # Commits específicos a ignorar (ex: commit que introduziu fixtures de teste) # commits = [] # Regexes de stopwords — linhas que contêm estes padrões são ignoradas. # Usar apenas para falsos positivos comprovados com justificativa abaixo. # stopwords = [] # Regexes de targets (paths de arquivos) que podem ser allowlistados por regra. # Ver [[allowlist]] por-regra abaixo para granularidade. # --------------------------------------------------------------------------- # Allowlist por-regra (adicionar conforme necessário durante o stale review) # --------------------------------------------------------------------------- # # Exemplo (REMOVER / SUBSTITUIR por entradas reais quando necessário): # # [[rules]] # # Allowlistar fixtures de teste que contêm tokens OAuth de exemplo/inválidos # # Adicionado: 2026-06-13 | Revisar em: v3.9.0 | Justificativa: valores não-reais de teste # id = "github-fine-grained-pat" # [rules.allowlist] # description = "Test fixture PATs — valores sintéticos, não funcionais" # paths = [ # '''tests/fixtures/''', # '''tests/unit/''', # ] # [[rules]] # Falsos-positivos comprovados do generic-api-key — zerados em 2026-07-13 (WS6/D3, # plano v3.8.49). Revisar em v3.9.0. Nenhum é credencial: dois são NOMES DE CAMPO # de métricas de latência; o terceiro é o valor PÚBLICO de um beta header da API # da Anthropic (documentado publicamente, não é segredo). id = "generic-api-key" [rules.allowlist] description = "Field names + public Anthropic beta-header value (não são segredos)" regexes = [ '''latencyP\d{2}Ms''', '''interleaved-thinking-2025-05-14''', ]