redact method
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;
}