Skip to content

Releases: gestalt-config/gestalt

fix: MapDecoder doesn't handle nullable ConfigNode inside the canDecode method

04 Mar 01:23
Compare
Choose a tag to compare

v0.35.3 Fix: unclosed substitution transform no longer fail call

02 Mar 05:12
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.35.2...v0.35.3

v0.35.2 Dependencies Updates

03 Feb 05:14
Compare
Choose a tag to compare

kotlin = "2.1.10"
kodeinDI = "7.25.0"
koinDI = "4.0.2"
awsBom = "2.30.11"
gcpLibraries = "26.53.0"
azure = "1.2.31"
micrometer = "1.14.3"
Update to Gradle 8.12.1
Add Gradle Retry

Full Changelog: v0.35.1...v0.35.2

v0.35.1 Fix Module issues with RunTimeConfigNodeProcessor.

28 Nov 06:07
Compare
Choose a tag to compare

fix: module issues with RunTimeConfigNodeProcessor.
Updates tests to use latest Gestalt
Update benchmark results with new regression fixes.

Full Changelog: v0.35.0...v0.35.1

v0.35.0 Fix performance regression with cache and Kotlin 2.1.0

28 Nov 03:14
Compare
Choose a tag to compare

perf: fix performance regression with cache since we added getConfigResult, as we were caching the GResultOf. This was causing extra calls to get the result after getting data from the cache. We now have a separate cache for the normal flow and one for GResultOf.

dep: update to Kotlin 2.1.0
Update several other dependencies.
Full Changelog: v0.34.0...v0.35.0

v0.34.0 Runtime evaluation of string substitution and A/B Testing.

17 Nov 16:02
Compare
Choose a tag to compare

What's Changed

  • feat: Differentiate between immediate evaluation at load time and deferred evaluation when getting the configuration. #226 by @credmond-git in #227
  • feat: A/B Testing: Use a comma-separated list, where each element is a colon-separated pair of a threshold and its corresponding value. If an element has no threshold, it is treated as the default. For example, the format "10:red,30:green,blue" defines ranges and outcomes for random distributions: numbers from 1 to 10 correspond to red, 11 to 30 correspond to green, and all numbers above 30 default to blue. #219

Full Changelog: v0.33.1...v0.34.0

v0.33.1 Publish to https://central.sonatype.com

11 Nov 06:59
Compare
Choose a tag to compare

v0.33.0 Annotations

31 Oct 17:59
Compare
Choose a tag to compare

What's Changed

Certain annotations can be applied to a configuration using @{annotation}, this will covert the annotation to metadata that can be applied to the node. Then the metadata is used to apply the intended behaviour to the node.

For example, we can apply the temporary node feature on a node by using the annotation @{temp:1}

my.password=abcdef@{temp:1}
annotation parameter description
temp (int) Number of times this temp node can be read restrict the number of times a value can be read before it is released
encrypt (boolean) if we should apply to this node Encrypts the node in memory.
nocache (boolean) if we should apply to this node Will not cache the node. If a node is part of a object the whole object will not be cached.
secret (boolean) if we should apply to this node Treats the node as a secret, so it will not print it out in errors or the debug print.

Trim Whitespace

By default, white spaces before and after the annotation are trimmed. You can disable this feature using the gestalt builder and setting setAnnotationTrimWhiteSpace(false)

GestaltBuilder builder = new GestaltBuilder();
Gestalt gestalt = builder
  .addSource(MapConfigSourceBuilder.builder()
    .setCustomConfig(configs)
    .build())
  .setAnnotationTrimWhiteSpace(false)
  .build();

Full Changelog: v0.32.2...v0.33.0

v0.32.2

26 Sep 16:06
Compare
Choose a tag to compare

What's Changed

  • Feat/207 node include source factories by @credmond-git in #214
    • Add additional node include sources:
      • URL Config Source
      • Env Vars
      • Kubernetes
      • System
      • S3 (AWS)
      • Blob (Azure)
      • git
      • Google Cloud Storage
  • test: additional git tests. by @credmond-git in #217

Full Changelog: v0.32.1...v0.32.2

v0.32.1 CDI Default Support

07 Sep 05:18
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.32.0...v0.32.1