I plugin EmDash possono essere installati in due modi: dal marketplace tramite il pannello di amministrazione, o aggiunti direttamente nella configurazione Astro. I plugin del marketplace vengono sempre eseguiti in sandbox; i plugin basati sulla configurazione vengono eseguiti in sandbox o in-process a seconda dell’array in cui sono dichiarati (sandboxed: [] vs plugins: []).
Dal Marketplace
Il pannello di amministrazione include un browser del marketplace dove puoi cercare, installare e gestire plugin.
Prerequisiti
Per installare plugin dal marketplace, il tuo sito necessita di:
-
Runner sandbox configurato — I plugin del marketplace vengono eseguiti in un runtime isolato, che richiede il runner sandbox. La seguente configurazione lo abilita:
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", }), ], });Su Cloudflare Workers, il sandboxing usa la Dynamic Worker Loader API (nessuna configurazione aggiuntiva necessaria). Su Node.js, installa il runner sandbox workerd:
npm install @emdash-cms/sandbox-workerdPoi passa il runner esplicitamente:
emdash({ marketplace: "https://marketplace.emdashcms.com", sandboxRunner: "@emdash-cms/sandbox-workerd/sandbox", })In sviluppo, installa
miniflarecome dipendenza di sviluppo per un avvio sandbox più veloce:npm install -D miniflare -
Accesso amministratore — Solo gli amministratori possono installare o rimuovere plugin.
Sfogliare e Installare
- Apri il pannello di amministrazione e naviga a Plugin > Marketplace
- Sfoglia o cerca un plugin
- Clicca sulla scheda del plugin per vedere la sua pagina di dettaglio — README, screenshot, capacità e risultati dell’audit di sicurezza
- Clicca Installa
- Rivedi il dialogo di consenso delle capacità — questo mostra a cosa il plugin potrà accedere
- Conferma l’installazione
Il plugin verrà scaricato, memorizzato nel bucket R2 del tuo sito e caricato nel runner sandbox. È attivo immediatamente.
Consenso delle Capacità
Prima dell’installazione, vedrai un dialogo che elenca a cosa il plugin necessita accesso:
| Capacità | Cosa significa |
|---|---|
content:read | Leggere i tuoi contenuti |
content:write | Creare, aggiornare ed eliminare contenuti |
media:read | Accedere alla tua libreria media |
media:write | Caricare e gestire media |
network:request | Effettuare richieste di rete a host specifici |
Audit di Sicurezza
Ogni versione di plugin nel marketplace ha superato un audit di sicurezza automatizzato. Il verdetto dell’audit appare sulla scheda del plugin:
- Superato — Nessun problema trovato
- Avvertimento — Preoccupazioni minori segnalate (rivedi i risultati)
- Non superato — Problemi di sicurezza significativi rilevati
Puoi visualizzare il rapporto di audit completo sulla pagina di dettaglio del plugin, inclusi i singoli risultati e la loro gravità.
Aggiornamenti
Quando è disponibile una versione più recente di un plugin installato:
- Vai a Plugin nel pannello di amministrazione
- I plugin del marketplace mostrano un badge Aggiornamento disponibile
- Clicca Aggiorna per vedere il changelog e qualsiasi cambio di capacità
- Se la nuova versione richiede capacità aggiuntive, vedrai un diff e dovrai approvare
- Conferma per aggiornare
Disinstallazione
- Vai a Plugin nel pannello di amministrazione
- Clicca sul plugin del marketplace che vuoi rimuovere
- Clicca Disinstalla
- Scegli se mantenere o eliminare i dati memorizzati dal plugin
- Conferma
Il codice sandbox del plugin viene rimosso dal tuo bucket R2 e la sua esecuzione si interrompe immediatamente.
Dalla Configurazione
I plugin nativi — il tuo codice, o pacchetti installati tramite npm — vengono aggiunti direttamente alla configurazione Astro. L’esempio seguente registra il 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 }),
],
}),
],
});
I plugin nativi:
- Vengono eseguiti in-process (non in sandbox)
- Hanno accesso completo alle API Node.js
- Vengono caricati al momento della build e ad ogni avvio del server
- Non possono essere installati o rimossi dall’UI di amministrazione
Marketplace vs. configurazione — quando usare quale
| Marketplace (sandbox) | Configurazione (nativo o sandbox in-process) | |
|---|---|---|
| Metodo di installazione | Un clic nell’UI admin | Modifica del codice + npm install + deploy |
| Esecuzione | Runtime sandbox tramite il runner configurato | In-process (o sandbox se elencato sotto sandboxed: [] e un runner è disponibile) |
| Capacità | Applicate dal ponte sandbox — gating ctx.* più isolamento runtime | Solo gating ctx.* (i plugin in-process possono aggirare tramite fetch() diretto, env, import) |
| API Node.js | Non disponibili | Accesso completo (solo in-process) |
| Pagine admin React | No (Block Kit invece) | Sì (plugin nativi) |
| Componenti rendering PT | No | Sì (plugin nativi) |
| Aggiornamenti | Un clic nell’admin | Bump di versione + deploy |
| Ideale per | La maggior parte dei plugin | Plugin che necessitano integrazione al build |