Skip to content

Releases: configcat/ruby-sdk

v8.0.1

23 May 09:40
f51153b
Compare
Choose a tag to compare

Fixed

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

v8.0.0

08 Mar 08:44
d32ca1e
Compare
Choose a tag to compare

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 custom dictionary also allows attribute values other than string values.
  • 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-v6 command of the ConfigCat CLI tool.
  • Rename the matched_evaluation_percentage_rule property to matched_targeting_rule and the matched_evaluation_rule`` property to matched_percentage_optioninEvaluationDetails`.
  • Throw ConfigCatClientException when the SDK key is passed to ConfigCatClient.get in an invalid format (unless the client is set up to use local-only flag override behaviour).

v7.0.0

17 Jul 08:26
5ef6d7d
Compare
Choose a tag to compare

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 with ConfigCat.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

22 Jun 15:03
c44a274
Compare
Choose a tag to compare

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:

  • Don't start auto poll in offline mode (#20)
  • Fix wrong return value of get_value_details() in case config JSON is not present (#27)

v6.0.0

27 Feb 16:26
239fd3b
Compare
Choose a tag to compare

Added

  • set_default_user(user) / clear_default_user methods to set / remove a default user object used when there's no user passed to get_value / get_value_details / get_all_values / get_all_variation_ids methods.
  • set_offline / set_online methods 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_error hooks. Subscription is possible on client initialization options and with the hooks property on ConfigCatClient.
  • get_value_details method to retrieve evaluation details along with the feature flag / setting value. It returns the same details that is passed to on_flag_evaluated on each evaluation.
  • get_all_value_details method to retrieve evaluation details along with all feature flags/ setting values.

Changed

  • Client initialization options were moved to a ConfigCatOptions object that can be passed to the new configcatclient.get factory method. The create_client* methods are deprecated.
  • In the create_client* methods the following params changed:
    • config_cache_class to config_cache: A subclass of ConfigCache object is expected here (not a class).
    • connect_timeout to connect_timeout_seconds (to indicate the unit of measure).
    • read_timeout to read_timeout_seconds (to indicate the unit of measure).
    • flag_overrides expects a new FlagOverrides object (not an OverrideDataSource object).
  • ConfigCatClient's stop method is renamed to close.
  • ConfigCatClient can be explicitly closed via client.close and configcatclient.close_all methods.
  • force_refresh now returns with a result object that indicates whether the refresh succeeded or not.
  • The TTL of lazy_load and interval of auto_poll is compared against a cached fetch_time, which allows the SDK not necessarily download a new config.json at each application restart.
  • Fetch logic handles 403 response status and updates cached fetch_time in case of 304 403 and 404 response status.

v5.0.2

27 Jun 20:23
0b1f0be
Compare
Choose a tag to compare
  • Fix the autopoll policy identifier in the SDK's useragent.

v5.0.1

30 May 22:53
Compare
Choose a tag to compare
  • Expose ConfigCat::LocalFileDataSource and ConfigCat::LocalDictionaryDataSource to be used by consumers.

v5.0.0

12 Apr 22:23
b0a8cc6
Compare
Choose a tag to compare
  • The evaluation logs are staying on info level but they are now combined into a single log entry.
  • open_timeout and read_timeout initialization 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_overrides parameter to support the reading of flags & settings from a file or a hash.

v4.0.0

12 Oct 10:19
101f613
Compare
Choose a tag to compare

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.

v3.1.0

14 Sep 21:21
Compare
Choose a tag to compare
  • Added variation id related functions to support integration with analytical tools:
    get_variation_id()
    get_all_variation_ids()
    get_key_and_value()
    
  • Removed case-insensitive attribute key support.