Extract dashboard redaction helpers
Centralize dashboard secret redaction helpers and add focused regression tests.
This commit is contained in:
17
apps/dashboard/src/redaction.ts
Normal file
17
apps/dashboard/src/redaction.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
export const SECRET_ASSIGNMENT_RE =
|
||||
/\b([A-Z0-9_]*(?:TOKEN|SECRET|PASSWORD|API_KEY|AUTH|PRIVATE_KEY)[A-Z0-9_]*)\s*=\s*([^\s"'`]+)/gi;
|
||||
|
||||
export const SECRET_VALUE_RE =
|
||||
/\b(?:sk-[A-Za-z0-9_-]{12,}|gh[pousr]_[A-Za-z0-9_]{12,}|xox[baprs]-[A-Za-z0-9-]{12,}|eyJ[A-Za-z0-9_-]{20,}\.[A-Za-z0-9_-]{20,}\.[A-Za-z0-9_-]{10,})\b/g;
|
||||
|
||||
export function redactSecretsForMarkdown(value: string): string {
|
||||
return value
|
||||
.replace(SECRET_ASSIGNMENT_RE, (_m, key) => `${key}=***`)
|
||||
.replace(SECRET_VALUE_RE, '***');
|
||||
}
|
||||
|
||||
export function redactSecretsForPreview(value: string): string {
|
||||
return value
|
||||
.replace(SECRET_ASSIGNMENT_RE, '$1=<redacted>')
|
||||
.replace(SECRET_VALUE_RE, '<redacted-token>');
|
||||
}
|
||||
Reference in New Issue
Block a user