defaultSensitiveKeyPatterns top-level property
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),
];