Skip to content

Releases: statsig-io/node-js-server-sdk

v4.18.0 - Adds configurations for event logging, internal updates

15 Sep 20:12
75bca7e
Compare
Choose a tag to compare
  • updates messaging when encountering network errors
  • updates max metadata size to 2kb
  • unref timers to prevent hte SDK from holding up exit
  • removes unused fields from autotunes on client initialize response

v4.17.0 - Add internal error boundary, inherit environment for client initialize response

21 Jun 18:37
7c2ceb1
Compare
Choose a tag to compare
  • Adds an internal error boundary to the SDK to catch exceptions
  • Fixes an issue where local mode caused exceptions
  • Inherits the environment from the node sdk initialization for evaluating the client initialize response

v4.16.1 - Updates getClientInitializeResponse for layers/experiments

02 Jun 00:12
221b0f1
Compare
Choose a tag to compare

Layer parameter level logging was not fully supported by the client initialize response, nor was sticky experiment bucketing. This brings it up to spec with the /initialize endpoint

v4.16.0 - Adds flushapi, internal rewrite in typescript

17 May 22:40
7a5cb40
Compare
Choose a tag to compare

Adds a top level flush() API to force flush events to Statsig without shutting down the SDK. Useful in serverless environments to force events to flush to Statsig before a function exits

await statsig.flush()
This release also contains a large internal restructure, moving the entire SDK to typescript. If you were relying on internals of the SDK, those have changed. The externally facing changes are currently a noop

v4.15.5 - Patches an issue where timeouts were not all cleaned up in shutdown()

13 May 04:41
Compare
Choose a tag to compare

Since v4.10.0, the id list sync timer was not correctly cleaned up on shutdown

v4.15.4 - [internal] patch node-fetch require in spec store

12 May 16:50
Compare
Choose a tag to compare

There was an issue using Statsig in an edge function at build time related to the require('node-fetch') in the SDK, which is intentionally supposed to be optional. This was patched with a temporary workaround

v4.15.3 - patch logEvent value turning 0/'' to null, patch node-fetch require

11 May 23:25
b54b920
Compare
Choose a tag to compare
  • Events with a value of 0 or empty string were logged with a null value. This has been fixed

  • There was an issue using Statsig in an edge function at build time related to the require('node-fetch') in the SDK, which is intentionally supposed to be optional. This was patched with a temporary workaround

v4.15.2 - Patch a bug with exposure logging for customIDs

06 May 22:45
ce0960a
Compare
Choose a tag to compare

The node sdk was deduping exposures regardless of customIDs. This fixes that bug

v4.14.1 - Fix a bug where exposure logs deduped regardless of customIDs

06 May 22:44
9b12b4b
Compare
Choose a tag to compare

CustomID based experiments would not log proper exposures for every unique customID check. This patch fixes that bug.

v4.15.1 - Allow null userID if customID is present

25 Apr 20:21
Compare
Choose a tag to compare

NOTE: the typing has been loosened to allow nullable userID, but if a customID is not present, it will continue to throw at runtime

Also note - the SDK does not validate the ID type of the condition being evaluated. You must pass the proper ID type with the call to checkGate/getConfig/getExperiment/getLayer - we suggest passing whichever IDs are known at the time to every check (e.g. pass the userID and customIDs to every check, and let the SDK evaluate on the proper ID). Be sure to logEvent with both IDs so experiments on each ID type can join metrics with exposure data.