defaultSensitiveKeyPatterns top-level property

List<RegExp> defaultSensitiveKeyPatterns
final

Regex patterns that match sensitive key name fragments.

Used alongside defaultSensitiveKeys for fuzzy matching - the Set provides O(1) exact matches while these patterns catch variations like user_token_v2 or auth-token-key.

Implementation

final List<RegExp> defaultSensitiveKeyPatterns = <RegExp>[
  // Authentication patterns
  RegExp(r'(?:^|[_\-])token(?:$|[_\-])', caseSensitive: false),
  RegExp(r'(?:^|[_\-])secret(?:$|[_\-])', caseSensitive: false),
  RegExp(
    r'(?:^|[_\-])(?:pass(?:word)?|passwd|pwd)(?:$|[_\-])',
    caseSensitive: false,
  ),
  RegExp(
    r'(?:^|[_\-])(?:signing|encryption|master)[_\-]?key(?:$|[_\-])',
    caseSensitive: false,
  ),

  // Personal identification patterns
  RegExp(r'(?:^|[_\-])ssn(?:$|[_\-])', caseSensitive: false),
  RegExp(r'(?:^|[_\-])social[_\-]?security(?:$|[_\-])', caseSensitive: false),
  RegExp(r'(?:^|[_\-])passport(?:$|[_\-])', caseSensitive: false),
  RegExp(r'(?:^|[_\-])drivers?[_\-]?license(?:$|[_\-])', caseSensitive: false),
  RegExp(r'(?:^|[_\-])national[_\-]?id(?:$|[_\-])', caseSensitive: false),

  // Financial patterns
  RegExp(r'(?:^|[_\-])credit[_\-]?card(?:$|[_\-])', caseSensitive: false),
  RegExp(r'(?:^|[_\-])card[_\-]?num(?:ber)?(?:$|[_\-])', caseSensitive: false),
  RegExp(r'(?:^|[_\-])cvv[0-9]?(?:$|[_\-])', caseSensitive: false),
  RegExp(r'(?:^|[_\-])cvc(?:$|[_\-])', caseSensitive: false),
  RegExp(r'(?:^|[_\-])bank[_\-]?account(?:$|[_\-])', caseSensitive: false),
  RegExp(
    r'(?:^|[_\-])routing[_\-]?num(?:ber)?(?:$|[_\-])',
    caseSensitive: false,
  ),
  RegExp(
    r'(?:^|[_\-])account[_\-]?num(?:ber)?(?:$|[_\-])',
    caseSensitive: false,
  ),
  RegExp(r'(?:^|[_\-])iban(?:$|[_\-])', caseSensitive: false),
  RegExp(r'(?:^|[_\-])swift(?:$|[_\-])', caseSensitive: false),

  // MFA / OTP / session / device token patterns
  RegExp(
    r'(?:^|[_\-])(?:e[-_]?mail|otp|device[-_]?token|push[-_]?token|session[-_]?(?:id|token)|csrf[-_]?token|mfa[-_]?code)',
    caseSensitive: false,
  ),

  // Cryptocurrency patterns
  RegExp(r'(?:^|[_\-])wallet(?:$|[_\-])', caseSensitive: false),

  // Contact information patterns
  RegExp(r'(?:^|[_\-])phone(?:$|[_\-])', caseSensitive: false),
  RegExp(r'(?:^|[_\-])mobile[_\-](?:num|phone)', caseSensitive: false),
  RegExp(r'(?:^|[_\-])cell[_\-]?(?:phone|num)', caseSensitive: false),
];