Skip to content

Releases: launchdarkly/ld-relay

6.1.0

10 Nov 02:36
Compare
Choose a tag to compare

[6.1.0] - 2020-11-09

Added:

  • The Relay Proxy now supports a new "offline mode" which is available to customers on LaunchDarkly's Enterprise plan. This mode allows the Relay Proxy to run without ever connecting it to LaunchDarkly. When running in offline mode, the Relay Proxy gets flag and segment values from an archive on your filesystem, instead of contacting LaunchDarkly's servers. To learn more, read the online documentation.

Fixed:

  • The contribution guidelines incorrectly indicated the minimum Go version as 1.13 instead of 1.14.

6.0.3

26 Oct 21:22
edd3a27
Compare
Choose a tag to compare

[6.0.3] - 2020-10-26

Fixed:

  • Fixed a dependency path that could cause a compiler error (code in directory $GOPATH/src/github.com/go-gcfg/gcfg expects import "gopkg.in/gcfg.v1") when building the Relay Proxy from source code in some cases.

6.0.2

20 Oct 22:49
0efc076
Compare
Choose a tag to compare

[6.0.2] - 2020-10-20

Fixed:

  • If a flag or segment was deleted in LaunchDarkly after the Relay Proxy started up, SDK clients that connected to Relay Proxy endpoints after that point could receive an unexpected null value for that flag or segment in the JSON data. This would cause an error in some SDKs causing their stream connections to stop working. This bug was introduced in version 6.0.0.
  • When forwarding events from a PHP SDK, the Relay Proxy might omit information about private user attributes (that is, the existence of the attribute would be lost; it would not become non-private). This bug was introduced in version 6.0.0.
  • In automatic configuration mode, there was a memory leak when a previously active environment was removed from the configuration: the Relay Proxy could fail to dispose of the in-memory data and worker goroutine(s) related to that environment.

6.0.1

08 Oct 20:03
Compare
Choose a tag to compare

[6.0.1] - 2020-10-08

Fixed:

  • When sending flag/segment JSON data to SDKs or storing it in a database, properties with default values (such as false booleans or empty arrays) were being dropped entirely to save bandwidth. However, some of the LaunchDarkly SDKs do not tolerate missing properties, so this has been fixed to remain consistent with the less efficient behavior of previous Relay Proxy and Go SDK versions.
  • When using automatic configuration mode, under some circumstances the Relay Proxy might make an unnecessary attempt to contact LaunchDarkly using an expired SDK key, which would fail. This did not affect use of the current SDK key, but it would cause a misleading error message in the log.

6.0.0

07 Oct 17:32
Compare
Choose a tag to compare

[6.0.0] - 2020-10-07

For more details on changes related to configuration, read the configuration documentation.

