Installare i plugin

In questa pagina

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

  1. Apri Registry nel pannello di amministrazione.
  2. Cerca un plugin e apri la sua pagina di dettaglio.
  3. Seleziona una release ed esamina publisher, metadati, permessi richiesti e stato di verifica.
  4. Seleziona Install.
  5. 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:

PermessoAccesso concesso
content:readLeggere il contenuto del sito
content:writeCreare, aggiornare ed eliminare contenuto
content:revisions:readLeggere la cronologia delle revisioni di contenuto trattenuta
schema:readLeggere le definizioni di collection e campi
redirects:readLeggere le regole di redirect
redirects:writeCambiare dove vengono inviati i visitatori
media:readLeggere metadati sicuri per media pronti
media:bytes:readLeggere il contenuto del file e l’hash di contenuto dei media pronti
media:metadata:writeModificare testo alt, didascalie e punti focali dei media
media:writeCaricare, sostituire ed eliminare media
network:requestInviare 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

  1. Apri Plugins nel pannello di amministrazione.
  2. Seleziona Check for updates.
  3. Seleziona Update su un plugin del registro con una release disponibile.
  4. 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

  1. Apri Plugins nel pannello di amministrazione ed espandi il plugin installato.
  2. Seleziona Uninstall.
  3. Seleziona Also delete plugin storage data solo se non ti servono i dati memorizzati del plugin per una reinstallazione successiva.
  4. 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

Registronpm con sandboxed: []npm con plugins: []
Installare e aggiornarePannello di amministrazioneCambio di dipendenza e distribuzioneCambio di dipendenza e distribuzione
EsecuzioneSandbox runner configuratoSandbox runner configuratoProcesso del sito
Accesso a EmDashSolo API di plugin dichiarateSolo API di plugin dichiarateAPI di plugin dichiarate più accesso diretto al processo
API Node.js e fetch() direttoNon disponibileNon disponibileDisponibile
Componenti admin ReactNon disponibileNon disponibileDisponibile
Renderer Portable TextNon disponibileNon disponibileDisponibile

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.