Fides Documentation – Ethyca

Privacy Request Redaction Patterns API

The Privacy Request Redaction Patterns API allows you to manage global regex patterns that automatically mask sensitive dataset, collection, and field names in DSR (Data Subject Request) package reports.

🔒

This API is part of the Privacy Request management system and requires appropriate OAuth scopes to access.

Prerequisites

Endpoints

Get Current Patterns

Retrieves all currently configured redaction patterns.

Request:

GET /api/v1/privacy-request-redaction-patterns
Authorization: Bearer {token}
Content-Type: application/json

Response:

{
  "patterns": [
    "sensitive_.*",
    ".*_private",
    "^email$",
    "customer.*",
    ".*user.*"
  ]
}

Response Codes:

Update Patterns

Updates the global redaction patterns. This replaces all existing patterns with the new set.

Request:

PUT /api/v1/privacy-request-redaction-patterns
Authorization: Bearer {token}
Content-Type: application/json

{
  "patterns": [
    "sensitive_.*",
    ".*_private",
    "^email$",
    "customer.*",
    ".*user.*"
  ]
}

Request Body:

Response:

{
  "patterns": [
    "sensitive_.*",
    ".*_private",
    "^email$",
    "customer.*",
    ".*user.*"
  ]
}

Response Codes:

Pattern Validation

All regex patterns are validated for correct syntax before being saved. Invalid patterns will result in a 400 Bad Request response with details about the validation error.

Supported Regex Features

Example Valid Patterns

{
  "patterns": [
    "^email$",           // Exact match for "email"  
    "sensitive_.*",      // Anything starting with "sensitive_"  
    ".*_private",        // Anything ending with "_private"  
    "customer.*",        // Anything starting with "customer"  
    ".*user.*",          // Anything containing "user"  
    "^(email|phone)$",   // Either "email" or "phone"  
    ".*@[.*]",             // Anything containing "@"  
    "data_[0-9]+"        // "data_" followed by one or more digits  
  ]
}

Error Handling

Common Error Responses

Invalid Regex Pattern:

{
  "detail": [
    {
      "loc": ["body", "patterns", 0],
      "msg": "Invalid regex pattern: [invalid",
      "type": "value_error"
    }
  ]
}

Too Many Patterns:

{
  "detail": "Maximum 100 patterns allowed"
}

Pattern Too Long:

{
  "detail": [
    {
      "loc": ["body", "patterns", 0],
      "msg": "Pattern exceeds maximum length of 500 characters",
      "type": "value_error"
    }
  ]
}

Usage Examples

Python Example

import requests  
import json

# Configuration  
base_url = "https://your-fides-instance.com"  
token = "your-oauth-token"

headers = {  
    "Authorization": f"Bearer {token}",  
    "Content-Type": "application/json"  
}

# Get current patterns  
response = requests.get(  
    f"{base_url}/api/v1/privacy-request-redaction-patterns",  
    headers=headers  
)

if response.status_code == 200:  
    patterns = response.json()["patterns"]  
    print(f"Current patterns: {patterns}")  
else:  
    print(f"Error: {response.status_code} - {response.text}")

# Update patterns  
new_patterns = [  
    "sensitive_.*",  
    ".*_private",  
    "^email$",  
    "customer.*"  
]

response = requests.put(  
    f"{base_url}/api/v1/privacy-request-redaction-patterns",  
    headers=headers,  
    json={"patterns": new_patterns}  
)

if response.status_code == 200:  
    print("Patterns updated successfully")  
else:  
    print(f"Error: {response.status_code} - {response.text}")  

cURL Example

# Get current patterns  
curl -X GET \  
  "https://your-fides-instance.com/api/v1/privacy-request-redaction-patterns" \  
  -H "Authorization: Bearer your-oauth-token" \  
  -H "Content-Type: application/json"

# Update patterns  
curl -X PUT \  
  "https://your-fides-instance.com/api/v1/privacy-request-redaction-patterns" \  
  -H "Authorization: Bearer your-oauth-token" \  
  -H "Content-Type: application/json" \  
  -d '{\  
    "patterns": [\  
      "sensitive_.*",\  
      ".*_private",\  
      "^email$",\  
      "customer.*"\  
    ]\  
  }'\  

Integration with Entity-Specific Redaction

Global regex patterns work in conjunction with entity-specific redaction configurations in dataset YAML files. The precedence order is:

  1. Entity-specific redaction (highest priority)
  2. Global regex patterns (applied when no entity-specific configuration exists)

This allows for flexible redaction strategies where you can have global patterns for common cases and specific overrides for particular datasets, collections, or fields.