Skip to content

v1.0.0-rc3

Pre-release
Pre-release

Choose a tag to compare

@gavlyukovskiy gavlyukovskiy released this 28 Mar 07:40
· 159 commits to master since this release
5bad296

What's Changed

This release introduces the ValueMasker interface, allowing users to configure virtually any custom value masking strategy for specific target keys or JSON types.

var jsonMasker = JsonMasker.getMasker(
        JsonMaskingConfig.builder()
                .maskKeys(Set.of("maskMe"))
                .maskStringsWith(ValueMaskers.withRawValueFunction(value -> value.startsWith("\"secret:") ? "\"***\"" : value))
                .build()
);

String maskedJson = jsonMasker.mask(json);

see more usage examples in README

We expect this to be the last Release Candidate before the 1.0.0 release.

Bug fixes

  • Fix cases when JsonMasker can get in infinite loop when processing invalid json by @gavlyukovskiy in #97

Functional changes

  • Introduce ValueMasker and refactor all value masking through a unified interface by @gavlyukovskiy in #96
  • Change runtime exception to InvalidJsonException by @Breus in #99
  • Refactor withTextFunction to indicate that the value received is a raw JSON literal by @gavlyukovskiy in #103

Chores

  • Fix wildcard usage in jsonpath usage examples by @donavdey in #93
  • Create ADR for jsonpath support by @donavdey in #95
  • Make LICENSE file markdown by @Breus in #102
  • Create SECURITY.md by @Breus in #100
  • Create CONTRIBUTING.md by @Breus in #101
  • Create ADR-0004 to support custom value masking strategies by @Breus in #89

Full Changelog: v1.0.0-rc2...v1.0.0-rc3