Los plugins de EmDash se pueden instalar de dos maneras: desde el mercado a través del panel de administración, o agregados directamente en tu configuración de Astro. Los plugins del mercado se ejecutan en un sandbox aislado; los plugins basados en configuración se ejecutan en proceso.
Desde el mercado
El panel de administración incluye un navegador de mercado donde puedes buscar, instalar y gestionar plugins.
Requisitos previos
Para instalar plugins del mercado, tu sitio necesita:
-
Ejecutor de sandbox configurado — Los plugins del mercado se ejecutan en workers V8 aislados, lo que requiere el runtime de sandbox:
import { emdash } from "emdash/astro"; export default defineConfig({ integrations: [ emdash({ marketplace: "https://marketplace.emdashcms.com", sandboxRunner: true, }), ], }); -
Acceso admin — Solo los administradores pueden instalar o eliminar plugins.
Navegar e instalar
- Abre el panel de administración y navega a Plugins > Mercado
- Navega o busca un plugin
- Haz clic en la tarjeta del plugin para ver su página de detalle — README, capturas de pantalla, capacidades y resultados de auditoría de seguridad
- Haz clic en Instalar
- Revisa el diálogo de consentimiento de capacidades — esto muestra a qué podrá acceder el plugin
- Confirma la instalación
El plugin se descargará, se almacenará en el bucket R2 de tu sitio y se cargará en el ejecutor de sandbox. Está activo inmediatamente.
Consentimiento de capacidades
Antes de la instalación, verás un diálogo que enumera a qué necesita acceder el plugin:
| Capacidad | Significado |
|---|---|
read:content | Leer tu contenido |
write:content | Crear, actualizar y eliminar contenido |
read:media | Acceder a tu biblioteca multimedia |
write:media | Subir y gestionar medios |
network:fetch | Hacer solicitudes de red a hosts específicos |
Auditoría de seguridad
Cada versión de plugin en el mercado ha pasado por una auditoría de seguridad automatizada. El veredicto de la auditoría aparece en la tarjeta del plugin:
- Aprobado — No se encontraron problemas
- Advertencia — Preocupaciones menores señaladas (revisa los hallazgos)
- Reprobado — Problemas de seguridad significativos detectados
Puedes ver el informe de auditoría completo en la página de detalle del plugin, incluyendo hallazgos individuales y su gravedad.
Actualizaciones
Cuando hay una versión más nueva de un plugin instalado disponible:
- Ve a Plugins en el panel de administración
- Los plugins del mercado muestran un badge Actualización disponible
- Haz clic en Actualizar para ver el changelog y cualquier cambio de capacidad
- Si la nueva versión requiere capacidades adicionales, verás un diff y necesitarás aprobar
- Confirma para actualizar
Desinstalar
- Ve a Plugins en el panel de administración
- Haz clic en el plugin del mercado que deseas eliminar
- Haz clic en Desinstalar
- Elige si mantener o eliminar los datos almacenados del plugin
- Confirma
El código sandbox del plugin se elimina de tu bucket R2 y deja de ejecutarse inmediatamente.
Desde configuración
Para plugins nativos (tu propio código, o paquetes instalados vía npm), agrégalos directamente a tu config de 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 }),
],
}),
],
});
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
Mercado vs Configuración: Cuándo usar cuál
| Mercado (sandboxed) | Configuración (nativo) | |
|---|---|---|
| Método de instalación | Un clic en interfaz admin | Cambio de código + npm install + despliegue |
| Ejecución | Isolate V8 aislado | En proceso |
| Capacidades | Aplicadas en tiempo de ejecución | Solo asesoramiento |
| APIs Node.js | No disponible | Acceso completo |
| Páginas admin React | No (Block Kit en su lugar) | Sí |
| Componentes renderizado PT | No | Sí |
| Actualizaciones | Un clic en admin | Bump de versión + despliegue |
| Mejor para | La mayoría de los plugins | Plugins que necesitan integración en tiempo de compilación |