Concepts
Flags and Values
Model each release decision with the smallest flag type that expresses the behavior you need to control.
Documented flag types today
The current public SDKs and product pages document three flag types: boolean, string, and number. Each flag has a key, a name, a target value, and optional rules that can override that target for matching contexts.
Boolean
Use for kill switches, feature gating, and any strict on or off decision.
String
Use for variants such as theme names, experiment labels, or remote configuration modes.
Number
Use for thresholds, counts, quotas, and timing values your application reads at runtime.
const checkoutEnabled = await zenmanage.flags().single('new-checkout', false);
const theme = await zenmanage.flags().single('checkout-theme', 'classic');
const maxItems = await zenmanage.flags().single('max-items-per-page', 100);
A flag is more than a raw value
The target value is what a flag resolves to when no rules match. Rules and rollouts can override that target for specific contexts. Default values in your application sit outside Zenmanage and act as your last-resort fallback when a flag cannot be fetched or does not exist.
- Target value: the fallback value served from Zenmanage when no rule matches.
- Rule value: the value served when a rule matches the current context.
- Application default: the value your code uses when the flag is unavailable.
That layering is what lets you combine safe rollbacks in application code with flexible rollout behavior in the platform.
Choose the simplest primitive first
Next step
Take the next integration step in your own stack.
Start with the quickstart that matches your runtime, then return to the reference pages when you need exact request and payload details.