Installation des Plugins

Sur cette page

Les plugins EmDash peuvent être installés de deux manières : depuis le marketplace via le tableau de bord d’administration, ou ajoutés directement dans votre configuration Astro. Les plugins du marketplace s’exécutent toujours en sandbox ; les plugins basés sur la configuration s’exécutent en sandbox ou en processus selon le tableau dans lequel ils sont déclarés (sandboxed: [] vs plugins: []).

Depuis le Marketplace

Le tableau de bord d’administration inclut un navigateur de marketplace où vous pouvez rechercher, installer et gérer des plugins.

Prérequis

Pour installer des plugins du marketplace, votre site nécessite :

  1. Sandbox runner configuré — Les plugins du marketplace s’exécutent dans un environnement isolé, ce qui nécessite le sandbox runner. La configuration suivante l’active :

    import { defineConfig } from "astro/config";
    import emdash from "emdash/astro";
    
    export default defineConfig({
      integrations: [
        emdash({
          marketplace: "https://marketplace.emdashcms.com",
          sandboxRunner: "@emdash-cms/sandbox-cloudflare",
        }),
      ],
    });
  2. Accès administrateur — Seuls les administrateurs peuvent installer ou supprimer des plugins.

Parcourir et Installer

  1. Ouvrez le panneau d’administration et naviguez vers Plugins > Marketplace
  2. Parcourez ou recherchez un plugin
  3. Cliquez sur la carte du plugin pour voir sa page de détails — README, captures d’écran, capacités et résultats d’audit de sécurité
  4. Cliquez sur Installer
  5. Examinez la boîte de dialogue de consentement des capacités — cela montre à quoi le plugin pourra accéder
  6. Confirmez l’installation

Le plugin sera téléchargé, stocké dans le bucket R2 de votre site et chargé dans le sandbox runner. Il est actif immédiatement.

Consentement des Capacités

Avant l’installation, vous verrez une boîte de dialogue listant ce à quoi le plugin a besoin d’accéder :

CapacitéSignification
content:readLire votre contenu
content:writeCréer, mettre à jour et supprimer du contenu
media:readAccéder à votre bibliothèque multimédia
media:writeTélécharger et gérer des médias
network:requestEffectuer des requêtes réseau vers des hôtes spécifiques

Audit de Sécurité

Chaque version de plugin dans le marketplace a été soumise à un audit de sécurité automatisé. Le verdict de l’audit apparaît sur la carte du plugin :

  • Pass — Aucun problème trouvé
  • Warn — Préoccupations mineures signalées (examinez les conclusions)
  • Fail — Problèmes de sécurité importants détectés

Vous pouvez consulter le rapport d’audit complet sur la page de détails du plugin, y compris les conclusions individuelles et leur gravité.

Mises à jour

Lorsqu’une version plus récente d’un plugin installé est disponible :

  1. Allez dans Plugins dans le panneau d’administration
  2. Les plugins du marketplace affichent un badge Mise à jour disponible
  3. Cliquez sur Mettre à jour pour voir le journal des modifications et les changements de capacités
  4. Si la nouvelle version nécessite des capacités supplémentaires, vous verrez une différence et devrez approuver
  5. Confirmez pour mettre à jour

Désinstallation

  1. Allez dans Plugins dans le panneau d’administration
  2. Cliquez sur le plugin du marketplace que vous souhaitez supprimer
  3. Cliquez sur Désinstaller
  4. Choisissez de conserver ou de supprimer les données stockées du plugin
  5. Confirmez

Le code sandbox du plugin est supprimé de votre bucket R2 et il cesse de s’exécuter immédiatement.

Depuis la Configuration

Les plugins natifs — votre propre code ou des packages installés via npm — sont ajoutés directement à la configuration Astro. L’exemple suivant enregistre le plugin SEO :

import { defineConfig } from "astro/config";
import emdash from "emdash/astro";
import seoPlugin from "@emdash-cms/plugin-seo";

export default defineConfig({
  integrations: [
    emdash({
      plugins: [
        seoPlugin({ generateSitemap: true }),
      ],
    }),
  ],
});

Plugins natifs :

  • S’exécutent en processus (pas en sandbox)
  • Ont un accès complet aux APIs Node.js
  • Sont chargés au moment de la compilation et à chaque démarrage du serveur
  • Ne peuvent pas être installés ou supprimés depuis l’interface d’administration

Marketplace vs. configuration — quand utiliser lequel

Marketplace (sandbox)Configuration (natif ou en processus en sandbox)
Méthode d’installationUn clic dans l’interface d’administrationModification du code + npm install + déploiement
ExécutionEnvironnement sandbox via le runner configuréEn processus (ou en sandbox si listé sous sandboxed: [] et un runner est disponible)
CapacitésAppliquées par le pont sandbox — contrôle ctx.* plus isolation d’exécutionContrôle ctx.* uniquement (les plugins en processus peuvent contourner via fetch() direct, env, imports)
APIs Node.jsNon disponiblesAccès complet (en processus uniquement)
Pages d’administration ReactNon (Block Kit à la place)Oui (plugins natifs)
Composants de rendu PTNonOui (plugins natifs)
Mises à jourUn clic dans l’administrationIncrémentation de version + déploiement
Idéal pourLa plupart des pluginsPlugins nécessitant une intégration au moment de la compilation