Skip to content

Releases: statsig-io/java-server-sdk

1.34.0 - Support Override-related APIs with UserID and CustomIDs, Add Sampling to Exposure Events

14 Dec 00:19
d489be1
Compare
Choose a tag to compare

New Features

  • Added Sampling to Gate/Config/Layer non-analytical exposure events
  • We now support overrideGate, overrideLayer, overrideConfig, removeGateOverride, removeConfigOverride removeLayerOverride with a new parameter called forID so that end users can override / remove a override for a specific user.
    • forID can be userID field on the StatsigUser object or customIDs on the StatsigUser Object

Example

        StatsigUser sampleUser = new StatsigUser("userId123");
        Statsig.overrideGate("test_gate", false, sampleUser.getUserID());
        Map<String, String> customIDs = Map.of("customid", "1017");
        sampleUser.setCustomIDs(customIDs);
        Statsig.overrideGate("test_gate", false, "1017");

Improvements

  • N / A

Fixes

  • N / A

Included In This Release

  • a8d349e tore-statsig
    • Revert "persisted evaluation with experiment filtering" (#410)
  • 7a2893a kenny-statsig
    • persisted evaluation with experiment filtering (#402)
  • da8a561 Weihao Ding
    • feat: sampling (#406)
  • dd147ff Weihao Ding
    • feat: support overrides with user/custom IDs (#405)

Full Changelog: 1.32.2...1.34.0

1.33.0 - Support Override-related APIs with UserID and CustomIDs

11 Dec 23:19
56978d8
Compare
Choose a tag to compare

New Features

  • We now support overrideGate, overrideLayer, overrideConfig, removeGateOverride, removeConfigOverride removeLayerOverride with a new parameter called forID so that end users can override / remove a override for a specific user.
    - forID can be userID field on the StatsigUser object or customIDs on the StatsigUser Object

Example

        StatsigUser sampleUser = new StatsigUser("userId123");
        Statsig.overrideGate("test_gate", false, sampleUser.getUserID());
        Map<String, String> customIDs = Map.of("customid", "1017");
        sampleUser.setCustomIDs(customIDs);
        Statsig.overrideGate("test_gate", false, "1017");

Included In This Release

  • dd147ff Weihao Ding
    • feat: support overrides with user/custom IDs (#405)

Full Changelog: 1.32.2...1.33.0

1.32.2 - Changed LockableArray into ConcurrentQueue to Prevent Blocking Issue

11 Dec 00:59
7b1e9ab
Compare
Choose a tag to compare

New Features

  • N / A

Improvements

  • Changed lockableArray into ConcurrentQueue to prevent potential blocking issue when flushing exposure events

Fixes

  • N / A

Included In This Release

  • 2a23c30 Weihao Ding
    • fix: change lockableArray into ConcurrentQueue (#404)
  • 1b7132d Xin Li
    • update submodule (#403)

Full Changelog: 1.32.1...1.32.2

1.32.1 - Add More Info into Exposure Metadata, Fix the returnType for getOnDeviceEvalInitializeResponse

30 Oct 23:21
2469701
Compare
Choose a tag to compare

Improvements

  • Added downloadConfigSpec version and the passed rule id into Exposure Metadata

Fixes

  • Fixed the return type for api getOnDeviceEvalInitializeResponse when bootstrap local-eval SDK.

Included In This Release

  • c118cb7 Weihao Ding
    • fix: serialization for onDeviceEval (#399)
  • ebf46f4 sroyal-statsig
    • Add Config Version and Rule Passed to Exposure Metadata (#400)

Full Changelog: 1.32.0...1.32.1

1.32.0 - Manually Sync Config Spec

21 Oct 19:25
2287db8
Compare
Choose a tag to compare

New Features

  • New api syncConfigSpecs allows users to manually trigger the synchronization of config specs in cases where the initial SDK initialization has failed and you want to retry.

Return Type: CompletableFuture<ConfigSyncDetails>

Example usage:


        CompletableFuture<ConfigSyncDetails> future = Statsig.syncConfigSpecs();
        ConfigSyncDetails configSyncDetails = future.get();
        configSyncDetails.getDuration();  
        configSyncDetails.getConfigSpecReady();  
        configSyncDetails.getFailureDetails();
        configSyncDetails.getLcut();  

Included In This Release

  • f3fb46a Weihao Ding
    • refac: modify configSyncDetails (#396)
  • f576480 Weihao Ding
    • feat: re-init / manual sync config specs (#394)

Full Changelog: 1.31.0...1.32.0

1.31.0 - New Api getOnDeviceEvalInitializeResponse, Add IDType to GCIR Response and Option to Enforce Overrides for Persistent Evaluations

15 Oct 18:05
85922c9
Compare
Choose a tag to compare

New Features

  • New api getOnDeviceEvalInitializeResponse returns a Map<String, Any> for bootstrapping on-device evaluation sdk

Improvements

  • Update the getEvaluations format
  • Adds idType to the gcir response
  • Adds options to enforce overrides for persistent evaluations

Included In This Release

  • b6c1c1c Weihao Ding
    • feat: get on device eval client initialize response (#386)
  • aca24e1 kenny-statsig
    • option to enforce overrides for persistent evaluation (#388)
  • 8eaab77 sroyal-statsig
    • Add IDType to GCIR (#389)
  • 1a49e51 sroyal-statsig
    • Update Get Evaluations Format (#387)

Full Changelog: 1.30.0...1.31.0

1.30.0 - Support TLS for GRPC

05 Oct 00:04
58c17a3
Compare
Choose a tag to compare

New Features

Fixes

  • Remove manually append v1 in the path

Included In This Release

  • 2ece06e Xin Li
    • support tls for grpc websocket (#378)
  • 475a643 Xin Li
    • remove appeneded v1 (#375)
  • 6bca616 Xin Li
    • add more try catch block to trigger fallback behavior (#382)

Full Changelog: 1.29.0...1.30.0

1.29.0 - Enforce targeting for persisted assignments & Improved formatting for SSR

03 Oct 23:46
b17dbf5
Compare
Choose a tag to compare

Improvements

  • Allow checking targeting gate before serving persisted assignment via the option enforceTargeting on PersistentAssignemntOptions
  • Support new client initialize format for SSR getEvaluationsForUser. Not yet compatible with all client SDKs

Included In This Release

  • d0477db Stephen Royal
    • New Format for Bootstrap Values (#380)
  • 2989062 Kenny Yi
    • respect targeting in persistent assignment (#376)

Full Changelog: 1.28.0...1.29.0

1.28.0 - [Breaking Change] getFeatureGate Api for Multi-instance usage, Better logging

01 Oct 20:25
0426fb1
Compare
Choose a tag to compare

New Features

  • Exposed getFeatureGate api to multi-instance Java/kotlin usage.

Breaking change

  • Custom Logger Integration Update:
    If you're using a custom logger via the StatsigOptions configuration, this release introduces breaking changes in how logging is handled.

Specific Changes:

New methods:

debug(String message)
info(String message)
setLogLevel(LogLevel level)

enum LogLevel { NONE, DEBUG, INFO, WARN, ERROR};

Renamed method:

warning(String message) → warn(String message)

Included In This Release

  • 5f918e2 Weihao Ding
    • refac: add debug loggings and refactor outputLogger (#377)
  • e0595a5 Weihao Ding
    • fix: expose getFeatureGate to java (#379)
  • 5d364ed Xin Li
    • add unit test for get dcs failure (#372)

Full Changelog: 1.27.4...1.28.0

1.27.4 - Remove unnecessary grpc java dependency

26 Sep 00:05
24b4537
Compare
Choose a tag to compare

Improvements

  • Remove grpc java dependency which is already imported with grpc depednecy

Included In This Release

  • 33abeff Xin Li
    • remove explicitly set protobuf java dependency (#368)

Full Changelog: 1.27.3...1.27.4