Module: Tracekit::Security::Patterns
- Defined in:
- lib/tracekit/security/patterns.rb
Overview
Regex patterns for detecting sensitive data in snapshots. 13 standard patterns with typed [REDACTED:type] markers.
Constant Summary collapse
- EMAIL =
PII Patterns
/\b[A-Za-z0-9._%+\-]+@[A-Za-z0-9.\-]+\.[A-Za-z]{2,}\b/- SSN =
/\b\d{3}-\d{2}-\d{4}\b/- CREDIT_CARD =
/\b\d{4}[- ]?\d{4}[- ]?\d{4}[- ]?\d{4}\b/- PHONE =
/\b\d{3}[-.]?\d{3}[-.]?\d{4}\b/- API_KEY =
Credential Patterns
/(?:api[_\-]?key|apikey)\s*[:=]\s*['"]?[A-Za-z0-9_\-]{20,}/i- AWS_KEY =
/AKIA[0-9A-Z]{16}/- AWS_SECRET =
/aws.{0,20}secret.{0,20}[A-Za-z0-9\/+=]{40}/i- OAUTH_TOKEN =
/(?:bearer\s+)[A-Za-z0-9._~+\/=\-]{20,}/i- STRIPE_KEY =
/sk_live_[0-9a-zA-Z]{10,}/- PASSWORD =
/(?:password|passwd|pwd)\s*[=:]\s*['"]?[^\s'"]{6,}/i- JWT =
/eyJ[a-zA-Z0-9_\-]+\.eyJ[a-zA-Z0-9_\-]+\.[a-zA-Z0-9_\-]+/- PRIVATE_KEY =
/-----BEGIN (?:RSA |EC )?PRIVATE KEY-----/- SENSITIVE_NAME =
Letter-boundary pattern – b treats _ as word char, so api_key/user_token won’t match
/(?:^|[^a-zA-Z])(?:password|passwd|pwd|secret|token|key|credential|api_key|apikey)(?:[^a-zA-Z]|$)/i- PATTERN_MARKERS =
Mapping of pattern -> typed redaction marker
{ EMAIL => "[REDACTED:email]", SSN => "[REDACTED:ssn]", CREDIT_CARD => "[REDACTED:credit_card]", PHONE => "[REDACTED:phone]", AWS_KEY => "[REDACTED:aws_key]", AWS_SECRET => "[REDACTED:aws_secret]", OAUTH_TOKEN => "[REDACTED:oauth_token]", STRIPE_KEY => "[REDACTED:stripe_key]", PASSWORD => "[REDACTED:password]", JWT => "[REDACTED:jwt]", PRIVATE_KEY => "[REDACTED:private_key]", API_KEY => "[REDACTED:api_key]" }.freeze