Remoção de segredos
As gravações são commitadas no git, então os segredos são removidos antes de qualquer coisa ser gravada no disco. A remoção fica ativa por padrão; o proxy substitui os valores destes headers de requisição/resposta por [REDACTED]:
AuthorizationCookieSet-Cookie
Isso é seguro: a correspondência na reprodução ignora esses headers, então a remoção nunca quebra a reprodução. Ela se aplica a gravações .mock.json, gravações WebSocket e arquivos .har. Para desativar a remoção, passe --no-redact na CLI ou defina redaction: false na config.
Quando apenas alguns cookies são sensíveis, coloque os inofensivos na allow-list por nome (por exemplo, um cookie theme ou de teste A/B). Cookies na allow-list mantêm seus valores dentro de Cookie/Set-Cookie; todos os outros cookies continuam removidos.
Padrão de autenticação recomendado
Seção intitulada “Padrão de autenticação recomendado”Para manter o fluxo de login e as credenciais totalmente fora das gravações, execute a autenticação em um projeto de setup do Playwright com o proxy no modo transparent, persista o storageState em um auth-state.json ignorado pelo git e reutilize-o nos seus testes. As requisições gravadas então carregam apenas os headers de sessão (removidos), nunca o login.
Veja o exemplo de aplicação autenticada para uma configuração funcional contra um provedor de autenticação real.
Ajustando o que é removido
Seção intitulada “Ajustando o que é removido”Os headers padrão sempre se aplicam (enquanto a remoção estiver ativa); você pode acrescentar a eles.
Flags da CLI
Seção intitulada “Flags da CLI”--no-redact— desativa a remoção de segredos (ativa por padrão).--redact— ativa a remoção de segredos; só é necessário para reativar quando a config defineredaction: false.--redact-headers <names>— nomes de header extras, separados por vírgula, a remover (mesclados com os padrões).--redact-body <patterns>— padrões regex separados por vírgula a remover dos corpos de requisição/resposta.--allow-headers <names>— nomes de header, separados por vírgula, isentos de remoção (por exemploset-cookie).--allow-cookies <names>— nomes de cookie, separados por vírgula, a manter sem remoção dentro deCookie/Set-Cookie.
# A remoção já está ativa; remova também um header de API-key e tokens "sk_live_...", mantenha o cookie themetest-proxy-recorder http://localhost:8000 \ --redact-headers x-api-key \ --redact-body "sk_live_[a-zA-Z0-9]+" \ --allow-cookies theme,localeProgramático
Seção intitulada “Programático”Ao construir o ProxyServer diretamente:
import { ProxyServer } from 'test-proxy-recorder';
// Passar este objeto ativa a remoção; passe `false` (ou nada) para mantê-la desativada.const proxy = new ProxyServer('http://localhost:3000', './recordings', undefined, { headers: ['x-api-key', 'x-auth'], // headers extras, mesclados com os padrões bodyPatterns: [/sk_live_[a-z0-9]+/i], // regexes substituídos nos corpos de requisição/resposta allowHeaders: ['set-cookie'], // nunca remova estes headers allowCookies: ['theme', 'locale'], // mantenha estes cookies dentro de Cookie/Set-Cookie placeholder: '[REDACTED]', // padrão});O redactSession(session, config) também é exportado caso você queira remover segredos de gravações existentes por conta própria.