module

Autobot::LogSanitizer

Constants

ANTHROPIC_KEY = /sk-ant-[A-Za-z0-9_-]+/
API_KEY_HEADER = /x-api-key:\s*([^\s]+)/i
AUTH_HEADER = /Authorization:\s*([^\s]+)/i
AWS_KEY = /AKIA[A-Z0-9]{16}/
BEARER_TOKEN = /Bearer\s+[A-Za-z0-9_\-\.]+/i
CREDENTIAL_PATTERNS = [{pattern: URL_KEY_PARAMS, replacement: "\\1\\2=[REDACTED]"}, {pattern: BEARER_TOKEN, replacement: "Bearer [REDACTED]"}, {pattern: ANTHROPIC_KEY, replacement: "sk-ant-[REDACTED]"}, {pattern: OPENAI_KEY, replacement: "sk-[REDACTED]"}, {pattern: AWS_KEY, replacement: "AKIA[REDACTED]"}, {pattern: TOKEN_VALUE, replacement: "token=[REDACTED]"}, {pattern: PASSWORD_VALUE, replacement: "password=[REDACTED]"}, {pattern: SECRET_ASSIGNMENT, replacement: "\\1=[REDACTED]"}, {pattern: AUTH_HEADER, replacement: "Authorization: [REDACTED]"}, {pattern: API_KEY_HEADER, replacement: "x-api-key: [REDACTED]"}]
GENERIC_KEY = /\b[A-Za-z0-9]+[-_]?[A-Za-z0-9]{20,}\b/
OPENAI_KEY = /sk-[A-Za-z0-9]{16,}/
PASSWORD_VALUE = /password[=:]\s*['"]*([^&\s'"]+)['"]*\b/i
PATTERNS = CREDENTIAL_PATTERNS + [{pattern: GENERIC_KEY, replacement: "[REDACTED_KEY]"}]
SECRET_ASSIGNMENT = /\b(\w*(?:api[_-]?key|secret|passwd))\s*[=:]\s*['"]*([^&\s'"]+)['"]*/i
SENSITIVE_URL_PARAMS = {"api_key", "apikey", "key", "token", "secret", "password"}
TOKEN_VALUE = /token[=:]\s*['"]*([^&\s'"]+)['"]*/i
URL_KEY_PARAMS = /([?&])(api_key|apikey|key|token)=([^&\s]+)/i

Class methods

contains_sensitive_data?(text : String) : Bool
Source
redact_credentials(text : String) : String
Source
sanitize(message : String) : String
Source
sanitize_url(url : String) : String
Source