sanitizeDataForLogging static method

Map<String, dynamic> sanitizeDataForLogging(
  1. Map<String, dynamic> data
)

Sanitiza dados sensíveis para logging

data Dados a serem sanitizados Returns os dados sanitizados

Implementation

static Map<String, dynamic> sanitizeDataForLogging(
    Map<String, dynamic> data) {
  final sanitized = Map<String, dynamic>.from(data);

  // Lista de campos sensíveis que devem ser mascarados
  const sensitiveFields = [
    'password',
    'token',
    'secret',
    'key',
    'authorization',
    'credential',
    'auth',
  ];

  void sanitizeRecursive(Map<String, dynamic> map) {
    map.forEach((key, value) {
      final lowerKey = key.toLowerCase();

      if (sensitiveFields.any((field) => lowerKey.contains(field))) {
        map[key] = '***MASKED***';
      } else if (value is Map<String, dynamic>) {
        sanitizeRecursive(value);
      } else if (value is List) {
        for (int i = 0; i < value.length; i++) {
          if (value[i] is Map<String, dynamic>) {
            sanitizeRecursive(value[i]);
          }
        }
      }
    });
  }

  sanitizeRecursive(sanitized);
  return sanitized;
}