Masquage 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. Le masquage est activé 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 le masquage ne casse jamais la lecture. Il s’applique aux enregistrements .mock.json, aux enregistrements WebSocket et aux fichiers .har. Pour désactiver le masquage, 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 masqué.
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 (masqué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 masqué
Section intitulée « Ajuster ce qui est masqué »Les en-têtes par défaut s’appliquent toujours (tant que le masquage est activé) ; vous pouvez en ajouter.
Flags de CLI
Section intitulée « Flags de CLI »--no-redact— désactive le masquage des secrets (activé par défaut).--redact— active le masquage des secrets ; nécessaire seulement pour le réactiver quand la configuration metredaction: false.--redact-headers <names>— noms d’en-têtes supplémentaires à masquer, 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 à masquer des corps de requête/réponse.--allow-headers <names>— noms d’en-têtes séparés par des virgules à exempter du masquage (par exempleset-cookie).--allow-cookies <names>— noms de cookies séparés par des virgules à garder non masqué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 masquer vous-même des enregistrements existants.