Extensions

Les extensions sont des modules optionnels qui ajoutent de nouvelles fonctionnalités à votre CMS sans toucher au cœur du système. Conversion automatique des images en WebP, intégration d'outils tiers (SureFeedback, BugHerd…), connecteurs SEO, automatisations spécifiques à votre métier : tout passe par le système d'extensions, à la manière des plugins WordPress.

À retenir — Une extension n'est ni dangereuse ni définitive. Vous pouvez l'installer, la tester, la désactiver, la réinstaller sans casser votre site. Les données qu'elle a créées restent en place tant que vous ne désinstallez pas complètement.

Vue d'ensemble du système

Le Labo du Yeti embarque un système d'extensions complet inspiré de WordPress, mais pensé pour rester sobre et sécurisé. Chaque extension est un dossier compressé (.zip) contenant son propre code, sa configuration et la liste exacte des permissions dont elle a besoin pour fonctionner. Avant l'installation, vous voyez précisément ce qu'elle compte faire (écrire dans le blog ? appeler l'IA ? écrire des fichiers ?) et vous validez ou refusez.

Trois principes guident le système :

Accéder au module Extensions

Le module se trouve dans la sidebar, section Configuration → Extensions. Seuls les rôles Administrateur, Chef projet et Webmaster peuvent installer, activer ou désinstaller une extension. Les éditeurs (rôle Client) n'ont pas accès à cette zone : c'est volontaire, l'installation d'extensions est une tâche d'administration.

Capability requise — Si vous ne voyez pas l'entrée « Extensions » dans la sidebar, vérifiez avec votre owner que la capability extensions est bien activée pour votre rôle dans Réglages → Permissions.

Installer une extension

L'installation se fait en quatre étapes simples. Préparez d'abord le fichier .zip de l'extension : il vous est fourni par l'éditeur de l'extension, ou téléchargé depuis votre outil de gestion d'extensions interne.

  1. Ouvrir le module — Sidebar → Configuration → Extensions. Vous arrivez sur la liste des extensions déjà installées (vide la première fois).
  2. Lancer l'installation — Cliquer sur le bouton orange « Installer une extension » en haut à droite. Une fenêtre de téléversement s'ouvre.
  3. Téléverser le fichier .zip — Glisser-déposer votre fichier dans la zone, ou cliquer pour parcourir vos dossiers. L'extension doit contenir un fichier extension.json valide (le manifeste) ainsi que le code de l'extension. Taille maximale : 10 Mo.
  4. Valider les permissions — Un écran de confirmation affiche les permissions demandées par l'extension. Lisez-les attentivement avant de cliquer sur « Installer ».

L'écran de confirmation des permissions

C'est l'écran le plus important du processus. Avant tout déploiement, le CMS vous présente la liste exacte des capacités demandées par l'extension, traduites en français lisible. Par exemple :

Permission techniqueSignification concrète
cms.blog.writeL'extension pourra créer ou modifier des articles de blog.
cms.ai.useL'extension pourra utiliser l'IA configurée (Claude, GPT…) en consommant votre quota.
storage.writeL'extension pourra écrire des fichiers dans son propre dossier de stockage.
cms.media.readL'extension pourra lister vos médias (sans pouvoir les supprimer si la permission write n'est pas demandée).
cms.pages.writeL'extension pourra créer ou modifier des pages.
Prenez le temps de lire — Une extension qui demande cms.blog.write alors qu'elle est censée juste convertir des images en WebP, c'est suspect. Refusez en cas de doute. Vous pouvez toujours réinstaller plus tard si l'éditeur corrige son manifeste.

Cliquez sur « Installer » pour valider, ou sur « Annuler » pour abandonner. Si vous validez, le CMS :

La liste des extensions installées

Une fois installée, l'extension apparaît dans la liste principale du module. Chaque ligne affiche :

Actions disponibles sur une extension

ActionEffetDonnées conservées ?
ActiverBranche les hooks, ajoute les routes, injecte la sidebar dynamique. L'extension reprend son travail immédiatement.Oui (tout).
DésactiverDébranche les hooks, démonte les routes. L'extension est mise en veille, sans aucun effet sur le site.Oui (fichiers et données préservés).
RéglagesOuvre la page de configuration spécifique à l'extension (si elle en propose une).
DésinstallerSupprime complètement l'extension : dossier, base de données, configuration. Action irréversible.Non (tout est purgé via cascade).
Désactiver ≠ Désinstaller — La désactivation est faite pour les tests : vous mettez l'extension en pause, vous observez, puis vous la réactivez en un clic sans rien perdre. La désinstallation est définitive : utilisez-la quand vous êtes sûr de ne plus vouloir de cette extension.

