Fail-Safe PII Redaction in Elixir

Filter by Value, Not by Path In this post, I use the example of a parcel-shipping gateway integrating with multiple carriers. This example is purely hypothetical and chosen to clearly illustrate the technical idea. Integrating with N shipping carriers often means dealing with N different JSON (if you’re lucky!) responses. Each carrier’s responses can sprinkle customer PII into your logs—until your CISO sees it. Most teams try to predict where the PII will be: "recipient.email" for Carrier A "ship_to.contact.email" for Carrier B "error.stacktrace[0].ctx.email" when Carrier C blows up

Apr 26, 2025 - 13:13
 0
Fail-Safe PII Redaction in Elixir

Filter by Value, Not by Path

In this post, I use the example of a parcel-shipping gateway integrating with multiple carriers.
This example is purely hypothetical and chosen to clearly illustrate the technical idea.

Integrating with N shipping carriers often means dealing with N different JSON (if you’re lucky!) responses.

Each carrier’s responses can sprinkle customer PII into your logs—until your CISO sees it.

Most teams try to predict where the PII will be:

  • "recipient.email" for Carrier A
  • "ship_to.contact.email" for Carrier B
  • "error.stacktrace[0].ctx.email" when Carrier C blows up