DLP & Privacy
Detect and protect sensitive data in requests and responses.
Request DLP
Block requests containing sensitive patterns:
{
"type": "dlp",
"config": {
"action": "block",
"patterns": {
"ssn": "\\d{3}-\\d{2}-\\d{4}",
"credit_card": "\\d{4}[- ]?\\d{4}[- ]?\\d{4}[- ]?\\d{4}",
"api_key": "sk-[a-zA-Z0-9]{32,}"
}
}
}Redact instead of block
Replace sensitive data with placeholders:
{
"type": "dlp",
"config": {
"action": "redact",
"patterns": {
"email": "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}",
"phone": "\\+?[1-9]\\d{1,14}"
},
"replacement": "[REDACTED]"
}
}Response DLP
Scrub sensitive data from responses before they reach the agent:
{
"type": "response_dlp",
"config": {
"action": "redact",
"patterns": {
"password": "password['"]?\\s*[:=]\\s*['"]?[^'"\\s]+",
"token": "token['"]?\\s*[:=]\\s*['"]?[^'"\\s]+"
}
}
}Field redaction
Remove specific fields from audit logs:
{
"type": "field_redaction",
"config": {
"fields": ["password", "secret", "token", "api_key", "credentials"]
}
}These fields are replaced with [REDACTED] in audit records.
Streaming DLP
For SSE responses, DLP is applied incrementally to each event. This ensures sensitive data is scrubbed even in long-running streams.
Built-in patterns
Use predefined patterns for common sensitive data:
{
"type": "dlp",
"config": {
"action": "block",
"builtin_patterns": [
"ssn",
"credit_card",
"aws_key",
"github_token",
"private_key"
]
}
}Example: HIPAA compliance
{
"name": "HIPAA DLP",
"type": "dlp",
"config": {
"action": "block",
"patterns": {
"ssn": "\\d{3}-\\d{2}-\\d{4}",
"mrn": "MRN[:\\s]?\\d{6,}",
"dob": "DOB[:\\s]?\\d{1,2}/\\d{1,2}/\\d{2,4}"
}
}
}Example: Prevent secret leaks
{
"name": "No secrets",
"type": "response_dlp",
"config": {
"action": "redact",
"patterns": {
"env_var": "[A-Z_]+=(sk|api|secret|password|token)[^\\s]*",
"bearer": "Bearer [a-zA-Z0-9\\-._~+/]+=*"
}
}
}