Java library for Confidence. This library is designed to work in a java backend environment. For Android, please visit Confidence-SDK-Android.
<dependency>
<groupId>com.spotify.confidence</groupId>
<artifactId>sdk-java</artifactId>
<version>0.1.3-SNAPSHOT</version>
</dependency>
Note: we strongly recommend to adopt the latest non-SNAPSHOT release available here.
We deploy snapshots from the main
branch to Sonatype OSSRH.
To use a snapshot, add the following repository to your pom.xml
:
<distributionManagement>
<snapshotRepository>
<id>oss.snapshots</id>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
The SDK is instantiated using a client secret that is configured in the Confidence UI or via the management console.
Flag values are evaluated remotely and returned to the application:
final Confidence confidence = Confidence.builder("<CLIENT_TOKEN>").build();
confidence.setContext(Map.of("country", ConfidenceValue.of("SE")));
final String propertyValue =
confidence
.withContext(
Map.of(
"user_id", ConfidenceValue.of("<some-user-id>"),
"country", ConfidenceValue.of("SE")))
.getValue("flag-name.property-name", "defaultValue");
Events are emitted to the Confidence backend:
confidence.track("my-event", ConfidenceValue.of(Map.of("field", ConfidenceValue.of("data"))));
The library includes a Provider
for
the OpenFeature Java SDK, that can be
used to resolve feature flag values from the Confidence platform.
The constructor for creating an OpenFeature ConfidenceProvider
takes a Confidence
instance as a parameter.
We kindly ask you to use the Confidence.Builder.buildForProvider()
function when creating a Confidence
instance that
will be used with OpenFeature.
To learn more about the basic concepts (flags, targeting key, evaluation contexts), the OpenFeature reference documentation can be useful.
In order to improve the services provided by Confidence, the SDK collects a very limited amount of telemetry data. This data is sent in the form of an additional gRPC header with each resolve request. The data does not contain any information that can be used to link the data to a specific end user.
Please refer to the Telemetry class to understand the data that is collected.
To opt out of this behavior, you can disable telemetry by setting the disableTelemetry
flag to true
when building the Confidence
instance.
final Confidence confidence = Confidence.Builder("<CLIENT_SECRET>")
.disableTelemetry(true)
.build();