Skip to main content

Keys, visibility, and evaluation

Superflag separates who may manage configuration from where configuration may be delivered. Treat the prefix as a credential class, not as the complete authorization check.

Server-only by default

Advanced flags and segments default to server visibility. A flag reaches a client only when it has visibility: "client". Every prerequisite and segment referenced by that flag must also be client-visible. Invalid dependency graphs fail closed instead of leaking a partial rule set. Legacy flags use clientEnabled: true. The client delivery route never includes legacy rules or overrides.

Choose an evaluation model

Stable targeting identity

Percentage rollouts and experiments need a stable targetingKey. Use the same logical subject for decisions that should remain in one cohort, such as a user, organization, workspace, or install. Put additional allow-listed targeting data under attributes.
The environment privacy allow-list removes attributes that were not explicitly approved. Do not use random request IDs for a rollout that should remain stable.

Fallbacks are part of the contract

Every typed value read has a deterministic fallback. Choose the fallback as the safe product behavior when configuration is missing, invalid, unauthorized, or too old to serve.
Configuration sync pricing is per environment request, not per user. Both 200 and 304 config responses count as a sync; 304 avoids response bytes.