Instalação de Plugins

Nesta página

Os plugins do EmDash podem ser instalados de duas maneiras: do marketplace através do painel de administração, ou adicionados diretamente na sua configuração Astro. Os plugins do marketplace sempre são executados em sandbox; plugins baseados em configuração são executados em sandbox ou em processo, dependendo do array em que são declarados (sandboxed: [] vs plugins: []).

Do Marketplace

O painel de administração inclui um navegador do marketplace onde você pode pesquisar, instalar e gerenciar plugins.

Pré-requisitos

Para instalar plugins do marketplace, seu site precisa de:

  1. Sandbox runner configurado — Os plugins do marketplace são executados em um ambiente isolado, que requer o sandbox runner. A seguinte configuração o habilita:

    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",
        }),
      ],
    });
  2. Acesso de administrador — Apenas administradores podem instalar ou remover plugins.

  1. Abra o painel de administração e navegue até Plugins > Marketplace
  2. Navegue ou pesquise por um plugin
  3. Clique no card do plugin para ver sua página de detalhes — README, capturas de tela, capacidades e resultados de auditoria de segurança
  4. Clique em Instalar
  5. Revise o diálogo de consentimento de capacidades — isso mostra o que o plugin poderá acessar
  6. Confirme a instalação

O plugin será baixado, armazenado no bucket R2 do seu site e carregado no sandbox runner. Ele fica ativo imediatamente.

Consentimento de Capacidades

Antes da instalação, você verá um diálogo listando o que o plugin precisa acessar:

CapacidadeO que significa
content:readLer seu conteúdo
content:writeCriar, atualizar e excluir conteúdo
media:readAcessar sua biblioteca de mídia
media:writeFazer upload e gerenciar mídia
network:requestFazer solicitações de rede para hosts específicos

Auditoria de Segurança

Cada versão de plugin no marketplace passou por uma auditoria de segurança automatizada. O veredito da auditoria aparece no card do plugin:

  • Pass — Nenhum problema encontrado
  • Warn — Preocupações menores sinalizadas (revise os achados)
  • Fail — Problemas de segurança significativos detectados

Você pode visualizar o relatório de auditoria completo na página de detalhes do plugin, incluindo achados individuais e sua gravidade.

Atualizações

Quando uma versão mais recente de um plugin instalado está disponível:

  1. Vá para Plugins no painel de administração
  2. Os plugins do marketplace mostram um badge de Atualização disponível
  3. Clique em Atualizar para ver o changelog e quaisquer alterações de capacidades
  4. Se a nova versão requer capacidades adicionais, você verá uma diferença e precisará aprovar
  5. Confirme para atualizar

Desinstalação

  1. Vá para Plugins no painel de administração
  2. Clique no plugin do marketplace que você deseja remover
  3. Clique em Desinstalar
  4. Escolha se deseja manter ou excluir os dados armazenados do plugin
  5. Confirme

O código sandbox do plugin é removido do seu bucket R2 e ele para de executar imediatamente.

Da Configuração

Plugins nativos — seu próprio código ou pacotes instalados via npm — são adicionados diretamente à configuração Astro. O exemplo a seguir registra o 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 }),
      ],
    }),
  ],
});

Plugins nativos:

  • Executam em processo (não em sandbox)
  • Têm acesso completo às APIs do Node.js
  • São carregados em tempo de compilação e a cada início do servidor
  • Não podem ser instalados ou removidos da interface de administração

Marketplace vs. configuração — quando usar qual

Marketplace (sandbox)Configuração (nativo ou em processo em sandbox)
Método de instalaçãoUm clique na interface de administraçãoAlteração de código + npm install + deploy
ExecuçãoRuntime sandbox através do runner configuradoEm processo (ou em sandbox se listado sob sandboxed: [] e um runner está disponível)
CapacidadesAplicadas pela ponte sandbox — controle ctx.* mais isolamento de runtimeApenas controle ctx.* (plugins em processo podem contornar via fetch() direto, env, imports)
APIs Node.jsNão disponíveisAcesso completo (apenas em processo)
Páginas de administração ReactNão (Block Kit em vez disso)Sim (plugins nativos)
Componentes de renderização PTNãoSim (plugins nativos)
AtualizaçõesUm clique na administraçãoIncremento de versão + deploy
Melhor paraA maioria dos pluginsPlugins que precisam de integração em tempo de compilação