Flags overview
Understand flag identity, typed values, environment configuration, targeting, and evaluation.
A feature flag is a typed decision key inside a project. Its definition describes identity and lifecycle. Its environment configurations determine what each runtime can serve.
Use a flag when application behaviour must change independently from deployment. Do not use a flag to replace authorization, durable business data, or configuration that can never tolerate a default.
The flag definition contains a stable key, display name, description, type, lifecycle kind, intent, cleanup information, and tags. The key and type become fixed after creation.

An environment configuration contains a typed fallback, ordered rules, client-exposure state, and kill-switch state. A flag can be configured in production but absent from development, or the reverse.
Creating a definition does not make it evaluable everywhere. Initialize the configuration in each active environment that should serve the flag.
For a valid configured flag, evaluation follows this order:
The caller default is used when FeatureGate cannot produce a valid typed value. Common causes are a missing, archived, unconfigured, or client-hidden flag, or use of the wrong typed getter.
Value getters return the final value. Details getters also return the evaluation reason and whether the caller default was used. Use details while validating configuration and diagnosing incidents.
Consider a boolean flag named new-checkout in production:
falsetruetruefalseA staff account matches the first rule. A non-staff Pro account may match the percentage rule. Every other configured caller receives the fallback. A caller using a string getter receives its string default.
Members, admins, and owners can create and configure flags. Viewers have non-secret read-only access. Flag changes write activity and may send notifications according to account preferences.
Context is supplied by the application and may be manipulated in a browser. Continue enforcing permissions and entitlements in trusted application code.
refresh().Continue with Flag types, environment configuration, or targeting rules.