Sobre o projeto

Redacted é uma biblioteca Scala e plugin de compilador projetado para evitar o vazamento inadvertido de campos sensíveis (como credenciais, dados pessoais e outras informações confidenciais) definidos dentro de `case classes`. Ele funciona reescrevendo o método `toString` padrão em tempo de compilação, substituindo campos anotados por um placeholder (por exemplo, `***`), sem afetar o acesso direto aos campos. **Principais Recursos:** - **Baseado em anotações**: basta anotar campos sensíveis com `@redacted` para excluí-los da saída de `toString`. - **Transformação em tempo de compilação**: o plugin do compilador reescreve `toString` durante a compilação, garantindo nenhum overhead em tempo de execução e nenhuma dependência do plugin no binário final. - **Multiplataforma**: suporta JVM, Scala.js e Scala Native. - **Integração fácil**: fornece um plugin sbt (`sbt-redacted`) para configuração perfeita. **Exemplo de Uso:** ```scala import io.github.polentino.redacted.redacted case class HttpHeaders(userId: UUID, @redacted apiKey: String, languages: Seq[Locale], correlationId: String) case class User(id: UUID, nickname: String, @redacted email: String) ``` Após a configuração, imprimir o objeto ou chamar `toString` exibirá `***` para os campos anotados, enquanto o acesso direto (por exemplo, `headers.apiKey`) ainda retorna o valor real. **Versões do Scala Suportadas:** - Scala 3 (3.1.3 a 3.9.0, incluindo versões LTS) - Scala 2.13 e 2.12 **Plataformas:** - JVM - Scala.js (1.x) - Scala Native (0.5) **Como Funciona:** O plugin do compilador inspeciona cada definição de tipo, verifica se é uma `case class` com pelo menos um campo anotado com `@redacted` e, em seguida, reescreve a implementação padrão de `toString` para exibir seletivamente `***` para esses campos. **Requisitos:** - Java 17+ (todos os componentes são compilados no Java 17) **Recursos Adicionais:** - Site do projeto: https://polentino.github.io/redacted/ - Repositório do plugin sbt: https://github.com/polentino/sbt-redacted **Adotantes:** - InvestSuite (B2B, Scalable & AI-Driven WealthTech) Redacted é ideal para desenvolvedores que trabalham com Scala e precisam garantir que dados sensíveis não sejam expostos acidentalmente em logs ou saída de console, particularmente em aplicações que lidam com credenciais de usuário, chaves de API ou dados relacionados a PII/GDPR.