Administratoren können Sandboxed Plugins aus dem Plugin-Registry installieren oder npm-Pakete in astro.config.mjs registrieren. Konfigurationsbasierte Plugins können in der Sandbox oder im Prozess der Site laufen.
Auf Admin-Installationen vorbereiten
Registry-Installationen erfordern:
- Ein Administratorkonto mit der Berechtigung
plugins:manage. - Konfigurierten Speicher für heruntergeladene Plugin-Bundles.
- Einen verfügbaren Sandbox-Runner.
Verwenden Sie auf Cloudflare Workers sandbox() aus @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(),
}),
],
});
Der Cloudflare-Runner verwendet Worker Loader, um für jedes Plugin einen eigenen Worker zu erstellen. Er erfordert den Workers-Paid-Tarif und ein worker_loaders-Binding namens LOADER. Sandboxed Plugins greifen über PluginBridge auf die APIs für Inhalte, Medien, Speicher, Netzwerk und E-Mail zu, daher muss der Worker-Einstiegspunkt der Site diese Klasse exportieren.
Die *-cloudflare-Templates exportieren PluginBridge, lassen das Worker-Loader-Binding aber auskommentiert, damit neue Projekte im kostenlosen Workers-Tarif bereitgestellt werden können. Aktivieren Sie Sandboxed Plugins beim Scaffolding oder folgen Sie der Cloudflare-Sandbox-Einrichtung, um das Binding später hinzuzufügen. Der Helfer sandbox() liest die wirksame Wrangler-Konfiguration zur Build-Zeit. Ohne LOADER bleibt das Durchsuchen des Registrys möglich, aber konfigurationsverwaltete Sandboxed Plugins werden nicht geladen, und Installations- oder Aktualisierungsanfragen liefern SANDBOX_NOT_AVAILABLE.
Installieren Sie unter Node.js den Runner und seine Peer-Abhängigkeit workerd:
npm install @emdash-cms/sandbox-workerd workerd
Der workerd-Prozess führt den Plugin-Code getrennt vom Node.js-Server aus. Wählen Sie den Runner in der EmDash-Integration aus:
import { defineConfig } from "astro/config";
import emdash from "emdash/astro";
export default defineConfig({
integrations: [
emdash({
sandboxRunner: "@emdash-cms/sandbox-workerd/sandbox",
}),
],
});
Unter Plugin-Sandbox konfigurieren finden Sie die Einrichtung für die Entwicklung, die Laufzeitanforderungen, Ressourcenlimits und die Fehler bei nicht verfügbarem Runner auf beiden Plattformen.
Aus dem Register installieren
- Öffnen Sie Registry im Admin-Panel.
- Suchen Sie nach einem Plugin und öffnen Sie dessen Detailseite.
- Wählen Sie ein Release aus und prüfen Sie dessen Herausgeber, Metadaten, angeforderte Berechtigungen und Verifizierungsstatus.
- Wählen Sie Install.
- Prüfen Sie im Zustimmungsdialog die verifizierten Release-Kennungen und Berechtigungen und bestätigen Sie dann.
EmDash verifiziert die aktuellen signierten Einträge des Herausgebers und prüft das heruntergeladene Bundle, bevor es über den Sandbox-Runner geladen wird. Das Plugin erscheint unter Plugins, wo Sie es deaktivieren oder konfigurieren können. Das vollständige Verifizierungs- und Vertrauensmodell finden Sie unter Das Plugin-Registry.
Berechtigungen prüfen
Der Zustimmungsdialog zeigt jede vom Plugin deklarierte Berechtigung an. Zu den üblichen Berechtigungen gehören:
| Berechtigung | Gewährter Zugriff |
|---|---|
content:read | Inhalte der Site lesen |
content:write | Inhalte erstellen, aktualisieren und löschen |
content:revisions:read | Den aufbewahrten Revisionsverlauf von Inhalten lesen |
schema:read | Definitionen von Sammlungen und Feldern lesen |
bylines:read | Öffentliche Byline-Profile und Inhaltsnachweise lesen |
redirects:read | Weiterleitungsregeln lesen |
redirects:write | Ändern, wohin Besucher geleitet werden |
media:read | Unbedenkliche Metadaten bereiter Medien lesen |
media:bytes:read | Dateiinhalte und Inhalts-Hash bereiter Medien lesen |
media:metadata:write | Alternativtext, Bildunterschriften und Fokuspunkte von Medien ändern |
media:write | Medien hochladen, ersetzen und löschen |
network:request | Anfragen an die zulässige Hostliste des Plugins senden |
Der Dialog kennzeichnet außerdem Plugin-Routen, die als Model-Context-Protocol-Tools (MCP) bereitgestellt werden, wenn ein Plugin sie deklariert. Das vollständige Berechtigungsmodell finden Sie unter Capabilities und Sicherheit.
Ein Plugin aktualisieren
- Öffnen Sie Plugins im Admin-Panel.
- Wählen Sie Check for updates.
- Wählen Sie Update bei einem Registry-Plugin mit verfügbarem Release.
- Prüfen Sie den Zustimmungsdialog und bestätigen Sie dann die Aktualisierung.
Registry-Updates erfordern eine weitere Bestätigung, wenn sie Berechtigungen oder MCP-Tools hinzufügen oder wenn eine Route von authentifiziert auf öffentlich wechselt. EmDash belässt die installierte Version, bis Sie die Änderung genehmigen.
Explizite Updates gehen nur vorwärts. Updates, die dem neuesten Release des Registrys folgen, können zurückgerollt werden, wenn der Herausgeber das neueste Release zurückzieht. Um zu einem anderen Zeitpunkt zu einem älteren Release zurückzukehren, deinstallieren Sie das Plugin und installieren Sie diese Version von seiner Registry-Seite. Beim Deinstallieren bleiben die gespeicherten Daten des Plugins erhalten, sofern Sie sich nicht für das Löschen entscheiden.
Ein Plugin deinstallieren
- Öffnen Sie Plugins im Admin-Panel und klappen Sie das installierte Plugin auf.
- Wählen Sie Uninstall.
- Wählen Sie Also delete plugin storage data nur, wenn Sie die gespeicherten Daten des Plugins für eine spätere Neuinstallation nicht benötigen.
- Bestätigen Sie die Deinstallation.
EmDash entfernt das installierte Bundle und lädt das Plugin nicht mehr. Die Speicherdaten des Plugins bleiben standardmäßig erhalten.
Aus npm installieren
Native Plugins und konfigurationsverwaltete Sandboxed Plugins werden als npm-Abhängigkeiten installiert. Folgen Sie den Anweisungen des Pakets, um plugins: [] oder sandboxed: [] zu wählen.
Das folgende Beispiel registriert das native Plugin 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()],
}),
],
});
Konfigurationsverwaltete Plugins ändern sich, wenn Sie die npm-Abhängigkeit aktualisieren und die Site bereitstellen. Sie können nicht im Admin-Panel installiert oder entfernt werden.
Eine Installationsmethode wählen
| Registry | npm mit sandboxed: [] | npm mit plugins: [] | |
|---|---|---|---|
| Installation und Aktualisierung | Admin-Panel | Abhängigkeit ändern und bereitstellen | Abhängigkeit ändern und bereitstellen |
| Ausführung | Konfigurierter Sandbox-Runner | Konfigurierter Sandbox-Runner | Prozess der Site |
| Zugriff auf EmDash | Nur deklarierte Plugin-APIs | Nur deklarierte Plugin-APIs | Deklarierte Plugin-APIs plus direkter Prozesszugriff |
Node.js-APIs und direktes fetch() | Nicht verfügbar | Nicht verfügbar | Verfügbar |
| React-Admin-Komponenten | Nicht verfügbar | Nicht verfügbar | Verfügbar |
| Portable-Text-Renderer | Nicht verfügbar | Nicht verfügbar | Verfügbar |
Verwenden Sie ein natives Plugin, wenn es React-Admin-Komponenten, Portable-Text-Renderer, Seitenfragmente oder direkten Zugriff auf den Prozess der Site benötigt. Verwenden Sie ein Sandboxed Plugin, wenn es über die deklarierten Plugin-APIs arbeiten kann.