Overview
shipeasy (ai.shipeasy:shipeasy) is the server-side Java SDK for Shipeasy — feature flags, dynamic configs, kill switches, A/B experiments, metric tracking,…
Generated from the SDK's own /docs/ — also served raw at
https://shipeasy-ai.github.io/sdk-java/pages/overview.md.
shipeasy (ai.shipeasy:shipeasy) is the server-side Java SDK for
Shipeasy — feature flags, dynamic configs, kill switches,
A/B experiments, metric tracking, and see() error reporting. Rules are
evaluated locally against a cached blob fetched from the edge, so there is no
network call per evaluation.
The mental model: configure() once, new Client(user) per request
You learn exactly two things. First, configure the SDK once at startup. This authenticates with your server key and kicks off the initial rules fetch:
import ai.shipeasy.Shipeasy;
import ai.shipeasy.Client;
import java.util.Map;
// Once, at startup (main(), an @PostConstruct bean, a static initializer):
Shipeasy.configure(System.getenv("SHIPEASY_SERVER_KEY"));
// Per user / per request, anywhere downstream. The user is bound at
// construction, so every read takes NO user argument:
Client c = new Client(Map.of("user_id", "u_123", "plan", "pro"));
boolean enabled = c.getFlag("new_checkout");
Object cfg = c.getConfig("billing_copy");
boolean killed = c.getKillswitch("panic_button");
c.logExposure("checkout_button"); // emit the exposure when you present it
c.track("purchase", Map.of("amount", 49)); // record the conversionnew Client(user) is cheap — it owns no HTTP connection, blob cache, or poll
timer. It runs the configured attributes transform on your user object once,
binds the resulting attribute map, and forwards every call to the single
process-wide engine that configure() built. Construct one per request and
throw it away.
Constructing a Client before configure() has run throws
IllegalStateException.
Pages
- Installation — Maven/Gradle coordinates, per-framework wiring, and the canonical
configure()setup with its options table. - Configuration —
configure(), theattributestransform, one-shot vs background poll, env vars. - Flags —
getFlag, defaults,getFlagDetail. - Configs —
getConfig, typed values, defaults. - Kill switches —
getKillswitchand named per-key switches. - Experiments —
getExperiment,ExperimentResult,track/logExposure. - i18n — SSR bootstrap for the browser SDK (the server SDK has no
t()). - Error reporting —
see()structured error reporting. - Testing —
configureForTesting()/configureForOffline()+ the override statics. - OpenFeature — the
ShipeasyProviderserver provider. - Advanced — manual exposure, private attributes, sticky bucketing, anon-id middleware, change listeners, SSR.