Configurer une extension

La plupart des extensions ont besoin d'un minimum de configuration : une clé API, un identifiant de compte tiers, un script à injecter, un seuil de compression… C'est ce que propose le bouton Réglages.

Selon l'extension, vous tomberez sur :

Toutes les valeurs que vous saisissez sont stockées dans une zone réservée à l'extension. Elles survivent à une désactivation/réactivation, mais sont effacées lors d'une désinstallation.

Une extension peut, si son manifeste le déclare, ajouter ses propres entrées dans la sidebar du CMS. Vous verrez alors apparaître une nouvelle section, généralement appelée « Extensions », juste après les sections natives (Contenu, Marketing, Configuration).

Par exemple, une extension Newsletter pourra ajouter une entrée « Abonnés » et une entrée « Campagnes », accessibles d'un clic depuis la sidebar. Une extension Statistiques pourra ajouter une entrée « Trafic ».

Astuce — Si une extension ajoute trop d'entrées ou les place dans une section qui ne vous plaît pas, vous pouvez la déplacer dans une autre section depuis le bouton Réglages de l'extension (option « Section sidebar »).

Contrôler qui peut utiliser quoi

Installer une extension ne signifie pas que tous vos utilisateurs y ont accès. Par défaut, les fonctionnalités d'une extension sont désactivées côté capabilities pour tous les rôles, sauf pour l'owner qui voit tout. C'est volontaire : c'est à vous de décider qui peut utiliser quoi.

Pour activer une fonctionnalité d'extension pour un rôle donné :

  1. Sidebar → Réglages → Permissions.
  2. Repérer la ligne correspondant à la feature ajoutée par l'extension (elle apparaît dans la liste avec un libellé clair).
  3. Cocher la case du ou des rôles autorisés (par exemple, donner accès à Chef projet et Webmaster, mais pas à Client).
  4. Enregistrer. L'effet est immédiat.

Comprendre les statuts d'extension

StatutCouleurCe qu'il signifie
ActiveVertL'extension est chargée, ses hooks tournent, tout est opérationnel.
InactiveGrisL'extension est installée mais en pause. Vous pouvez l'activer à tout moment.
FailedRougeUne erreur est survenue au chargement (manifeste invalide, dépendance manquante, code en panne). Un message d'erreur est consultable.

En cas de statut Failed, ouvrez la fiche de l'extension : le message d'erreur précis y est affiché, ainsi que dans les logs (Outils → Logs). C'est généralement une dépendance npm absente ou un fichier de l'extension corrompu pendant le téléversement. Désinstallez puis réinstallez le .zip pour repartir sur une base propre.

Les extensions livrées avec le CMS

Le Labo du Yeti est livré avec quelques extensions de démonstration que vous pouvez activer pour découvrir le système :

Cycle de vie complet d'une extension

Pour bien comprendre, voici le parcours type d'une extension dans le CMS :

  1. Téléversement du .zip via le bouton « Installer une extension ».
  2. Validation des permissions par vous, sur l'écran de confirmation.
  3. Installation automatique : décompression, npm install si nécessaire, enregistrement en base.
  4. Activation immédiate : hooks branchés, routes ajoutées, sidebar éventuellement modifiée.
  5. Configuration via le bouton Réglages si l'extension a des paramètres à définir.
  6. Autorisation par rôle dans la matrice des Permissions, pour exposer la feature aux bonnes personnes.
  7. Utilisation quotidienne : l'extension fait son travail, ajoute ses entrées, déclenche ses automatisations.
  8. Désactivation ponctuelle si vous voulez la mettre en pause (debug, test, conflit temporaire).
  9. Désinstallation finale si vous ne souhaitez plus du tout l'utiliser : tout est purgé proprement.

Bonnes pratiques

Sécurité du système d'extensions

Quelques garde-fous techniques à connaître pour rassurer vos utilisateurs (et vous-même) :

En résumé — Les extensions vous permettent d'enrichir votre CMS au fil du temps, sans toucher au cœur du système. Installation guidée, permissions transparentes, désactivation réversible, désinstallation propre : tout est pensé pour que vous gardiez le contrôle. Commencez petit, testez, puis adoptez progressivement les extensions qui vous font gagner du temps.

Pour aller plus loin

Si vous (ou votre équipe technique) souhaitez développer vos propres extensions, consultez la documentation technique des extensions : architecture, hooks disponibles, helpers du contexte CMS, format du manifeste, exemples concrets.

Pour gérer finement les accès aux fonctionnalités ajoutées par vos extensions, voyez la page RBAC et capabilities.