redaction.mojo (555B)
1 comptime MAX_REDACTED_CHARS = 512 2 3 4 def redact_diagnostic(value: String) -> String: 5 var replaced = String(value).replace("\n", "\\n") 6 replaced = replaced.replace("\r", "\\r") 7 if replaced.byte_length() > MAX_REDACTED_CHARS: 8 return String(replaced[byte=0:MAX_REDACTED_CHARS]) + "..." 9 return replaced^ 10 11 12 def contains_credential_marker(value: String) -> Bool: 13 var lowered = value.lower() 14 return ( 15 lowered.find("apikey_") >= 0 16 or lowered.find("bearer ") >= 0 17 or lowered.find("authorization:") >= 0 18 )