Added:

  • The Relay Proxy now supports a new mode named "automatic configuration" which is available to customers on LaunchDarkly's Enterprise plan. This mode allows environments and their credentials can be configured dynamically rather than having to be manually configured ahead of time. To learn more, read the online documentation.
  • Secure mode can be enabled for an environment by setting SecureMode = true for that environment in the configuration file, or LD_SECURE_MODE_MyEnvName if using environment variables. This is separate from the setting for secure mode on the LaunchDarkly dashboard, which the Relay Proxy is not able to access.
  • The new DisconnectedStatusTime configuration property controls how long the Relay Proxy will tolerate a stream connection being interrupted before reporting a "disconnected"/"degraded" status in the status resource.
  • The new MaxClientConnectionTime configuration property can make the Relay Proxy drop client connections automatically after some amount of time, to improve load balancing. (#92)
  • The Consul integration now supports ACL tokens with the Token and TokenFile configuration properties.
  • The new DisableInternalUsageMetrics configuration property allows turning off the internal analytics that the Relay Proxy normally sends to LaunchDarkly.
  • The /status endpoint now includes more information about the LaunchDarkly connection status, database connection status (if applicable) and database configuration (if applicable). To learn more, read Service endpoints. (#104)

Changed (breaking changes in configuration):

  • Relay will now print an error and refuse to start if there is any property name or section name in a configuration file that it does not recognize. Previously, it would print a warning but then continue. This change was made because otherwise it is easy to misspell a property and not notice that the value is not being used.
  • All configuration settings that represent a time duration must now be specified in a format that includes units, such as 3s for 3 seconds or 5m for 5 minutes. The affected settings include [Main] HeartbeatInterval (HEARTBEAT_INTERVAL), [Events] FlushInterval (EVENTS_FLUSH_INTERVAL), [any database] LocalTTL (CACHE_TTL), and [any environment] TTL (LD_TTL_envname).
  • Previously, environment variables that have a true/false value were assumed to be false if the value was anything other than true or 1. Now, any value other than true, false, 0, or 1 is an error.
  • All configuration settings that represent port numbers now cause an error if you set them to zero or a negative number. The same is true of the event capacity setting.
  • The environment variable name LD_TTL_MINUTES_envname is no longer supported. Use LD_TTL_envname instead.
  • The environment variable name REDIS_TTL is no longer supported. Use CACHE_TTL instead.
  • The setting [Events] SamplingInterval (SAMPLING_INTERVAL) is no longer supported.

Changed (breaking changes when building the Relay Proxy):

  • When building the Relay Proxy, you must use Go 1.14 or higher and Go modules.
  • The build command is now just go build, rather than go build ./cmd/ld-relay.

Changed (breaking changes when using the Relay Proxy as a library):

  • When using the Relay Proxy as a library, you must use Go 1.14 or higher and Go modules.
  • The base import path is now github.com/launchdarkly/ld-relay/v6 instead of gopkg.in/launchdarkly/ld-relay.v5.
  • The import path for the Relay type is now github.com/launchdarkly/ld-relay/v6/relay.
  • The Config structs are now in a config subpackage. The types of many fields have changed to types that prevent creating a configuration with invalid values (for instance, OptURLAbsolute for URL fields instead of string).
  • There is no longer a DefaultConfig. Instead, Relay automatically uses the appropriate default values for any configuration fields that are not set.

Changed (other):

  • The prebuilt binaries for Relay Proxy releases no longer include a 32-bit Darwin/MacOS version; current versions of Go only support 64-bit for Darwin. The Linux binaries still include both 32-bit and 64-bit.
  • The documentation in the source code repository has been reorganized into multiple files for clarity, so README.md is now only a summary with links to the other files.

Removed:

  • The undocumented InsecureSkipVerify configuration property has been removed.

5.12.2

24 Sep 00:46
Compare
Choose a tag to compare

[5.12.2] - 2020-09-23

Fixed:

  • The prebuilt Linux Docker image contained version 1.1.1c of openssl, which had several known security vulnerabilities. The image now contains version 1.1.1g of openssl, and also uses the more current 3.12.0 version of the Alpine Linux distribution rather than 3.10.2.
  • Fixed instabilities in the CI build.

5.12.1

10 Aug 17:04
Compare
Choose a tag to compare

[5.12.1] - 2020-08-10

Fixed:

  • The configuration section of README.md mistakenly referred to MinTlsVersion and MIN_TLS_VERSION as MinTlsLevel and MIN_TLS_LEVEL. This release simply fixes the documentation error; the behavior of Relay Proxy has not changed.

5.12.0

06 Aug 22:41
Compare
Choose a tag to compare

[5.12.0] - 2020-08-06

Added:

  • There is a new configuration option for specifying the lowest allowable TLS version, when using the Relay Proxy as a secure server. This is MinTlsVersion in the [Main] section of the configuration file, or the variable MIN_TLS_VERSION if using environment variables. For instance, setting this option to 1.2 means that all requests from clients must use TLS 1.2 or higher.

5.11.2

06 Aug 17:38
Compare
Choose a tag to compare

[5.11.2] - 2020-08-06

Changed:

  • There is a clientSideAvailability property which will be sent by LaunchDarkly services in the future as an alternate way of indicating whether a flag is enabled for use by client-side/mobile JavaScript SDKs. Previous versions of the Relay Proxy did not support this property, so the more detailed availability features being added to the LaunchDarkly dashboard would not work for applications that connected through a Relay Proxy. This version adds that support.

5.11.1

08 Jul 02:45
Compare
Choose a tag to compare

[5.11.1] - 2020-07-07

Changed:

  • Updated the README to have updated usage guidance and to fix outdated links.

Fixed:

  • When proxying events, events that were received from JavaScript browser clients via the special image-loading endpoint (used if the browser does not support CORS) could be lost.
  • When Prometheus metrics are enabled, the /metrics endpoint that Relay provides for the Prometheus agent to query was being added globally using http.Handle; that meant that if an application used Relay as a library, and used http.ListenAndServe with the default handler, it would have a /metrics endpoint on its own port. This has been fixed so the endpoint is only defined on the Prometheus exporter's port.
  • Stream reconnections now use a backoff delay with jitter, instead of a fixed delay.