Enmascaramiento de secretos
Las grabaciones se hacen commit a git, así que los secretos se eliminan antes de escribir nada en disco. El enmascaramiento está activado 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 el enmascaramiento nunca rompe la reproducción. Se aplica a las grabaciones .mock.json, a las grabaciones de WebSocket y a los archivos .har. Para desactivar el enmascaramiento, 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 enmascará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 (enmascaradas), nunca el login.
Mira el ejemplo de app autenticada para una configuración funcional contra un proveedor de auth real.
Ajustar qué se enmascara
Sección titulada «Ajustar qué se enmascara»Las cabeceras por defecto siempre se aplican (mientras el enmascaramiento está activado); puedes añadir a ellas.
Flags de CLI
Sección titulada «Flags de CLI»--no-redact— desactiva el enmascaramiento de secretos (activado por defecto).--redact— activa el enmascaramiento de secretos; solo se necesita para reactivarlo cuando la configuración poneredaction: false.--redact-headers <names>— nombres de cabeceras extra a enmascarar, separados por comas (fusionados con los valores por defecto).--redact-body <patterns>— patrones regex separados por comas a enmascarar de los cuerpos de petición/respuesta.--allow-headers <names>— nombres de cabeceras separados por comas a eximir del enmascaramiento (por ejemploset-cookie).--allow-cookies <names>— nombres de cookies separados por comas a mantener sin enmascarar 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 enmascarar grabaciones existentes tú mismo.