Skip to content

Release v3.5.0

Choose a tag to compare

@github-actions github-actions released this 23 Sep 16:18
22463d7

Added

  • encrypted/1,2,3 macro (Chronicle.Confidentiality) for values that need encryption at rest without being personal data subject to GDPR right-to-erasure — an API key, a webhook signing secret, a partner credential (Cratis/Chronicle#4095)
  • Chronicle.Concept gets its own concept-level encrypted/0,1 macro, mirroring how pii/0,1 is the concept-level counterpart to Chronicle.Compliance.pii/1,2
  • EncryptionScope (:subject default, :namespace, :global) — the identity an encrypted value's key is provisioned under. A subject-scoped key is always disjoint from any pii key for the same subject; a namespace-scoped key is shared by every value marked that way in one event store namespace; a global-scoped key is shared across the whole installation
  • pii and encrypted cannot both apply to the same value — rejected at schema-generation time with Chronicle.Confidentiality.PiiAndEncryptedCombinedNotSupported, because the two would otherwise encrypt the value twice under two different keys and be unable to release it correctly
  • encrypted/0,1 cannot be declared on a Chronicle.Concept created with event_source_id: true, rejected at compile time, mirroring the existing restriction on pii/0,1

Changed

  • cratis_chronicle_contracts bumped from 19.3.2 to 19.4.0

Fixed

  • Chronicle.Connections.AppendCompatibility's announced protocol version was still pinned to 19.0.1 while mix.lock had already moved to 19.3.2