Skip to content

Releases: configcat/cpp-sdk

v4.0.3

09 Jul 09:56
e6aabaa
Compare
Choose a tag to compare
  • Fix external sha define (CONFIGCAT_EXTERNAL_SHA_ENABLED)
  • Remove hash-library sha1 calculation from configservice.cpp

v4.0.2

05 Jul 15:11
9b55029
Compare
Choose a tag to compare
  • CONFIGCAT_USE_EXTERNAL_SHA cmake compile flag to be able to use custom sha1, sha256 implementation.

v4.0.1

08 May 08:52
d4056a0
Compare
Choose a tag to compare

Fixed

  • Initial config JSON load when auto poll enabled with results from cache.

v4.0.0

04 Apr 09:17
ac7f452
Compare
Choose a tag to compare

Added

  • Support for the new Config JSON v6 format: updated the config model and implemented new features in setting evaluation logic.
  • Overhaul setting evaluation-related logging and make it consistent across SDKs.
  • Improve consistency of config JSON deserialization error reporting.
  • Performance improvements to setting evaluation (building of evaluation log is expensive, so it is skipped when info level logging is turned off).

Breaking changes

  • ConfigCatClient.get returns std::shared_ptr<ConfigCatClient> instead of raw pointer.
  • getValue functions expect const std::shared_ptr<ConfigCatUser>& as user param instead of const raw pointer.
  • The generic getValue function returns std::optional<Value> instead of std::shared_ptr<Value>. In case of any failure, std::nullopt will be returned.
  • getKeyAndValue function returns std::optional<KeyValue> instead of std::shared_ptr<KeyValue>.
  • Hooks callback changes:
    • onError reports the occurred exception with const std::exception_ptr& argument.
    • onFlagEvaluated callback's argument is changed to const EvaluationDetailsBase& from const EvaluationDetails&.
  • Renamed RolloutRule to TargetingRule.
  • Renamed RolloutPercentageItem to PercentageOption.
  • EvaluationDetails changes:
    • matchedEvaluationRule is renamed to matchedTargetingRule.
    • matchedEvaluationPercentageRule is renamed to matchedPercentageOption.
    • Introduced std::exception_ptr errorException.
    • Introduced std::shared_ptr and std::optional types instead of const ref/pointers.
  • Introduced ResponseErrorCode instead of bool operationTimedOut in Response struct.
  • Logging changes:
    • Log level names are now in capital format to follow other ConfigCat SDKs.
    • The Log function now gets const std::exception_ptr& exception as an argument. unwrap_exception_message function can be used to get the message of this exception.
  • The custom init parameter of ConfigCatUser now accepts std::string, double, std::chrono::system_clock::time_point, std::vector<std::string> typed values, not just strings. This allows the usage of various types in the user object's custom attributes.
  • Introduced datetime_to_isostring and make_datetime(int year, int month, int day, int hour, int min, int sec, int millisec) helpers in timeutils.h

v3.2.0

12 Dec 12:40
55cd33d
Compare
Choose a tag to compare
  • Introduced CONFIGCAT_USE_EXTERNAL_NETWORK_ADAPTER cmake option and CONFIGCAT_EXTERNAL_NETWORK_ADAPTER_ENABLED cpp define. If you turn it on, the cpp-sdk won't include the libcurl library. In this case, in the ConfigCat options you should add a custom http session adapter. ConfigCat will use this custom adapter for network requests.

v3.1.1

10 Nov 16:52
f4de32f
Compare
Choose a tag to compare
  • CMake install fix

v3.1.0

07 Nov 15:01
e2d3f1e
Compare
Choose a tag to compare
  • Remove cpr dependency.
  • Use just libcurl for network requests.

v3.0.0

24 Jul 08:33
7f34bd9
Compare
Choose a tag to compare

Please note that this version has several breaking changes in logging and custom cache implementation. You can find the detailed list of breaking changes below.

  • Updated logging:
    • Include event IDs in log messages to make identification of log events easier.
    • Revise log messages and make them consistent across the ConfigCat SDKs.
  • Revise caching of downloaded config data:
    • Use a standardized config cache key generation algorithm and cache payload format to allow shared caches to be used by SDKs of

v2.0.1

20 Mar 13:25
7d50fb0
Compare
Choose a tag to compare

Add a constructor to ConsoleLogger to be able to init with different log levels.

v2.0.0

13 Mar 12:30
76c7ad7
Compare
Choose a tag to compare

Added

  • setOffline() / setOnline() methods to indicate whether the SDK is allowed to make HTTP calls or not. In 'offline' mode the SDK works from the cache only.
  • onReady() / onConfigChanged() / onFlagEvaluated() / onError() hooks. Subscription is possible on client initialization options and on the hooks property of ConfigCatClient.
  • getValueDetails() method to retrieve evaluation details along with the feature flag / setting value. It returns the same details that is passed to onFlagEvaluated() on each evaluation.
  • getAllValueDetails() method

Changed

  • forceRefresh() method now returns with a result object to indicate whether the refresh succeeded or not.
  • Fetch logic handles 403 response status and updates cached fetch_time in case of 304 403 and 404 response status.
  • ConfigCatClient::get() expects a const ConfigCatOptions* pointer instead of const ConfigCatOptions&
  • In the ConfigCatOptions the following members changed:
    • mode to pollingMode: the polling mode for the client.
    • cache to configCache: the custom cache implementation for the client.
    • override to flagOverrides: Feature flag and setting overrides.

Removed

  • Removed getVariationId() and getAllVariationIds() methods in favor of getValueDetails() and getAllValueDetails().