Instalar plugins

En esta página

Los administradores pueden instalar plugins en sandbox desde el registro de plugins o registrar paquetes de npm en astro.config.mjs. Los plugins basados en la configuración pueden ejecutarse en el sandbox o en el proceso del sitio.

Prepararse para instalaciones desde el admin

Las instalaciones desde el registro requieren:

  • Una cuenta de administrador con el permiso plugins:manage.
  • Almacenamiento configurado para los paquetes de plugins descargados.
  • Un ejecutor de sandbox disponible.

En Cloudflare Workers, usa sandbox() de @emdash-cms/cloudflare:

import { sandbox } from "@emdash-cms/cloudflare";
import { defineConfig } from "astro/config";
import emdash from "emdash/astro";

export default defineConfig({
	integrations: [
		emdash({
			sandboxRunner: sandbox(),
		}),
	],
});

El ejecutor de Cloudflare usa Worker Loader para crear un Worker independiente para cada plugin. Requiere el plan Workers Paid y un binding worker_loaders llamado LOADER. Los plugins en sandbox acceden a las API de contenido, medios, almacenamiento, red y correo electrónico a través de PluginBridge, así que el punto de entrada del Worker del sitio debe exportar esa clase.

Las plantillas *-cloudflare exportan PluginBridge, pero dejan comentado el binding de Worker Loader para que los proyectos nuevos puedan desplegarse en el plan gratuito de Workers. Habilita los plugins en sandbox durante la generación del proyecto o sigue la configuración del sandbox de Cloudflare para añadir el binding más adelante. El helper sandbox() lee la configuración efectiva de Wrangler en tiempo de compilación. Sin LOADER, la exploración del registro sigue disponible, pero los plugins en sandbox gestionados por la configuración no se cargan, y las solicitudes de instalación o actualización devuelven SANDBOX_NOT_AVAILABLE.

En Node.js, instala el ejecutor y su dependencia entre pares workerd:

npm install @emdash-cms/sandbox-workerd workerd

El proceso workerd ejecuta el código del plugin por separado del servidor de Node.js. Selecciona el ejecutor en la integración de EmDash:

import { defineConfig } from "astro/config";
import emdash from "emdash/astro";

export default defineConfig({
	integrations: [
		emdash({
			sandboxRunner: "@emdash-cms/sandbox-workerd/sandbox",
		}),
	],
});

Consulta Configurar el sandbox de plugins para la configuración de desarrollo, los requisitos de tiempo de ejecución, los límites de recursos y los errores por ejecutor no disponible en ambas plataformas.

Instalar desde el registro

  1. Abre Registry en el panel de administración.
  2. Busca un plugin y abre su página de detalle.
  3. Selecciona una versión y revisa su publicador, sus metadatos, los permisos solicitados y el estado de verificación.
  4. Selecciona Install.
  5. Revisa en el cuadro de diálogo de consentimiento los identificadores de la versión verificada y los permisos, y después confirma.

EmDash verifica los registros firmados actuales del publicador y comprueba el paquete descargado antes de cargarlo a través del ejecutor de sandbox. El plugin aparece en Plugins, donde puedes deshabilitarlo o configurarlo. Consulta El registro de plugins para ver el modelo completo de verificación y confianza.

Revisar permisos

El cuadro de diálogo de consentimiento muestra todos los permisos que declara el plugin. Entre los permisos habituales se incluyen:

PermisoAcceso concedido
content:readLeer el contenido del sitio
content:writeCrear, actualizar y eliminar contenido
content:revisions:readLeer el historial de revisiones del contenido conservado
schema:readLeer las definiciones de colecciones y campos
bylines:readLeer los perfiles públicos de autoría y los créditos del contenido
redirects:readLeer las reglas de redirección
redirects:writeCambiar adónde se envía a los visitantes
media:readLeer los metadatos seguros de los medios listos
media:bytes:readLeer el contenido del archivo y el hash de contenido de los medios listos
media:metadata:writeCambiar el texto alternativo, los pies de foto y los puntos focales de los medios
media:writeSubir, reemplazar y eliminar medios
network:requestEnviar solicitudes a la lista de hosts permitidos del plugin

El cuadro de diálogo también identifica las rutas del plugin expuestas como herramientas del Model Context Protocol (MCP) cuando un plugin las declara. Consulta Capabilities y seguridad para ver el modelo de permisos completo.

Actualizar un plugin

  1. Abre Plugins en el panel de administración.
  2. Selecciona Check for updates.
  3. Selecciona Update en un plugin del registro que tenga una versión disponible.
  4. Revisa el cuadro de diálogo de consentimiento y después confirma la actualización.

Las actualizaciones del registro requieren otra confirmación cuando añaden permisos o herramientas MCP, o cuando una ruta pasa de autenticada a pública. EmDash deja instalada la versión actual hasta que apruebes el cambio.

Las actualizaciones explícitas solo avanzan. Las actualizaciones que siguen la última versión del registro pueden revertirse si el publicador retira la versión más reciente. Para volver a una versión anterior en cualquier otro momento, desinstala el plugin e instala esa versión desde su página del registro. Al desinstalar se conservan los datos almacenados del plugin, a menos que elijas eliminarlos.

Desinstalar un plugin

  1. Abre Plugins en el panel de administración y expande el plugin instalado.
  2. Selecciona Uninstall.
  3. Selecciona Also delete plugin storage data solo si no necesitas los datos almacenados del plugin para una reinstalación posterior.
  4. Confirma la desinstalación.

EmDash elimina el paquete instalado y deja de cargar el plugin. Los datos de almacenamiento del plugin permanecen de forma predeterminada.

Instalar desde npm

Los plugins nativos y los plugins en sandbox gestionados por la configuración se instalan como dependencias de npm. Sigue las instrucciones del paquete para elegir plugins: [] o sandboxed: [].

El siguiente ejemplo registra el plugin nativo Field Kit:

import { defineConfig } from "astro/config";
import emdash from "emdash/astro";
import { fieldKitPlugin } from "@emdash-cms/plugin-field-kit";

export default defineConfig({
	integrations: [
		emdash({
			plugins: [fieldKitPlugin()],
		}),
	],
});

Los plugins gestionados por la configuración cambian cuando actualizas la dependencia de npm y despliegas el sitio. No se pueden instalar ni eliminar desde el panel de administración.

Elegir un método de instalación

Registronpm con sandboxed: []npm con plugins: []
Instalación y actualizaciónPanel de administraciónCambio de dependencia y despliegueCambio de dependencia y despliegue
EjecuciónEjecutor de sandbox configuradoEjecutor de sandbox configuradoProceso del sitio
Acceso a EmDashSolo las API declaradas del pluginSolo las API declaradas del pluginLas API declaradas del plugin más acceso directo al proceso
API de Node.js y fetch() directoNo disponibleNo disponibleDisponible
Componentes de administración en ReactNo disponibleNo disponibleDisponible
Renderizadores de Portable TextNo disponibleNo disponibleDisponible

Usa un plugin nativo cuando necesite componentes de administración en React, renderizadores de Portable Text, fragmentos de página o acceso directo al proceso del sitio. Usa un plugin en sandbox cuando pueda funcionar a través de las API de plugins declaradas.