Installer des plugins

Sur cette page

Les administrateurs peuvent installer des plugins sandboxés depuis le registre de plugins ou enregistrer des paquets npm dans astro.config.mjs. Les plugins basés sur la configuration peuvent s’exécuter dans le bac à sable ou dans le processus du site.

Se préparer aux installations depuis l’admin

Les installations depuis le registre nécessitent :

  • Un compte administrateur disposant de la permission plugins:manage.
  • Un stockage configuré pour les bundles de plugins téléchargés.
  • Un runner de bac à sable disponible.

Sur Cloudflare Workers, utilisez sandbox() de @emdash-cms/cloudflare :

import { sandbox } from "@emdash-cms/cloudflare";
import { defineConfig } from "astro/config";
import emdash from "emdash/astro";

export default defineConfig({
	integrations: [
		emdash({
			sandboxRunner: sandbox(),
		}),
	],
});

Le runner Cloudflare utilise Worker Loader pour créer un Worker distinct pour chaque plugin. Il nécessite le plan Workers Paid et une liaison worker_loaders nommée LOADER. Les plugins sandboxés accèdent aux API de contenu, de médias, de stockage, de réseau et d’e-mail via PluginBridge ; le point d’entrée Worker du site doit donc exporter cette classe.

Les modèles *-cloudflare exportent PluginBridge mais laissent la liaison Worker Loader en commentaire, afin que les nouveaux projets puissent être déployés sur le plan gratuit de Workers. Activez les plugins sandboxés lors de la génération du projet, ou suivez la configuration du bac à sable Cloudflare pour ajouter la liaison plus tard. L’assistant sandbox() lit la configuration Wrangler effective au moment du build. Sans LOADER, la navigation dans le registre reste disponible, mais les plugins sandboxés gérés par la configuration ne se chargent pas, et les demandes d’installation ou de mise à jour renvoient SANDBOX_NOT_AVAILABLE.

Sur Node.js, installez le runner et sa dépendance homologue workerd :

npm install @emdash-cms/sandbox-workerd workerd

Le processus workerd exécute le code du plugin séparément du serveur Node.js. Sélectionnez le runner dans l’intégration EmDash :

import { defineConfig } from "astro/config";
import emdash from "emdash/astro";

export default defineConfig({
	integrations: [
		emdash({
			sandboxRunner: "@emdash-cms/sandbox-workerd/sandbox",
		}),
	],
});

Consultez Configurer le bac à sable des plugins pour la configuration de développement, les exigences d’exécution, les limites de ressources et les erreurs liées à un runner indisponible sur les deux plateformes.

Installer depuis le registre

  1. Ouvrez Registry dans le panneau d’administration.
  2. Recherchez un plugin et ouvrez sa page de détail.
  3. Sélectionnez une version et examinez son éditeur, ses métadonnées, les permissions demandées et son état de vérification.
  4. Sélectionnez Install.
  5. Examinez dans la boîte de dialogue de consentement les identifiants de la version vérifiée et les permissions, puis confirmez.

EmDash vérifie les enregistrements signés actuels de l’éditeur et contrôle le bundle téléchargé avant de le charger via le runner de bac à sable. Le plugin apparaît sous Plugins, où vous pouvez le désactiver ou le configurer. Consultez Le registre de plugins pour le modèle complet de vérification et de confiance.

Examiner les permissions

La boîte de dialogue de consentement affiche chaque permission déclarée par le plugin. Les permissions courantes comprennent :

PermissionAccès accordé
content:readLire le contenu du site
content:writeCréer, mettre à jour et supprimer du contenu
content:revisions:readLire l’historique conservé des révisions du contenu
schema:readLire les définitions des collections et des champs
bylines:readLire les profils publics de signature et les crédits du contenu
redirects:readLire les règles de redirection
redirects:writeModifier la destination des visiteurs
media:readLire les métadonnées sûres des médias prêts
media:bytes:readLire le contenu des fichiers et le hachage de contenu des médias prêts
media:metadata:writeModifier le texte alternatif, les légendes et les points focaux des médias
media:writeTéléverser, remplacer et supprimer des médias
network:requestEnvoyer des requêtes à la liste d’hôtes autorisés du plugin

La boîte de dialogue identifie aussi les routes de plugin exposées comme outils Model Context Protocol (MCP) lorsqu’un plugin les déclare. Consultez Capabilities et sécurité pour le modèle de permissions complet.

Mettre à jour un plugin

  1. Ouvrez Plugins dans le panneau d’administration.
  2. Sélectionnez Check for updates.
  3. Sélectionnez Update sur un plugin du registre pour lequel une version est disponible.
  4. Examinez la boîte de dialogue de consentement, puis confirmez la mise à jour.

Les mises à jour du registre demandent une confirmation supplémentaire lorsqu’elles ajoutent des permissions ou des outils MCP, ou lorsqu’une route passe d’authentifiée à publique. EmDash conserve la version installée jusqu’à ce que vous approuviez le changement.

Les mises à jour explicites ne vont que vers l’avant. Les mises à jour qui suivent la dernière version du registre peuvent être annulées si l’éditeur retire la version la plus récente. Pour revenir à une version plus ancienne à un autre moment, désinstallez le plugin et installez cette version depuis sa page du registre. La désinstallation conserve les données stockées du plugin, sauf si vous choisissez de les supprimer.

Désinstaller un plugin

  1. Ouvrez Plugins dans le panneau d’administration et développez le plugin installé.
  2. Sélectionnez Uninstall.
  3. Sélectionnez Also delete plugin storage data uniquement si vous n’avez pas besoin des données stockées du plugin pour une réinstallation ultérieure.
  4. Confirmez la désinstallation.

EmDash supprime le bundle installé et cesse de charger le plugin. Les données de stockage du plugin sont conservées par défaut.

Installer depuis npm

Les plugins natifs et les plugins sandboxés gérés par la configuration s’installent comme dépendances npm. Suivez les instructions du paquet pour choisir plugins: [] ou sandboxed: [].

L’exemple suivant enregistre le plugin natif Field Kit :

import { defineConfig } from "astro/config";
import emdash from "emdash/astro";
import { fieldKitPlugin } from "@emdash-cms/plugin-field-kit";

export default defineConfig({
	integrations: [
		emdash({
			plugins: [fieldKitPlugin()],
		}),
	],
});

Les plugins gérés par la configuration changent lorsque vous mettez à jour la dépendance npm et déployez le site. Ils ne peuvent pas être installés ni supprimés depuis le panneau d’administration.

Choisir une méthode d’installation

Registrenpm avec sandboxed: []npm avec plugins: []
Installation et mise à jourPanneau d’administrationModification de la dépendance et déploiementModification de la dépendance et déploiement
ExécutionRunner de bac à sable configuréRunner de bac à sable configuréProcessus du site
Accès à EmDashUniquement les API de plugin déclaréesUniquement les API de plugin déclaréesAPI de plugin déclarées, plus accès direct au processus
API Node.js et fetch() directIndisponibleIndisponibleDisponible
Composants d’administration ReactIndisponibleIndisponibleDisponible
Moteurs de rendu Portable TextIndisponibleIndisponibleDisponible

Utilisez un plugin natif lorsqu’il a besoin de composants d’administration React, de moteurs de rendu Portable Text, de fragments de page ou d’un accès direct au processus du site. Utilisez un plugin sandboxé lorsqu’il peut fonctionner via les API de plugin déclarées.