Gli amministratori possono installare plugin sandboxed dal registro dei plugin o registrare pacchetti npm in astro.config.mjs. I plugin basati sulla configurazione possono essere eseguiti nel sandbox o nel processo del sito.
Prepararsi alle installazioni dall’admin
Le installazioni dal registro richiedono:
- Un account amministratore con il permesso
plugins:manage. - Uno storage configurato per i bundle di plugin scaricati.
- Un sandbox runner disponibile.
Su Cloudflare Workers, usa sandbox() da @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(),
}),
],
});
Il runner Cloudflare usa Worker Loader per creare un Worker separato per ogni plugin. Richiede il piano Workers Paid e un binding worker_loaders chiamato LOADER. I plugin sandboxed raggiungono le API di contenuto, media, storage, rete ed e-mail tramite PluginBridge, quindi il punto di ingresso Worker del sito deve esportare quella classe.
I template *-cloudflare esportano PluginBridge ma lasciano il binding Worker Loader commentato, così i nuovi progetti possono essere distribuiti sul piano gratuito Workers. Abilita i plugin sandboxed durante lo scaffolding o segui la configurazione del sandbox Cloudflare per aggiungere il binding in seguito. L’helper sandbox() legge la configurazione Wrangler effettiva al momento della build. Senza LOADER, la navigazione nel registro resta disponibile, ma i plugin sandboxed gestiti dalla configurazione non vengono caricati e le richieste di installazione o aggiornamento restituiscono SANDBOX_NOT_AVAILABLE.
Su Node.js, installa il runner e la sua dipendenza peer workerd:
npm install @emdash-cms/sandbox-workerd workerd
Il processo workerd esegue il codice del plugin separatamente dal server Node.js. Seleziona il runner nell’integrazione EmDash:
import { defineConfig } from "astro/config";
import emdash from "emdash/astro";
export default defineConfig({
integrations: [
emdash({
sandboxRunner: "@emdash-cms/sandbox-workerd/sandbox",
}),
],
});
Vedi Sandbox dei plugin per la configurazione di sviluppo, i requisiti di runtime, i limiti di risorse e gli errori di runner non disponibile su entrambe le piattaforme.
Installare dal registro
- Apri Registry nel pannello di amministrazione.
- Cerca un plugin e apri la sua pagina di dettaglio.
- Seleziona una release ed esamina publisher, metadati, permessi richiesti e stato di verifica.
- Seleziona Install.
- Esamina gli identificatori di release verificati e i permessi nella finestra di consenso, poi conferma.
EmDash verifica i record firmati attuali del publisher e controlla il bundle scaricato prima di caricarlo tramite il sandbox runner. Il plugin appare sotto Plugins, dove puoi disabilitarlo o configurarlo. Vedi Il registro dei plugin per il modello completo di verifica e fiducia.
Esaminare i permessi
La finestra di consenso mostra ogni permesso dichiarato dal plugin. I permessi comuni includono:
| Permesso | Accesso concesso |
|---|---|
content:read | Leggere il contenuto del sito |
content:write | Creare, aggiornare ed eliminare contenuto |
content:revisions:read | Leggere la cronologia delle revisioni di contenuto trattenuta |
schema:read | Leggere le definizioni di collection e campi |
redirects:read | Leggere le regole di redirect |
redirects:write | Cambiare dove vengono inviati i visitatori |
media:read | Leggere metadati sicuri per media pronti |
media:bytes:read | Leggere il contenuto del file e l’hash di contenuto dei media pronti |
media:metadata:write | Modificare testo alt, didascalie e punti focali dei media |
media:write | Caricare, sostituire ed eliminare media |
network:request | Inviare richieste all’elenco di host consentiti del plugin |
La finestra identifica anche le route del plugin esposte come strumenti Model Context Protocol (MCP) quando un plugin le dichiara. Vedi Capabilities e sicurezza per il modello completo di permessi.
Aggiornare un plugin
- Apri Plugins nel pannello di amministrazione.
- Seleziona Check for updates.
- Seleziona Update su un plugin del registro con una release disponibile.
- Esamina la finestra di consenso, poi conferma l’aggiornamento.
Gli aggiornamenti del registro richiedono un’altra conferma quando aggiungono permessi o strumenti MCP, o quando una route passa da autenticata a pubblica. EmDash lascia la versione installata al suo posto finché non approvi la modifica.
Disinstallare un plugin
- Apri Plugins nel pannello di amministrazione ed espandi il plugin installato.
- Seleziona Uninstall.
- Seleziona Also delete plugin storage data solo se non ti servono i dati memorizzati del plugin per una reinstallazione successiva.
- Conferma la disinstallazione.
EmDash rimuove il bundle installato e smette di caricare il plugin. I dati di storage del plugin restano per impostazione predefinita.
Installare da npm
I plugin nativi e i plugin sandboxed gestiti dalla configurazione si installano come dipendenze npm. Segui le istruzioni del pacchetto per scegliere plugins: [] o sandboxed: [].
Il seguente esempio registra il plugin nativo 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()],
}),
],
});
I plugin gestiti dalla configurazione cambiano quando aggiorni la dipendenza npm e distribuisci il sito. Non possono essere installati o rimossi dal pannello di amministrazione.
Scegliere un metodo di installazione
| Registro | npm con sandboxed: [] | npm con plugins: [] | |
|---|---|---|---|
| Installare e aggiornare | Pannello di amministrazione | Cambio di dipendenza e distribuzione | Cambio di dipendenza e distribuzione |
| Esecuzione | Sandbox runner configurato | Sandbox runner configurato | Processo del sito |
| Accesso a EmDash | Solo API di plugin dichiarate | Solo API di plugin dichiarate | API di plugin dichiarate più accesso diretto al processo |
API Node.js e fetch() diretto | Non disponibile | Non disponibile | Disponibile |
| Componenti admin React | Non disponibile | Non disponibile | Disponibile |
| Renderer Portable Text | Non disponibile | Non disponibile | Disponibile |
Usa un plugin nativo quando ha bisogno di componenti admin React, renderer Portable Text, frammenti di pagina o accesso diretto al processo del sito. Usa un plugin sandboxed quando può lavorare tramite le API di plugin dichiarate.