Skip to content

Releases: configcat/go-sdk

v9.1.0

22 Oct 15:51
e75bfe2

Choose a tag to compare

Added

  • A new Refresh function, which allows control of the whole operation by passing the given Context all the way down the execution tree.

Changed

  • Increased Go version to v1.23
  • Fixed a case where fetch errors were not logged. Upon a failed fetch, when there was a valid config JSON in the cache, the fetch error was not logged.
  • Restricted the newly downloaded config JSON processing to only 200 OK HTTP response status codes and valid response payloads. This way, the SDK won't overwrite the cache if it receives a syntactically valid but actually invalid config JSON payload, such as {}, null, or an empty string.

v9.0.7

08 Aug 09:03
ad7f93e

Choose a tag to compare

  • Updated dependencies due to 2024-08 security check.

v9.0.6

11 Apr 17:06

Choose a tag to compare

Fixed

  • Generate variation IDs for percentage options in the configcattest package,

v9.0.5

11 Apr 16:12

Choose a tag to compare

Fixed

  • There were cases when a user-based evaluation reported errors even when no user object was passed. This prevented the usage of the flag's To unidentified users value in case of invalid config JSONs.

v9.0.4

11 Apr 13:18
6467281

Choose a tag to compare

Added

  • More evaluation tests to ensure consistent functioning with other SDKs.
  • Ability to set a PercentageOption collection on the Flag struct of the configcattest package.
  • Uploading the coverage report to SonarCloud.

v9.0.3

30 Dec 11:59

Choose a tag to compare

  • Only increased the version to fixup the latest commit hash on pkg.go.dev

v9.0.2

30 Dec 03:04

Choose a tag to compare

Fixed

  • Reported SDK version.

v9.0.1

21 Dec 14:02

Choose a tag to compare

Fixed

  • Cache key generation.

v9.0.0

20 Dec 22:13

Choose a tag to compare

Added

  • Support for the new Config JSON v6 format: update the config model and implement new features in setting evaluation logic.
  • Consistent evaluation-related logging across SDKs.

Changed

  • The config JSON v5 format is no longer accepted by flag overrides. If you use this feature, you must convert your override JSON file(s) to the v6 format. You can do this using the config-json convert v5-to-v6 command of the ConfigCat CLI tool.
  • Rename the MatchedEvaluationRule field to MatchedTargetingRule and the MatchedEvaluationPercentageRule field to MatchedPercentageOption in EvaluationDetailsData.
  • User object related changes:
    • Signature of UserAttributes interface: GetAttribute(attr string) string -> GetAttribute(attr string) interface{}
    • Type of Custom field of UserData: map[string]string -> map[string]interface{}
    • Support for using map[string]interface{} as the User in evaluation functions was added.
  • Signature of the Logger interface:
    • Before:
      type Logger interface {
          GetLevel() LogLevel
      
          Debugf(format string, args ...interface{})
          Infof(format string, args ...interface{})
          Warnf(format string, args ...interface{})
          Errorf(format string, args ...interface{})
      }
    • After:
      type Logger interface {
          Debugf(format string, args ...interface{})
          Infof(format string, args ...interface{})
          Warnf(format string, args ...interface{})
          Errorf(format string, args ...interface{})
      }
    • Option to define the LogLevel is moved to the Client initialization config:
      config := configcat.Config{
           LogLevel: LogLevelInfo,
           // PollingMode: configcat.AutoPoll,
           // etc.
      }
    • The constant values related to the LogLevel type alias were changed:
       LogLevelDebug LogLevel = -2
       LogLevelInfo  LogLevel = -1
       LogLevelWarn  LogLevel = 0 // default level
       LogLevelError LogLevel = 1
       LogLevelNone  LogLevel = 2

Removed

  • Dependency on logrus. It was replaced by a simple logger built upon the log package.

v8.0.1

10 Aug 10:54
fa5f870

Choose a tag to compare

  • Increased version of gopkg.in/yaml.v3 to v3.0.1 due to vulnerability report.