Releases: configcat/ruby-sdk
Releases · configcat/ruby-sdk
v8.0.1
v8.0.0
New features and improvements:
- Add support for the new Config JSON v6 format: update the config model and implement new features in setting evaluation logic.
- Overhaul setting evaluation-related logging and make it consistent across SDKs.
- Performance improvements to setting evaluation when info level logging is turned off.
Breaking changes:
- The User's
customdictionary also allows attribute values other thanstringvalues. - The config JSON v5 format is no longer accepted by flag overrides. If you use this feature, you will need to convert your override JSON file(s) to the v6 format. You can do this using the
config-json convert v5-to-v6command of the ConfigCat CLI tool. - Rename the
matched_evaluation_percentage_ruleproperty tomatched_targeting_ruleand thematched_evaluation_rule`` property tomatched_percentage_optioninEvaluationDetails`. - Throw
ConfigCatClientExceptionwhen the SDK key is passed toConfigCatClient.getin an invalid format (unless the client is set up to use local-only flag override behaviour).
v7.0.0
Please note that this version has several breaking changes, so you may need to adjust your code when upgrading, especially if you're using deprecated APIs or a custom cache implementation. You can find the detailed list of breaking changes below.
- Removed deprecated init functions:
ConfigCat.create_client,ConfigCat.create_client_with_auto_poll,ConfigCat.create_client_with_lazy_load,ConfigCat.create_client_with_manual_poll. Create the ConfigCat Client as a Singleton object withConfigCat.get()instead. - 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 different platforms.
v6.1.0
New features and improvements:
- Logging changes
- Include event IDs in log messages to make identification of log events easier.
- Revise log messages and make them consistent across the ConfigCat SDKs.
Bug fixes:
v6.0.0
Added
set_default_user(user)/clear_default_usermethods to set / remove a default user object used when there's no user passed toget_value/get_value_details/get_all_values/get_all_variation_idsmethods.set_offline/set_onlinemethods to indicate whether the SDK is allowed to make HTTP calls or not. In 'offline' mode the SDK works from the cache only.on_client_ready/on_config_changed/on_flag_evaluated/on_errorhooks. Subscription is possible on client initialization options and with thehooksproperty onConfigCatClient.get_value_detailsmethod to retrieve evaluation details along with the feature flag / setting value. It returns the same details that is passed toon_flag_evaluatedon each evaluation.get_all_value_detailsmethod to retrieve evaluation details along with all feature flags/ setting values.
Changed
- Client initialization options were moved to a
ConfigCatOptionsobject that can be passed to the newconfigcatclient.getfactory method. Thecreate_client*methods are deprecated. - In the
create_client*methods the following params changed:config_cache_classtoconfig_cache: A subclass ofConfigCacheobject is expected here (not a class).connect_timeouttoconnect_timeout_seconds(to indicate the unit of measure).read_timeouttoread_timeout_seconds(to indicate the unit of measure).flag_overridesexpects a newFlagOverridesobject (not an OverrideDataSource object).
ConfigCatClient'sstopmethod is renamed toclose.ConfigCatClientcan be explicitly closed viaclient.closeandconfigcatclient.close_allmethods.force_refreshnow returns with a result object that indicates whether the refresh succeeded or not.- The TTL of
lazy_loadand interval ofauto_pollis compared against a cachedfetch_time, which allows the SDK not necessarily download a newconfig.jsonat each application restart. - Fetch logic handles
403response status and updates cachedfetch_timein case of304403and404response status.
v5.0.2
v5.0.1
v5.0.0
- The evaluation logs are staying on info level but they are now combined into a single log entry.
open_timeoutandread_timeoutinitialization parameters were added to be able to configure HTTP timeout parameters.- A
get_all_values()function was added that evaluates all flags & settings in a dictionary. - New
flag_overridesparameter to support the reading of flags & settings from a file or a hash.
v4.0.0
Addressing global data handling and processing trends via Data Governance feature. Customers can control the geographic location where their config JSONs get published to. See the docs.
We are introducing a new DataGovernance initialization parameter. Set this parameter to be in sync with the Data Governance preference on the Dashboard.
Breaking change:
- Custom cache implementations should implement the new cache interface using key parameter in the get/set methods.