Redacción de secretos
Las grabaciones se hacen commit a git, así que los secretos se eliminan antes de escribir nada en disco. La redacción está activada por defecto; el proxy reemplaza los valores de estas cabeceras de petición/respuesta con [REDACTED]:
AuthorizationCookieSet-Cookie
Esto es seguro: el emparejamiento de reproducción ignora estas cabeceras, así que la redacción nunca rompe la reproducción. Se aplica a las grabaciones .mock.json, a las grabaciones de WebSocket y a los archivos .har. Para desactivar la redacción, pasa --no-redact en la CLI o establece redaction: false en la configuración.
Cuando solo algunas cookies son sensibles, permite las inofensivas por nombre (por ejemplo una cookie de theme o de test A/B). Las cookies permitidas conservan sus valores dentro de Cookie/Set-Cookie; cualquier otra cookie sigue redactándose.
Patrón de autenticación recomendado
Sección titulada «Patrón de autenticación recomendado»Para mantener el flujo de login y las credenciales totalmente fuera de las grabaciones, ejecuta la autenticación en un setup project de Playwright con el proxy en modo transparent, persiste el storageState en un auth-state.json gitignorado y reúsalo en tus pruebas. Las peticiones grabadas entonces solo llevan las cabeceras de sesión (redactadas), nunca el login.
Mira el ejemplo de app autenticada para una configuración funcional contra un proveedor de auth real.
Ajustar qué se redacta
Sección titulada «Ajustar qué se redacta»Las cabeceras por defecto siempre se aplican (mientras la redacción está activada); puedes añadir a ellas.
Flags de CLI
Sección titulada «Flags de CLI»--no-redact— desactiva la redacción de secretos (activada por defecto).--redact— activa la redacción de secretos; solo se necesita para reactivarla cuando la configuración poneredaction: false.--redact-headers <names>— nombres de cabeceras extra a redactar, separados por comas (fusionados con los valores por defecto).--redact-body <patterns>— patrones regex separados por comas a redactar de los cuerpos de petición/respuesta.--allow-headers <names>— nombres de cabeceras separados por comas a eximir de la redacción (por ejemploset-cookie).--allow-cookies <names>— nombres de cookies separados por comas a mantener sin redactar dentro deCookie/Set-Cookie.
# Redaction is already on; also redact an API-key header and "sk_live_..." tokens, keep the theme cookietest-proxy-recorder http://localhost:8000 \ --redact-headers x-api-key \ --redact-body "sk_live_[a-zA-Z0-9]+" \ --allow-cookies theme,localeProgramáticamente
Sección titulada «Programáticamente»Al construir ProxyServer directamente:
import { ProxyServer } from 'test-proxy-recorder';
// Passing this object enables redaction; pass `false` (or nothing) to keep it off.const proxy = new ProxyServer('http://localhost:3000', './recordings', undefined, { headers: ['x-api-key', 'x-auth'], // extra headers, merged with the defaults bodyPatterns: [/sk_live_[a-z0-9]+/i], // regexes replaced in request/response bodies allowHeaders: ['set-cookie'], // never redact these headers allowCookies: ['theme', 'locale'], // keep these cookies inside Cookie/Set-Cookie placeholder: '[REDACTED]', // default});redactSession(session, config) también se exporta si quieres redactar grabaciones existentes tú mismo.