Activer par règles, couper d’un geste.
Un drapeau sert une valeur à votre code serveur : ouvrir une fonction à une part des visiteurs, la réserver à certains clients, régler un seuil, charger une configuration. Il peut suivre un test en cours, et se coupe partout au premier problème.
- Booléen, texte, nombre ou JSON
- Aucune règle dans vos pages : lecture par clé secrète
- Paiement en 3 fois
paiement-3-foisBooléenActif1 règle, puis selon le test « Paiement en 3 fois mis en avant » (a → Désactivé, b → Activé) - Filtres simplifiés sur mobile
filtres-mobile-v2BooléenActif1 règle, puis 50 % Activé (true) ; les autres : Désactivé (false) - Recherche instantanée
recherche-instantaneeBooléenCoupéPartout : Désactivé (false) - Seuil de livraison offerte
seuil-livraison-offerteNombreActifNouveau seuil (60) - Bandeau Black Friday
bandeau-black-fridayJSONEn préparationServi à personne tant qu’il n’est pas activé.
Lire la transcription
Ouvrir une fonction à quelques clients, et la couper si elle casse ? Un drapeau sert une valeur à votre code serveur, sans redéployer.
Les règles se lisent dans l’ordre. Pour « Recherche instantanée », chaque visiteur descend la pile : drapeau coupé, identifiants précis, attributs, règle par défaut. La première qui s’applique décide.
La part ne fait que monter. « Filtres simplifiés sur mobile » est passé de 10 % à 25 %, puis à 50 % des visiteurs. Le tirage se fait sur l’identifiant : un visiteur exposé le reste.
Vos serveurs lisent la valeur en local. Le client serveur relit la configuration toutes les 60 secondes. Sans réponse de Probant, votre code reçoit la valeur par défaut qu’il a passée.
Coupé partout en une minute au plus. 9 nov. à 18:42 : erreurs JavaScript en hausse sur Safari. La valeur « coupé » part aussitôt par l’API, et en 60 secondes au plus vers vos serveurs.
Ces drapeaux et leurs règles sont dans la démo, sans inscription.
Servir la bonne valeur, sans redéployer.
Les visuels viennent des drapeaux de la boutique de démonstration, mis en mots comme dans l’app.
Des règles lues dans un ordre connu.
Un drapeau coupé sert sa valeur « coupé ». Sinon, les identifiants précis passent d’abord, puis les règles par attributs, dans l’ordre : la première qui s’applique décide. La règle par défaut sert tous les autres.
Les attributs viennent de votre serveur : plan, pays, version de l’application, nombre de commandes. Rien n’est déduit du navigateur, et un attribut absent ne remplit aucune condition.
- Chaque règle sert une valeur fixe, un pourcentage ou la variante d’un test
- Les conditions d’une même règle doivent toutes être remplies
- Si le drapeau est coupéDésactivé (false)
- Identifiant parmi equipe-maison-luneActivé (true)
- Si version-app version ≥ 4.2.0 et pays est dans la liste FR, BE25 % Activé (true) ; les autres : Désactivé (false)
- Si commandes nombre ≥ 3Activé (true)
- Sinon (règle par défaut)Désactivé (false)
version-apppayscommandesUn pourcentage qui ne fait que monter.
Le tirage se fait sur l’identifiant, avec le même hachage que l’affectation des tests : un visiteur reçoit la même valeur sur tous vos serveurs. Pour « Filtres simplifiés sur mobile », la part est passée de 10 % à 50 % ; à chaque montée, les visiteurs déjà exposés l’ont gardée.
- Une part qui descend est refusée à l’enregistrement : des visiteurs exposés changeraient de valeur
- Pour revenir en arrière, on coupe le drapeau ou l’on sert une valeur fixe
Un drapeau peut suivre un test en cours.
Le drapeau « Paiement en 3 fois » rend la valeur liée à la variante du visiteur dans le test « Paiement en 3 fois mis en avant ». La variante vient de la même affectation que le script : groupe témoin, tranches, poids et consentement compris. Avec le cookie probant_id, votre serveur obtient la même variante que la page.
Hors du test, la valeur de l’originale est servie et rien n’est compté. Les expositions envoyées par votre serveur sont vérifiées, variante recalculée, et un visiteur vu aussi par le script ne compte qu’une fois. Les résultats restent ceux du test.
- Un test à audience ou à déclencheur se décide dans le navigateur : un drapeau ne peut pas le suivre
equipe-maison-luneActivé (true)identifiant précis, avant le testLa coupure d’urgence n’attend personne.
« Couper partout » sert la valeur « coupé » sans demander d’approbation à un éditeur ou à un propriétaire : c’est une action de sécurité. Servie aussitôt par l’API d’évaluation, et par les SDK serveur à leur prochain rafraîchissement : 60 secondes au plus avec le réglage par défaut.
Le drapeau « Recherche instantanée » a été coupé le 9 nov. à 18:42 par Inès Martin : erreurs JavaScript en hausse sur Safari.
- Réactiver un drapeau coupé suit la même règle qu’un lancement
- Chaque coupure est consignée au journal : qui, quand, pourquoi, valeur servie
Sur Slack ou par webhook si l’espace l’a choisie ; la coupure est consignée au journal.
Votre site n’attend jamais Probant.
Le client serveur relit la configuration toutes les 60 secondes par défaut et évalue chaque drapeau en local, sans appel par requête. Si Probant ne répond pas, la dernière configuration sert ; sans elle, votre code reçoit la valeur par défaut qu’il a passée. Aucune méthode ne lève d’erreur.
Ce client fait partie du paquet de l’aide serveur, pas encore publié sur npm. Pour PHP, Python, Ruby ou Go, l’API d’évaluation répond à chaque appel et sert une coupure aussitôt.
- Clé secrète seulement : la configuration lue par vos pages ne contient aucun drapeau, aucune règle, aucune valeur
- Les attributs passés à l’évaluation ne sont ni stockés ni journalisés
- Une requête venue d’une page web est refusée
const flags = createFlagClient({ key: process.env.PROBANT_SECRET_KEY, // clé de gestion, rôle lecture endpoint: "https://app.probant.app", }); const actif = await flags.boolean("paiement-3-fois", false, { id: visiteur, // cookie probant_id ou identifiant de compte attributes: { plan: "pro" }, }); // sans réponse de Probant : false, la valeur par défaut passée
Dans le détail.
- Types
- Booléen, texte, nombre et JSON ; de 2 à 10 valeurs par drapeau, 8 Ko au plus pour une valeur JSON.
- États
- En préparation, actif, coupé et archivé. Un drapeau naît en préparation, servi à personne ; archivé, il garde son historique.
- Règles
- 50 règles au plus, de 10 conditions chacune, toutes requises ; 1 000 identifiants précis au plus.
- Opérateurs
- « est égal à », « est dans la liste », « contient », « commence par », « nombre ≥ », « nombre ≤ », « version ≥ » et « version ≤ ».
- Contexte
- Un identifiant de 128 caractères au plus et 50 attributs, texte de 256 caractères, nombre ou booléen. Ni stockés ni journalisés.
- Rafraîchissement
- Le client serveur relit la configuration toutes les 60 secondes par défaut et évalue en local ; l’API d’évaluation sert chaque changement aussitôt.
- Débit
- 6 000 requêtes par minute et par clé pour la configuration, l’évaluation et les expositions.
- Qui peut quoi
- Préparer des drapeaux : propriétaire, éditeur et contributeur ; le changement servi d’un contributeur devient une demande. Activer et couper les drapeaux : propriétaire et éditeur. Si l’espace exige l’approbation des lancements, tout changement servi attend un autre membre, sauf la coupure.
- Gestion
- Depuis l’app, l’API de gestion ou le serveur MCP : créer, modifier, activer, couper, archiver. Activer ou couper par le MCP demande une confirmation explicite. Chaque écriture est consignée au journal.
Questions fréquentes.
Quelle différence avec un déploiement ?
Un déploiement monte par paliers la variante gagnante d’un test, sous garde-fous, avec retour arrière automatique. Un drapeau sert une valeur à votre code : une fonction, un seuil, une configuration, et c’est vous qui le coupez. Un drapeau qui suit un test suit aussi son déploiement.
Les drapeaux se lisent-ils dans le navigateur ?
Pas aujourd’hui : le script de vos pages ne lit aucun drapeau, et la configuration publique n’en contient aucun. Les drapeaux se lisent sur votre serveur, par le client serveur ou par l’API d’évaluation.
Que reçoit mon code si Probant ne répond pas ?
La dernière configuration lue, gardée en mémoire. Au démarrage, sans configuration, la valeur par défaut que votre code passe à chaque lecture. L’évaluation ne lève jamais d’erreur.
Faut-il un drapeau par environnement ?
Un drapeau vaut pour tout l’espace. Pour séparer la recette de la production, utilisez un espace par environnement.
Probant Ou pas encore…
Créez votre espace, ou explorez d’abord la démo avec les données d’une boutique fictive.
- Démo ouverte, sans inscription
- Forfait fixe, jamais de dépassement
- Données hébergées à Paris