Plugins installieren

Auf dieser Seite

Administratoren können sandboxed Plugins aus dem Plugin-Register installieren oder npm-Pakete in astro.config.mjs registrieren. Konfigurationsbasierte Plugins können in der Sandbox oder im Site-Prozess laufen.

Auf Admin-Installationen vorbereiten

Register-Installationen erfordern:

  • Ein Administratorkonto mit der Berechtigung plugins:manage.
  • Konfigurierten Speicher für heruntergeladene Plugin-Bundles.
  • Einen verfügbaren Sandbox-Runner.

Auf Cloudflare Workers verwenden Sie 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 separaten Worker zu erstellen. Er erfordert den Workers Paid-Plan und ein worker_loaders-Binding namens LOADER. Sandboxed Plugins erreichen Content-, Medien-, Speicher-, Netzwerk- und E-Mail-APIs über PluginBridge, daher muss der Worker-Einstiegspunkt der Site diese Klasse exportieren.

Die *-cloudflare-Vorlagen exportieren PluginBridge, lassen das Worker-Loader-Binding aber auskommentiert, sodass neue Projekte auf dem Workers-Free-Plan deployen können. Aktivieren Sie sandboxed Plugins beim Scaffolding oder folgen Sie der Cloudflare-Sandbox-Einrichtung, um das Binding später hinzuzufügen. Der Helper sandbox() liest die effektive Wrangler-Konfiguration zur Build-Zeit. Ohne LOADER bleibt das Durchsuchen des Registers verfügbar, aber konfigurationsverwaltete sandboxed Plugins werden nicht geladen und Installations- oder Update-Anfragen geben SANDBOX_NOT_AVAILABLE zurück.

Unter Node.js installieren Sie den Runner und seine workerd-Peer-Abhängigkeit:

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:

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

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

Siehe Plugin-Sandbox für Entwicklungseinrichtung, Runtime-Anforderungen, Ressourcenlimits und Fehler bei nicht verfügbarem Runner auf beiden Plattformen.

Aus dem Register installieren

  1. Öffnen Sie Registry im Admin-Panel.
  2. Suchen Sie nach einem Plugin und öffnen Sie seine Detailseite.
  3. Wählen Sie eine Release und prüfen Sie Publisher, Metadaten, angeforderte Berechtigungen und Verifizierungsstatus.
  4. Wählen Sie Install.
  5. Prüfen Sie die verifizierten Release-Kennungen und Berechtigungen im Zustimmungsdialog und bestätigen Sie.

EmDash verifiziert die aktuellen signierten Records des Publishers 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. Siehe Das Plugin-Register für das vollständige Verifizierungs- und Vertrauensmodell.

Berechtigungen prüfen

Der Zustimmungsdialog zeigt jede vom Plugin deklarierte Berechtigung. Häufige Berechtigungen sind:

BerechtigungGewährter Zugriff
content:readSite-Inhalte lesen
content:writeInhalte erstellen, aktualisieren und löschen
content:revisions:readBehaltenen Inhalts-Revisionsverlauf lesen
schema:readCollection- und Felddefinitionen lesen
redirects:readWeiterleitungsregeln lesen
redirects:writeÄndern, wohin Besucher gesendet werden
media:readSichere Metadaten für bereite Medien lesen
media:bytes:readDateiinhalt und Inhalts-Hash bereiter Medien lesen
media:metadata:writeMedien-Alt-Text, Bildunterschriften und Fokuspunkte ändern
media:writeMedien hochladen, ersetzen und löschen
network:requestAnfragen an die erlaubte Host-Liste des Plugins senden

Der Dialog kennzeichnet auch Plugin-Routen, die als Model Context Protocol (MCP)-Tools freigelegt sind, wenn ein Plugin sie deklariert. Siehe Capabilities und Sicherheit für das vollständige Berechtigungsmodell.

Ein Plugin aktualisieren

  1. Öffnen Sie Plugins im Admin-Panel.
  2. Wählen Sie Check for updates.
  3. Wählen Sie Update bei einem Register-Plugin mit einer verfügbaren Release.
  4. Prüfen Sie den Zustimmungsdialog und bestätigen Sie das Update.

Register-Updates erfordern erneut eine Bestätigung, wenn sie Berechtigungen oder MCP-Tools hinzufügen oder wenn eine Route von authentifiziert zu öffentlich wechselt. EmDash lässt die installierte Version bestehen, bis Sie die Änderung genehmigen.

Ein Plugin deinstallieren

  1. Öffnen Sie Plugins im Admin-Panel und erweitern Sie das installierte Plugin.
  2. Wählen Sie Uninstall.
  3. Wählen Sie Also delete plugin storage data nur, wenn Sie die gespeicherten Daten des Plugins für eine spätere Neuinstallation nicht brauchen.
  4. Bestätigen Sie die Deinstallation.

EmDash entfernt das installierte Bundle und lädt das Plugin nicht mehr. Plugin-Speicherdaten bleiben standardmäßig erhalten.

Aus npm installieren

Native Plugins und konfigurationsverwaltete sandboxed Plugins installieren sich als npm-Abhängigkeiten. Folgen Sie den Anweisungen des Pakets, um plugins: [] oder sandboxed: [] zu wählen.

Das folgende Beispiel registriert das native Field-Kit-Plugin:

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 deployen. Sie können nicht über das Admin-Panel installiert oder entfernt werden.

Eine Installationsmethode wählen

Registernpm mit sandboxed: []npm mit plugins: []
Installieren und aktualisierenAdmin-PanelAbhängigkeitsänderung und DeployAbhängigkeitsänderung und Deploy
AusführungKonfigurierter Sandbox-RunnerKonfigurierter Sandbox-RunnerSite-Prozess
Zugriff auf EmDashNur deklarierte Plugin-APIsNur deklarierte Plugin-APIsDeklarierte Plugin-APIs plus direkter Prozesszugriff
Node.js-APIs und direktes fetch()Nicht verfügbarNicht verfügbarVerfügbar
React-Admin-KomponentenNicht verfügbarNicht verfügbarVerfügbar
Portable-Text-RendererNicht verfügbarNicht verfügbarVerfügbar

Nutzen Sie ein natives Plugin, wenn es React-Admin-Komponenten, Portable-Text-Renderer, Seitenfragmente oder direkten Zugriff auf den Site-Prozess braucht. Nutzen Sie ein sandboxed Plugin, wenn es über die deklarierten Plugin-APIs arbeiten kann.