Releases: configcat/cpp-sdk
Releases · configcat/cpp-sdk
v4.0.3
v4.0.2
v4.0.1
v4.0.0
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
returnsstd::shared_ptr<ConfigCatClient>
instead of raw pointer.getValue
functions expectconst std::shared_ptr<ConfigCatUser>&
as user param instead of const raw pointer.- The generic
getValue
function returnsstd::optional<Value>
instead ofstd::shared_ptr<Value>
. In case of any failure,std::nullopt
will be returned. getKeyAndValue
function returnsstd::optional<KeyValue>
instead ofstd::shared_ptr<KeyValue>
.Hooks
callback changes:onError
reports the occurred exception withconst std::exception_ptr&
argument.onFlagEvaluated
callback's argument is changed toconst EvaluationDetailsBase&
fromconst EvaluationDetails&
.
- Renamed
RolloutRule
toTargetingRule
. - Renamed
RolloutPercentageItem
toPercentageOption
. EvaluationDetails
changes:matchedEvaluationRule
is renamed tomatchedTargetingRule
.matchedEvaluationPercentageRule
is renamed tomatchedPercentageOption
.- Introduced
std::exception_ptr errorException
. - Introduced
std::shared_ptr
andstd::optional
types instead of const ref/pointers.
- Introduced
ResponseErrorCode
instead ofbool operationTimedOut
inResponse
struct. - Logging changes:
- Log level names are now in capital format to follow other ConfigCat SDKs.
- The
Log
function now getsconst 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 ofConfigCatUser
now acceptsstd::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
andmake_datetime(int year, int month, int day, int hour, int min, int sec, int millisec)
helpers intimeutils.h
v3.2.0
- Introduced
CONFIGCAT_USE_EXTERNAL_NETWORK_ADAPTER
cmake option andCONFIGCAT_EXTERNAL_NETWORK_ADAPTER_ENABLED
cpp define. If you turn it on, the cpp-sdk won't include thelibcurl
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
v3.1.0
v3.0.0
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
v2.0.0
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 thehooks
property ofConfigCatClient
.getValueDetails()
method to retrieve evaluation details along with the feature flag / setting value. It returns the same details that is passed toonFlagEvaluated()
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 cachedfetch_time
in case of304
403
and404
response status. ConfigCatClient::get()
expects aconst ConfigCatOptions*
pointer instead ofconst ConfigCatOptions&
- In the
ConfigCatOptions
the following members changed:mode
topollingMode
: the polling mode for the client.cache
toconfigCache
: the custom cache implementation for the client.override
toflagOverrides
: Feature flag and setting overrides.
Removed
- Removed
getVariationId()
andgetAllVariationIds()
methods in favor ofgetValueDetails()
andgetAllValueDetails()
.