Redact_ex - utilities to redact sensitive data in Elixir projects

Hi everyone!
I just wanted to announce that, backed up by my company, I could release redact_ex :partying_face:

The aim of this library is, in the scope of privacy and diligence compliance, to give some common tools to projects to manage sensitive data that should not be logged to external services (e.g. observability tools), and to suggest some best practices to achieve it. In particular it gives:

  • a generator macro to redact strings with helpers for fast redacting non-utf values with known lengths (or, well, utf too but only if you consider the full range of possible byte lengths :slight_smile: )
  • a common behaviour for extending redactor algorithms
  • a protocol to implement for your structs to be compliant with redacting rules
  • a derivation macro to shrink the boilerplate of implementing the redacting protocol
  • a set of “common sense” rules that we are adopting (and evolving) to minimize all those chores that are not easily automatable (yeah, we can’t protect from"my plain CC number") :smiley:

Full documentation is available on hexdocs :slight_smile:

There are still some edge cases (mostly fallback functions and catchers for unexpected values that must now be managed somehow manually in some cases) and a lot room for improvement, both in code and ideas.

Every feedback and contribution from the community is well welcome!
Thanks :pray: