Retour au parcours

Les feature flags

Activer une fonctionnalité sans redéployer.

Un feature flag (ou « drapeau de fonctionnalité ») est un interrupteur qui permet d'activer ou de désactiver une fonctionnalité sans redéployer l'application. On livre le code une fois, puis on allume ou on éteint à la demande.

À quoi ça sert ?

Imagine un tableau électrique : chaque interrupteur commande une pièce de la maison. Un feature flag, c'est pareil pour l'application. On peut livrer une fonctionnalité « éteinte » et l'allumer plus tard, couper en urgence une fonctionnalité qui pose problème, ou réserver une nouveauté à certains profils — le tout sans nouvelle mise en production.

Des exemples concrets du projet

Voici quelques interrupteurs réellement présents dans MyuPrompt et ce qu'ils commandent.
export-csv

L'export CSV

Allumé par défaut. C'est un « interrupteur de secours » : si l'export pose problème, on l'éteint sans toucher au code ni redéployer.
import-csv

L'import de données

Éteint par défaut. La fonctionnalité est livrée « dans le noir » et restera invisible jusqu'à ce qu'on l'allume, le jour où l'assistant d'import est prêt.
sso-login

La connexion Microsoft

Allumé par défaut. Si le fournisseur d'identité tombe en panne, on peut couper ce bouton pour éviter d'afficher une connexion qui ne marche pas.
maintenance-mode

Le mode maintenance

Éteint par défaut. Un interrupteur qui permet d'afficher un message de maintenance à la volée, sans nouvelle livraison.

Comment ça marche ici

Trois pièces se combinent pour décider, à chaque visite, si une fonctionnalité s'affiche.
1

1. Le flag est déclaré dans le code

Chaque flag a un nom (ex. import-csv) et une valeur par défaut, définis dans le code. C'est la liste de tous les interrupteurs possibles de l'application.
2

2. Son état est rangé en base de données

Pour chaque flag, la base de données mémorise s'il est allumé ou éteint, et éventuellement les rôles autorisés à en profiter. C'est ce qui permet de changer son état sans toucher au code.
3

3. Il est résolu au moment de l'exécution

Quand un utilisateur ouvre une page, l'application regarde l'état du flag : une consigne d'environnement prioritaire, sinon la base de données (avec le contrôle des rôles), sinon la valeur par défaut. Le résultat décide d'afficher ou non la fonctionnalité.

Les rôles autorisés

Un flag peut être réservé à certains rôles. Dans ce cas, la fonctionnalité ne s'allume que pour les personnes ayant le bon profil — pratique pour tester une nouveauté auprès des administrateurs avant de l'ouvrir à tout le monde.

Allumer sans redéployer

Changer l'état d'un flag est immédiat : aucun nouveau déploiement n'est nécessaire. C'est tout l'intérêt — réagir vite, sans repasser par le pipeline.

Où active-t-on les flags ?

Il y a deux endroits pour piloter un interrupteur, selon le besoin.
Admin

L'administration des flags (au quotidien)

Une interface d'administration réservée aux administrateurs permet de lister les flags, de les allumer ou les éteindre, et de définir les rôles autorisés. C'est la voie normale : le changement est pris en compte tout de suite et tracé dans le journal d'audit (qui a changé quoi, et quand).
Env

La consigne d'environnement (cas particuliers)

Pour les coupures d'urgence ou les réglages propres à un environnement (preprod, prod), l'équipe peut forcer l'état d'un flag via la configuration d'environnement. Cette consigne est prioritaire sur la base de données : utile pour un « kill switch » garanti, indépendamment de l'interface.

Capture annotée

Voici où trouver l'administration des flags et ce qu'on y pilote. Cette capture sera ajoutée prochainement.

L'administration des flags

Capture à venir

L'écran réservé aux administrateurs pour piloter les interrupteurs au quotidien.

1

Liste des flags chaque interrupteur de l’application avec son nom (ex. import-csv).

2

Interrupteur allumé / éteint on bascule l’état d’un flag d’un simple clic.

3

Rôles autorisés on choisit les profils qui profitent de la fonctionnalité.

4

Journal d’audit chaque changement est tracé : qui a changé quoi, et quand.

Accès réservé aux administrateurs

Allumer ou éteindre un flag a un effet immédiat sur ce que voient les utilisateurs. C'est pourquoi l'administration des flags est protégée et réservée aux profils administrateurs.