Installare Plugin

In questa pagina

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:

  1. 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-workerd

    Poi passa il runner esplicitamente:

    emdash({
      marketplace: "https://marketplace.emdashcms.com",
      sandboxRunner: "@emdash-cms/sandbox-workerd/sandbox",
    })

    In sviluppo, installa miniflare come dipendenza di sviluppo per un avvio sandbox più veloce:

    npm install -D miniflare
  2. Accesso amministratore — Solo gli amministratori possono installare o rimuovere plugin.

Sfogliare e Installare

  1. Apri il pannello di amministrazione e naviga a Plugin > Marketplace
  2. Sfoglia o cerca un plugin
  3. Clicca sulla scheda del plugin per vedere la sua pagina di dettaglio — README, screenshot, capacità e risultati dell’audit di sicurezza
  4. Clicca Installa
  5. Rivedi il dialogo di consenso delle capacità — questo mostra a cosa il plugin potrà accedere
  6. 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:readLeggere i tuoi contenuti
content:writeCreare, aggiornare ed eliminare contenuti
media:readAccedere alla tua libreria media
media:writeCaricare e gestire media
network:requestEffettuare 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:

  1. Vai a Plugin nel pannello di amministrazione
  2. I plugin del marketplace mostrano un badge Aggiornamento disponibile
  3. Clicca Aggiorna per vedere il changelog e qualsiasi cambio di capacità
  4. Se la nuova versione richiede capacità aggiuntive, vedrai un diff e dovrai approvare
  5. Conferma per aggiornare

Disinstallazione

  1. Vai a Plugin nel pannello di amministrazione
  2. Clicca sul plugin del marketplace che vuoi rimuovere
  3. Clicca Disinstalla
  4. Scegli se mantenere o eliminare i dati memorizzati dal plugin
  5. 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 installazioneUn clic nell’UI adminModifica del codice + npm install + deploy
EsecuzioneRuntime sandbox tramite il runner configuratoIn-process (o sandbox se elencato sotto sandboxed: [] e un runner è disponibile)
CapacitàApplicate dal ponte sandbox — gating ctx.* più isolamento runtimeSolo gating ctx.* (i plugin in-process possono aggirare tramite fetch() diretto, env, import)
API Node.jsNon disponibiliAccesso completo (solo in-process)
Pagine admin ReactNo (Block Kit invece)Sì (plugin nativi)
Componenti rendering PTNoSì (plugin nativi)
AggiornamentiUn clic nell’adminBump di versione + deploy
Ideale perLa maggior parte dei pluginPlugin che necessitano integrazione al build