Flipt OpenFeature Provider can provide usage for Flipt via OpenFeature Java SDK.
<dependency>
<groupId>dev.openfeature.contrib.providers</groupId>
<artifactId>flipt</artifactId>
<version>0.1.0</version>
</dependency>
- Boolean evaluation gets feature boolean evaluation / enabled status.
- Non-boolean evaluation gets feature variant key.
Flipt OpenFeature Provider uses Flipt's Server Java SDK.
// create a Flipt client and provider
FliptClientBuilder fliptClientBuilder = FliptClient.builder().url(apiUrl);
FliptProviderConfig fliptProviderConfig = FliptProviderConfig.builder()
.fliptClientBuilder(fliptClientBuilder)
.build();
// create OpenFeature provider
FeatureProvider fliptProvider = new FliptProvider(fliptProviderConfig);
OpenFeatureAPI.getInstance().setProviderAndWait("sync", fliptProvider);
client = OpenFeatureAPI.getInstance().getClient("sync");
MutableContext evaluationContext = new MutableContext();
evaluationContext.setTargetingKey(FLAG_NAME + "_targeting_key");
featureEnabled = client.getBooleanValue(FLAG_NAME, false, evaluationContext);
variant = client.getStringValue(VARIANT_FLAG_NAME, "", evaluationContext);
See FliptProviderTest.java for more information.
- Additional evaluation data can be received via flag metadata, such as:
- variant-attachment - string
Unit test based on WireMock for API mocking.