Los plugins de EmDash se pueden instalar de dos formas: desde el marketplace a través del panel de administración, o agregados directamente en su configuración de Astro. Los plugins del marketplace siempre se ejecutan en sandbox; los plugins basados en configuración se ejecutan en sandbox o en proceso dependiendo del array en el que se declaren (sandboxed: [] vs plugins: []).
Desde el Marketplace
El panel de administración incluye un navegador del marketplace donde puede buscar, instalar y administrar plugins.
Requisitos previos
Para instalar plugins del marketplace, su sitio necesita:
-
Sandbox runner configurado — Los plugins del marketplace se ejecutan en un entorno aislado, que requiere el sandbox runner. La siguiente configuración lo 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", }), ], }); -
Acceso de administrador — Solo los administradores pueden instalar o eliminar plugins.
Explorar e Instalar
- Abra el panel de administración y navegue a Plugins > Marketplace
- Explore o busque un plugin
- Haga clic en la tarjeta del plugin para ver su página de detalles — README, capturas de pantalla, capacidades y resultados de auditoría de seguridad
- Haga clic en Instalar
- Revise el diálogo de consentimiento de capacidades — esto muestra a qué podrá acceder el plugin
- Confirme la instalación
El plugin se descargará, se almacenará en el bucket R2 de su sitio y se cargará en el sandbox runner. Está activo inmediatamente.
Consentimiento de Capacidades
Antes de la instalación, verá un diálogo que lista a qué necesita acceder el plugin:
| Capacidad | Qué significa |
|---|---|
content:read | Leer su contenido |
content:write | Crear, actualizar y eliminar contenido |
media:read | Acceder a su biblioteca de medios |
media:write | Subir y administrar medios |
network:request | Hacer solicitudes de red a hosts específicos |
Auditoría de Seguridad
Cada versión de plugin en el marketplace ha pasado por una auditoría de seguridad automatizada. El veredicto de la auditoría aparece en la tarjeta del plugin:
- Pass — No se encontraron problemas
- Warn — Preocupaciones menores señaladas (revise los hallazgos)
- Fail — Problemas de seguridad significativos detectados
Puede ver el informe de auditoría completo en la página de detalles del plugin, incluidos hallazgos individuales y su gravedad.
Actualizaciones
Cuando una versión más reciente de un plugin instalado está disponible:
- Vaya a Plugins en el panel de administración
- Los plugins del marketplace muestran una insignia de Actualización disponible
- Haga clic en Actualizar para ver el registro de cambios y cualquier cambio de capacidades
- Si la nueva versión requiere capacidades adicionales, verá una diferencia y necesitará aprobar
- Confirme para actualizar
Desinstalación
- Vaya a Plugins en el panel de administración
- Haga clic en el plugin del marketplace que desea eliminar
- Haga clic en Desinstalar
- Elija si mantener o eliminar los datos almacenados del plugin
- Confirme
El código sandbox del plugin se elimina de su bucket R2 y deja de ejecutarse inmediatamente.
Desde Configuración
Los plugins nativos — su propio código o paquetes instalados a través de npm — se agregan directamente a la configuración de Astro. El siguiente ejemplo registra el 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:
- Se ejecutan en proceso (no en sandbox)
- Tienen acceso completo a las APIs de Node.js
- Se cargan en tiempo de compilación y en cada inicio del servidor
- No se pueden instalar o eliminar desde la interfaz de administración
Marketplace vs. configuración — cuándo usar cuál
| Marketplace (sandbox) | Configuración (nativo o en proceso en sandbox) | |
|---|---|---|
| Método de instalación | Un clic en la interfaz de administración | Cambio de código + npm install + despliegue |
| Ejecución | Entorno sandbox a través del runner configurado | En proceso (o en sandbox si se lista bajo sandboxed: [] y hay un runner disponible) |
| Capacidades | Aplicadas por el puente de sandbox — control ctx.* más aislamiento de tiempo de ejecución | Solo control ctx.* (los plugins en proceso pueden omitir a través de fetch() directo, env, imports) |
| APIs de Node.js | No disponibles | Acceso completo (solo en proceso) |
| Páginas de administración de React | No (Block Kit en su lugar) | Sí (plugins nativos) |
| Componentes de renderizado PT | No | Sí (plugins nativos) |
| Actualizaciones | Un clic en administración | Incremento de versión + despliegue |
| Mejor para | La mayoría de los plugins | Plugins que necesitan integración en tiempo de compilación |