Rédaction des secrets
Les enregistrements sont committés dans git, donc les secrets sont retirés avant d’écrire quoi que ce soit sur le disque. La rédaction est activée par défaut ; le proxy remplace les valeurs de ces en-têtes de requête/réponse par [REDACTED] :
AuthorizationCookieSet-Cookie
C’est sûr : la correspondance de replay ignore ces en-têtes, donc la rédaction ne casse jamais la lecture. Elle s’applique aux enregistrements .mock.json, aux enregistrements WebSocket et aux fichiers .har. Pour désactiver la rédaction, passez --no-redact en CLI ou définissez redaction: false dans la configuration.
Quand seuls certains cookies sont sensibles, autorisez les inoffensifs par nom (par exemple un cookie de theme ou de test A/B). Les cookies autorisés conservent leurs valeurs dans Cookie/Set-Cookie ; tout autre cookie reste rédigé.
Modèle d’authentification recommandé
Section intitulée « Modèle d’authentification recommandé »Pour garder le flux de connexion et les identifiants totalement hors des enregistrements, exécutez l’authentification dans un setup project Playwright avec le proxy en mode transparent, persistez le storageState dans un auth-state.json gitignoré et réutilisez-le dans vos tests. Les requêtes enregistrées ne portent alors que les en-têtes de session (rédigés), jamais la connexion.
Voir l’exemple d’app authentifiée pour une configuration fonctionnelle contre un vrai fournisseur d’authentification.
Ajuster ce qui est rédigé
Section intitulée « Ajuster ce qui est rédigé »Les en-têtes par défaut s’appliquent toujours (tant que la rédaction est activée) ; vous pouvez en ajouter.
Flags de CLI
Section intitulée « Flags de CLI »--no-redact— désactive la rédaction des secrets (activée par défaut).--redact— active la rédaction des secrets ; nécessaire seulement pour la réactiver quand la configuration metredaction: false.--redact-headers <names>— noms d’en-têtes supplémentaires à rédiger, séparés par des virgules (fusionnés avec les valeurs par défaut).--redact-body <patterns>— motifs regex séparés par des virgules à rédiger des corps de requête/réponse.--allow-headers <names>— noms d’en-têtes séparés par des virgules à exempter de la rédaction (par exempleset-cookie).--allow-cookies <names>— noms de cookies séparés par des virgules à garder non rédigés dansCookie/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,localePar programme
Section intitulée « Par programme »En construisant ProxyServer directement :
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) est aussi exporté si vous voulez rédiger vous-même des enregistrements existants.