Releases: launchdarkly/erlang-server-sdk
Releases · launchdarkly/erlang-server-sdk
1.5.0
[1.5.0] - 2022-06-23
Changed:
- Updated
certifi
to 2.9.0. - Updated
shotgun
to 0.5.3. This should obviate the need to overrideshotgun
inmix.exs
for Elixir projects.
Fixed:
- Updated URI parsing to work with OTP 25. Removing the usage of
http_uri:parse
and replacing it withuri_string:parse
.
1.4.0
[1.4.0] - 2022-04-20
Added:
ldclient:all_flags_state/3
to be used instead ofldclient:all_flags_state/1 or /2
if you are passing flag data to the front end for use with the JavaScript SDK. It preserves some flag metadata that the front end requires in order to send analytics events correctly. It does NOT yet support selecting client-side-enabled flags.ldclient_testdata
is a new way to inject feature flag data programmatically into the SDK for testing—either with fixed values for each flag, or with targets and/or rules that can return different values for different users. Unlike the file data source, this mechanism does not use any external resources, only the data that your test code has provided.- Support for the SDK test harness.
Fixed:
- An issue with handling
firstName
andlastName
in rules. The SDK usesfirst_name
andlast_name
atoms for these fields and there was an issue with when the attribute names were converted. Now name conversion for attributes are done after evaluation and processing of private attributes. ldclient:track
andldclient:tack_metric
will not allow for types other thanmap()
to be used fordata
.- The SDK was sending identify events for users with an empty key when it should not.
- The SDK would send duplicate events for a user which had been identified and then was noticed by a feature evaluation. Now the event will be de-duplicated correctly within the LRU cache timeout.
- Rule matches against dates in the user object, which could not be parsed, would cause evaluation to fail and return the default value. Now they will correctly result in the rule not matching instead.
- The configuration was not trimming trailing
/
from URLs.
Changed:
- Event fields which contained false or null will not generally be omitted from events for compactness.
- Clarifications to documentation.
1.3.2
[1.3.2] - 2021-12-30
Fixed:
- The file
file_auto_update
feature was not working correctly. If the flag files did not contain any changes between polling intervals, then the file system watcher would crash. (Thanks, matt-glover!)
1.3.1
[1.3.1] - 2021-11-09
Fixed:
- Updated the
options()
typings forldclient_instance:start
to include missing configuration options. These included redis configuration, ld relay configuration, cache ttl, file data source configuration, and the http options. This is not a functionality change, but will correct issues reported by the dialyzer.
1.3.0
[1.3.0] - 2021-11-03
Added:
-
Support for configuring HTTP options. Including:
- The ability to specify custom headers.
ldclient_config:parse_options("sdk-key", #{ http_options => #{ custom_headers => [ {"Basic-String-Header", "String"}, {"Binary-String-Header", "Binary"} ]} }),
- The ability to specify a custom connect timeout.
ldclient_config:parse_options("sdk-key", #{ http_options => #{ connect_timeout => 2000 } }),
- The ability to specify a custom TLS configuration.
The default behavior for OTP is to useverify_none
for TLS verification. If no configuration is specified, then the SDK will inherit this behavior.
ldclient_config:parse_options("sdk-key", #{ http_options => #{ %% This is a list of tls_client_options() %% https://www.erlang.org/doc/man/ssl.html#type-tls_client_option tls_options => ldclient_config:tls_basic_options() } }),
- A number of TLS configuration helpers. A full TLS configuration can be specified, but these methods provide a number of basic configurations.
ldclient_config:tls_basic_options() -> [ssl:tls_client_option()]
Create a basic TLS configuration which will try to use a default location for certificate authority store.
If that store is not present, then instead the configuration will use a certifi store which is a Rebar3 dependency.ldclient_config:tls_basic_linux_options() -> [ssl:tls_client_option()]
Create a basic TLS configuration which will use a default location for a certificate store. If the store is not present, then it will produce an error.ldclient_config:tls_ca_certfile_options(CaStorePath :: string()) -> [ssl:tls_client_option()]
Create a basic TLS configuration with the specified certificate store. If the store is not present, then it will produce an error.ldclient_config:with_tls_revocation(Options :: [ssl:tls_client_option()]) -> [ssl:tls_client_option()]
Decorate a configuration with revocation checks. Currently revocation checks are not cached in OTP, so this will result in additional requests for each HTTP request.ldclient_config:tls_basic_certifi_options() -> [ssl:tls_client_option()]
Create a basic TLS configuration which will use the certifi store specified in the Rebar3 dependencies.
1.2.0
[1.2.0] - 2021-10-18
Added:
- The SDK now supports the ability to control the proportion of traffic allocation to an experiment. This works in conjunction with a new platform feature now available to early access customers.
- The SDK now supports the ability to read flags from a file.
1.1.3
[1.1.3] - 2021-09-27
Fixed:
- When a rule was missing both the rollout and the variation, and that rule was matched, then variation 0 would be returned instead of the default value.
- When a fall-through was missing both a rollout and a variation, then null would be returned instead of the default value.
1.1.2
[1.1.2] - 2021-09-13
Fixed:
- The SDK now forces connections to use HTTP/1.1 instead of the newer HTTP/2 protocol as an underlying dependency does not yet support HTTP/2. This change does not impact current behavior as LaunchDarkly’s servers do not yet accept requests with HTTP/2; however, this SDK change ensures operational continuity when LaunchDarkly’s services enable HTTP/2 compatibility.
- The SDK is more resilient when opening an SSE connection, processing events from the stream, and evaluating feature flags.
1.1.1
[1.1.1] - 2021-08-06
Changed:
- Updated the
eredis
dependency to version1.4.0
. (Thanks, jeffgrunewald!) - Updated the
jsx
dependency to version3.1.0
. (Thanks, bitwalker!) - Updated the
uuid
dependency to version2.0.2
. (Thanks, jeffgrunewald!) - Expanded test coverage to include OTP 24.
1.1.0
[1.1.0] - 2021-05-06
Added:
ldclient:alias/2
andldclient:alias/3
functions. These can be used to associate two user objects for analytics purposes with an alias event.