Releases: statsig-io/java-server-sdk
v1.3.3 - Bug fix - Dont round fractional percengate rollouts
v1.2.2 fixed an issue where fractional percentage rollouts caused the SDK to drop the config definitions. In fixing this issue, we introduced a different bug which incorrectly rounds fractional percentage rollouts when evaluating them.
v1.3.2 - Add ErrorBoundary to all Try/Catches
All Try/Catches will now log to ErrorBoundary as well as to stdout.
v1.3.1 - [internal] adds back entity field on APIConfig
entity field on APIConfig was added in 1.2.3, but missing when 1.3.0 was published. v1.3.1 fixes that.
v1.3.0 - Adds EvaluationDetails and internal improvements
Refactored data into a spec store, added evaluation details (visible with checks in console), manual exposure logging APIs for java,
v1.2.3 - internal - expose entity type
Merge pull request #15 from statsig-io/exposeentity Add entity type to APIConfig
v1.2.2 - Patch an issue with partial percentage rollouts
Rollouts with fractions of a percentage could cause exceptions while downloading configs
v1.2.1 - Fixes rulesUpdatedCallback to send json string of specs
Merge pull request #13 from statsig-io/pubcallback Send back json string of config specs from rulesUpdatedCallback
v1.2.0 - Adds exposure logging disabled APIs and layer overrides
Introduces the following new APIs
/**
* Stores a local layer override
*
* @param layerName the layer to override
* @param value the json value to override the config to
*/
overrideLayer(layerName: String, value: Map<String, Any>)
/**
* Removes the given gate override
*
* @param gateName
*/
removeGateOverride(gateName: String)
/**
* Removes the given config override
*
* @param configName
*/
removeConfigOverride(configName: String) {
if (checkInitialized()) {
statsigServer.removeConfigOverride(configName)
}
}
/**
* Removes the given layer override
*
* @param layerName
*/
removeLayerOverride(layerName: String)
Exposure Logging Disabled APIs
/**
* Get the boolean result of a gate, evaluated against a given user.
* Does not trigger an exposure event.
*
* @param user A StatsigUser object used for evaluation
* @param gateName The name of the gate being evaluated
*/
suspend fun checkGateWithExposureLoggingDisabled(user: StatsigUser, gateName: String): Boolean
// same, but java api
checkGateWithExposureLoggingDisabledAsync(user: StatsigUser, gateName: String): CompletableFuture<Boolean>
getConfigWithExposureLoggingDisabledAsync(
user: StatsigUser,
dynamicConfigName: String
): CompletableFuture<DynamicConfig> {
To trigger an exposure, call the non exposure logging disabled API, or use the manuallyLogGateExposure
manuallyLogConfigExposure
APIs
NOTE: layer exposure logging disabled checks and experiment exposure logging disabled checks already existed in the java server sdk
v1.1.0 - allow userID or customIDs, fix rulesUpdatedCallback for java clients,
-
Create a StatsigUser object with either a user ID or set of customIDs - see https://docs.statsig.com/messages/serverRequiredUserID for why these are required
-
updates the
rulesUpdatedCallback
signature to support java clients without leaking kotlinUnit
type -
No longer throw on uninitialized to clean up the API signature. Will log and return default values.
-
fully remove the
getLayerWithCustomExposureLogging
APIs deprecated in 1.0.0
v1.0.0 - moving to mavenCentral and deprecating apis
Removed getExperimentInLayerForUser
and getLayerWithCustomExposureLogging
APIs
The library will now only be available on mavenCentral.
To install the SDK, set the maven central repository
repositories {
mavenCentral()
}
and add the dependency:
implementation 'com.statsig:serversdk:1.0.0'
You can find the most up to date versions here: https://central.sonatype.dev/artifact/com.statsig/serversdk/1.0.0/versions
NOTE: you can remove maven { url 'https://jitpack.io' }
if statsig was the only library you got from jitpack