redact method

  1. @override
String redact(
  1. String input,
  2. Map<String, String> environment
)
override

Performs write-time redaction on input.

Implementation

@override
String redact(String input, Map<String, String> environment) {
  var result = input;
  // Extract secret environment variable values, filter out empty/short values,
  // and sort descending by length to avoid partial/sub-string replacement issues.
  final entries =
      environment.entries
          .where(
            (e) =>
                _isSecretEnvVarName(e.key) &&
                e.value.isNotEmpty &&
                e.value.length >= 3,
          )
          .toList()
        ..sort((a, b) => b.value.length.compareTo(a.value.length));

  for (final entry in entries) {
    result = result.replaceAll(entry.value, marker);
  }
  return result;
}