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 :
-
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", }), ], }); -
Accès administrateur — Seuls les administrateurs peuvent installer ou supprimer des plugins.
Parcourir et Installer
- Ouvrez le panneau d’administration et naviguez vers Plugins > Marketplace
- Parcourez ou recherchez un plugin
- 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é
- Cliquez sur Installer
- Examinez la boîte de dialogue de consentement des capacités — cela montre à quoi le plugin pourra accéder
- 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:read | Lire votre contenu |
content:write | Créer, mettre à jour et supprimer du contenu |
media:read | Accéder à votre bibliothèque multimédia |
media:write | Télécharger et gérer des médias |
network:request | Effectuer 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 :
- Allez dans Plugins dans le panneau d’administration
- Les plugins du marketplace affichent un badge Mise à jour disponible
- Cliquez sur Mettre à jour pour voir le journal des modifications et les changements de capacités
- Si la nouvelle version nécessite des capacités supplémentaires, vous verrez une différence et devrez approuver
- Confirmez pour mettre à jour
Désinstallation
- Allez dans Plugins dans le panneau d’administration
- Cliquez sur le plugin du marketplace que vous souhaitez supprimer
- Cliquez sur Désinstaller
- Choisissez de conserver ou de supprimer les données stockées du plugin
- 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’installation | Un clic dans l’interface d’administration | Modification du code + npm install + déploiement |
| Exécution | Environnement sandbox via le runner configuré | En processus (ou en sandbox si listé sous sandboxed: [] et un runner est disponible) |
| Capacités | Appliquées par le pont sandbox — contrôle ctx.* plus isolation d’exécution | Contrôle ctx.* uniquement (les plugins en processus peuvent contourner via fetch() direct, env, imports) |
| APIs Node.js | Non disponibles | Accès complet (en processus uniquement) |
| Pages d’administration React | Non (Block Kit à la place) | Oui (plugins natifs) |
| Composants de rendu PT | Non | Oui (plugins natifs) |
| Mises à jour | Un clic dans l’administration | Incrémentation de version + déploiement |
| Idéal pour | La plupart des plugins | Plugins nécessitant une intégration au moment de la compilation |