Installer des Plugins

Sur cette page

Les plugins EmDash peuvent être installés de deux façons : depuis le marketplace via le panneau 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 panneau d’administration inclut un navigateur de marketplace où vous pouvez chercher, installer et gérer des plugins.

Prérequis

Pour installer des plugins du marketplace, votre site a besoin de :

  1. Runner sandbox configuré — Les plugins du marketplace s’exécutent dans un runtime isolé, ce qui nécessite le runner sandbox. 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",
        }),
      ],
    });

    Sur Cloudflare Workers, le sandboxing utilise l’API Dynamic Worker Loader (aucune configuration supplémentaire nécessaire). Sur Node.js, installez le runner sandbox workerd :

    npm install @emdash-cms/sandbox-workerd

    Puis passez le runner explicitement :

    emdash({
      marketplace: "https://marketplace.emdashcms.com",
      sandboxRunner: "@emdash-cms/sandbox-workerd/sandbox",
    })

    En développement, installez miniflare comme dépendance de développement pour un démarrage sandbox plus rapide :

    npm install -D miniflare
  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étail — README, captures d’écran, capacités et résultats d’audit de sécurité
  4. Cliquez sur Installer
  5. Examinez le dialogue de consentement des capacités — celui-ci montre ce à 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 runner sandbox. Il est actif immédiatement.

Consentement des Capacités

Avant l’installation, vous verrez un dialogue listant ce dont le plugin a besoin comme accès :

CapacitéCe que cela signifie
content:readLire votre contenu
content:writeCréer, mettre à jour et supprimer du contenu
media:readAccéder à votre bibliothèque de médias
media:writeUploader et gérer les 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 subi un audit de sécurité automatisé. Le verdict de l’audit apparaît sur la carte du plugin :

  • Réussi — Aucun problème trouvé
  • Avertissement — Préoccupations mineures signalées (examinez les résultats)
  • Échoué — Problèmes de sécurité significatifs détectés

Vous pouvez consulter le rapport d’audit complet sur la page de détail du plugin, y compris les résultats individuels et leur gravité.

Mises à jour

Quand 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 changelog et tout changement de capacités
  4. Si la nouvelle version requiert des capacités supplémentaires, vous verrez un diff et devrez approuver
  5. Confirmez la mise à 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 garder ou supprimer les données stockées du plugin
  5. Confirmez

Le code sandbox du plugin est supprimé de votre bucket R2 et son exécution s’arrête 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 }),
      ],
    }),
  ],
});

Les plugins natifs :

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

Marketplace vs. configuration — quand utiliser lequel

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