Feature flags (SDK)
Pour la création de flags, le ciblage et la mécanique de rollout, lisez le guide des feature flags. Cette page décrit la surface du SDK.
Lire les flags
Section intitulée « Lire les flags »// Vérification booléenne — false tant que les flags ne sont pas chargés, false pour les clés inconnuesif (kilden.isFeatureEnabled('new-checkout')) { renderNewCheckout();}
// Valeur complète — flag booléen ou clé de variante d'un flag multivariéconst variant = kilden.getFeatureFlag('pricing-test'); // true | false | "variant-b" | undefinedisFeatureEnabled(key: string): boolean;getFeatureFlag(key: string): boolean | string | undefined;Les flags sont chargés depuis POST {apiHost}/decide à l’init et mis en cache en mémoire pour la durée de la session. Aucun des deux getters ne bloque jamais :
isFeatureEnabledrenvoiefalsetant que les flags ne sont pas chargés.getFeatureFlagrenvoieundefinedtant que les flags ne sont pas chargés — vous pouvez donc distinguer « désactivé » (false) de « pas encore chargé » (undefined). Chaque flag du projet est présent dans chaque réponse (les inactifs commefalse), donc une clé absente après le chargement signifie que le flag n’existe pas.
onFeatureFlags()
Section intitulée « onFeatureFlags() »kilden.onFeatureFlags((flags) => { // flags : Record<string, boolean | string> setupUi(flags['new-checkout'] === true);});Le callback se déclenche au premier chargement des flags, à chaque rechargement, et immédiatement si vous vous abonnez alors qu’ils sont déjà chargés. Utilisez-le pour éviter de faire le rendu avant que les flags soient connus.
Quand les flags se rechargent
Section intitulée « Quand les flags se rechargent »Les flags se rechargent automatiquement après identify() et reset() — l’évaluation dépend du distinct id, donc le SDK converge tout de suite vers les valeurs du nouvel identifiant. Comme le bucketing hache le distinct id, un utilisateur proche d’une frontière de rollout peut légitimement changer de côté en passant d’anonyme à identifié ; voir le guide pour comprendre pourquoi.
Il n’y a pas d’option de bootstrap : la première évaluation d’un chargement de page est toujours un appel asynchrone à /decide. Conditionnez l’UI dépendante des flags sur onFeatureFlags plutôt que de supposer des valeurs au démarrage.
Événements d’exposition
Section intitulée « Événements d’exposition »Le premier accès à un flag par session — via l’un ou l’autre getter — émet un événement $feature_flag_called avec $flag_key et $flag_value, qui alimente les graphiques d’exposition dans le panel. La déduplication est indexée sur $session_id et survit aux rechargements de page ; elle se réinitialise quand la session est régénérée. Les clés de flags inconnues n’émettent rien.
En opt-out, /decide n’est pas appelé ; les valeurs en cache continuent de répondre.