I plugin EmDash possono essere installati in due modi: dal marketplace tramite il dashboard admin, o aggiunti direttamente nella configurazione Astro. I plugin del marketplace vengono eseguiti in un sandbox isolato; i plugin basati su configurazione vengono eseguiti in-process.
Dal marketplace
Il dashboard admin include un browser del marketplace dove puoi cercare, installare e gestire i plugin.
Prerequisiti
Per installare plugin dal marketplace, il tuo sito necessita di:
-
Sandbox runner configurato — I plugin del marketplace vengono eseguiti in worker V8 isolati, che richiedono il runtime sandbox:
import { emdash } from "emdash/astro"; export default defineConfig({ integrations: [ emdash({ marketplace: "https://marketplace.emdashcms.com", sandboxRunner: true, }), ], }); -
Accesso admin — Solo gli amministratori possono installare o rimuovere plugin.
Sfogliare e installare
- Apri il pannello admin e naviga a Plugin > Marketplace
- Sfoglia o cerca un plugin
- Clicca sulla card del plugin per vedere la sua pagina di dettaglio — README, screenshot, capacità e risultati dell’audit di sicurezza
- Clicca su 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 sandbox runner. È attivo immediatamente.
Consenso capacità
Prima dell’installazione, vedrai un dialogo che elenca a cosa il plugin ha bisogno di accedere:
| Capacità | Significato |
|---|---|
read:content | Leggere i tuoi contenuti |
write:content | Creare, aggiornare ed eliminare contenuti |
read:media | Accedere alla tua libreria media |
write:media | Caricare e gestire media |
network:fetch | 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 card del plugin:
- Superato — Nessun problema trovato
- Avviso — Preoccupazioni minori segnalate (rivedi i risultati)
- Fallito — 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 admin
- I plugin del marketplace mostrano un badge Aggiornamento disponibile
- Clicca su Aggiorna per vedere il changelog e eventuali modifiche alle capacità
- Se la nuova versione richiede capacità aggiuntive, vedrai un diff e dovrai approvare
- Conferma per aggiornare
Disinstallazione
- Vai a Plugin nel pannello admin
- Clicca sul plugin del marketplace che vuoi rimuovere
- Clicca su Disinstalla
- Scegli se mantenere o eliminare i dati memorizzati del plugin
- Conferma
Il codice sandbox del plugin viene rimosso dal tuo bucket R2 e smette di essere eseguito immediatamente.
Dalla configurazione
Per i plugin nativi (il tuo codice, o pacchetti installati via npm), aggiungili direttamente alla tua config Astro:
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 }),
],
}),
],
});
Plugin nativi:
- Vengono eseguiti in-process (non sandboxati)
- Hanno accesso completo alle API Node.js
- Vengono caricati al momento del build e a ogni avvio del server
- Non possono essere installati o rimossi dall’interfaccia admin
Marketplace vs Config: Quando usare quale
| Marketplace (sandboxed) | Config (nativo) | |
|---|---|---|
| Metodo installazione | Un clic nell’interfaccia admin | Modifica codice + npm install + deploy |
| Esecuzione | Isolate V8 isolato | In-process |
| Capacità | Applicate a runtime | Solo consultive |
| API Node.js | Non disponibili | Accesso completo |
| Pagine admin React | No (Block Kit invece) | Sì |
| Componenti rendering PT | No | Sì |
| Aggiornamenti | Un clic nell’admin | Bump versione + deploy |
| Migliore per | La maggior parte dei plugin | Plugin che necessitano integrazione al build |