Редактирование секретов
Записи коммитятся в git, поэтому секреты вырезаются до того, как что-либо будет записано на диск. Редактирование включено по умолчанию; прокси заменяет значения этих заголовков запроса/ответа на [REDACTED]:
AuthorizationCookieSet-Cookie
Это безопасно: сопоставление при воспроизведении игнорирует эти заголовки, поэтому редактирование никогда не ломает воспроизведение. Оно применяется к записям .mock.json, записям WebSocket и файлам .har. Чтобы отключить редактирование, передайте --no-redact в CLI или задайте redaction: false в конфигурации.
Когда чувствительны лишь некоторые cookie, разрешите безобидные по имени (например, cookie theme или A/B-теста). Разрешённые cookie сохраняют свои значения внутри Cookie/Set-Cookie; все остальные по-прежнему редактируются.
Рекомендуемый паттерн аутентификации
Заголовок раздела «Рекомендуемый паттерн аутентификации»Чтобы полностью убрать поток входа и учётные данные из записей, выполняйте аутентификацию в setup project Playwright с прокси в режиме transparent, сохраняйте storageState в исключённый из git auth-state.json и переиспользуйте его в тестах. Тогда записанные запросы несут только (отредактированные) заголовки сессии, но никогда сам вход.
Рабочую настройку против реального провайдера аутентификации см. в примере аутентифицированного приложения.
Настройка того, что редактируется
Заголовок раздела «Настройка того, что редактируется»Заголовки по умолчанию применяются всегда (пока редактирование включено); вы можете добавить к ним.
Флаги CLI
Заголовок раздела «Флаги CLI»--no-redact— отключить редактирование секретов (включено по умолчанию).--redact— включить редактирование секретов; нужно только чтобы снова включить, когда конфигурация задаётredaction: false.--redact-headers <names>— дополнительные имена заголовков для редактирования, через запятую (объединяются со значениями по умолчанию).--redact-body <patterns>— шаблоны regex через запятую для редактирования из тел запроса/ответа.--allow-headers <names>— имена заголовков через запятую, исключаемые из редактирования (например,set-cookie).--allow-cookies <names>— имена cookie через запятую, оставляемых без редактирования внутриCookie/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,localeПрограммно
Заголовок раздела «Программно»При создании ProxyServer напрямую:
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) также экспортируется, если вы хотите самостоятельно редактировать существующие записи.