32 lines
969 B
PHP
32 lines
969 B
PHP
<?php
|
|
|
|
namespace App\Support\OpsUx;
|
|
|
|
final class RunFailureSanitizer
|
|
{
|
|
public static function sanitizeCode(string $code): string
|
|
{
|
|
$code = strtolower(trim($code));
|
|
|
|
if ($code === '') {
|
|
return 'unknown';
|
|
}
|
|
|
|
return substr($code, 0, 80);
|
|
}
|
|
|
|
public static function sanitizeMessage(string $message): string
|
|
{
|
|
$message = trim(str_replace(["\r", "\n"], ' ', $message));
|
|
|
|
// Redact obvious bearer tokens / secrets.
|
|
$message = preg_replace('/\bBearer\s+[A-Za-z0-9\-\._~\+\/]+=*\b/i', 'Bearer [REDACTED]', $message) ?? $message;
|
|
$message = preg_replace('/\b(access_token|refresh_token|client_secret|password)\s*[:=]\s*[^\s]+/i', '$1=[REDACTED]', $message) ?? $message;
|
|
|
|
// Redact long opaque blobs that look token-like.
|
|
$message = preg_replace('/\b[A-Za-z0-9\-\._~\+\/]{64,}\b/', '[REDACTED]', $message) ?? $message;
|
|
|
|
return substr($message, 0, 120);
|
|
}
|
|
}
|