Sensitive data
HARP records the traffic it proxies. For routes that carry personal data, you decide what it never stores, per route, without changing application code. HARP does not anonymize payloads: it keeps them out of its storage.
What HARP does today
With the rules engine, you mark the transactions that carry personally identifiable information (PII) so their headers or bodies are not stored. This keeps personal data out of HARP's storage and dashboard, without changing application code.
[rules."*"."GET /users/*"]
on_request = """
transaction.markers.add("skip-response-body-storage")
transaction.markers.add("skip-request-headers-storage")
"""The transaction is still recorded, without its request headers or its response body. Markers can also skip a whole
message or a whole transaction. Storage records the request before on_remote_request runs, so removing a header
there would not keep it out of the record, and the remote API would lose it. Use the markers for the record.
What it does not do yet
Rules cannot read a response body: it is streamed to the client, not loaded in memory. So HARP does not mask or replace individual fields inside a JSON payload. A rule can only replace the whole response.
Laws and regulations
Privacy rules vary by territory. Examples include the General Data Protection Regulation (GDPR) in the European Union, the California Consumer Privacy Act (CCPA) in the United States, and Brazil's LGPD, along with similar data-protection laws in many other jurisdictions.
Choosing what HARP stores, per endpoint and per route, gives you one place to apply data minimization to the traffic your applications send to the APIs they consume.