I plugin EmDash possono essere installati in due modi: dal marketplace tramite il pannello di amministrazione, oppure 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 del marketplace, il tuo sito necessita di:
-
Sandbox runner configurato — I plugin del marketplace vengono eseguiti in un ambiente isolato, che richiede il sandbox runner. 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", }), ], }); -
Accesso amministratore — Solo gli amministratori possono installare o rimuovere plugin.
Esplora e Installa
- Apri il pannello di amministrazione e vai su Plugin > Marketplace
- Esplora o cerca un plugin
- Clicca sulla card del plugin per vedere la sua pagina dei dettagli — README, screenshot, capacità e risultati dell’audit di sicurezza
- Clicca su Installa
- Rivedi la finestra di consenso delle capacità — 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 delle Capacità
Prima dell’installazione, vedrai una finestra che elenca a cosa il plugin necessita di accedere:
| Capacità | Cosa significa |
|---|---|
content:read | Leggere i tuoi contenuti |
content:write | Creare, aggiornare ed eliminare contenuti |
media:read | Accedere alla tua libreria multimediale |
media:write | Caricare e gestire media |
network:request | Effettuare richieste di rete a host specifici |
Audit di Sicurezza
Ogni versione di plugin nel marketplace è stata sottoposta a un audit di sicurezza automatizzato. Il verdetto dell’audit appare sulla card del plugin:
- Pass — Nessun problema trovato
- Warn — Preoccupazioni minori segnalate (rivedi i risultati)
- Fail — Problemi di sicurezza significativi rilevati
Puoi visualizzare il report completo dell’audit nella pagina dei dettagli del plugin, inclusi i singoli risultati e la loro gravità.
Aggiornamenti
Quando è disponibile una versione più recente di un plugin installato:
- Vai su Plugin nel pannello di amministrazione
- 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 una differenza e dovrai approvare
- Conferma per aggiornare
Disinstallazione
- Vai su Plugin nel pannello di amministrazione
- 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 funzionare 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 }),
],
}),
],
});
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’interfaccia di amministrazione
Marketplace vs. configurazione — quando usare quale
| Marketplace (sandbox) | Configurazione (nativo o in-process in sandbox) | |
|---|---|---|
| Metodo di installazione | Un clic nell’interfaccia di amministrazione | Modifica del codice + npm install + deploy |
| Esecuzione | Runtime sandbox tramite il runner configurato | In-process (o in sandbox se elencato sotto sandboxed: [] e un runner è disponibile) |
| Capacità | Applicate dal bridge sandbox — gating ctx.* più isolamento runtime | Solo gating ctx.* (i plugin in-process possono aggirare tramite fetch() diretto, env, imports) |
| API Node.js | Non disponibili | Accesso completo (solo in-process) |
| Pagine di amministrazione React | No (Block Kit invece) | Sì (plugin nativi) |
| Componenti di rendering PT | No | Sì (plugin nativi) |
| Aggiornamenti | Un clic nell’amministrazione | Bump di versione + deploy |
| Ideale per | La maggior parte dei plugin | Plugin che necessitano di integrazione al momento della build |