Instalar plugins

En esta página

Los administradores pueden instalar plugins sandboxed desde el registro de plugins o registrar paquetes npm en astro.config.mjs. Los plugins basados en 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 bundles de plugins descargados.
  • Un sandbox runner disponible.

En Cloudflare Workers, use 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 runner de Cloudflare usa Worker Loader para crear un Worker separado para cada plugin. Requiere el plan Workers Paid y un binding worker_loaders llamado LOADER. Los plugins sandboxed llegan a las APIs de contenido, medios, almacenamiento, red y correo a través de PluginBridge, por lo que el punto de entrada del Worker del sitio debe exportar esa clase.

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

En Node.js, instale el runner y su dependencia peer workerd:

npm install @emdash-cms/sandbox-workerd workerd

El proceso workerd ejecuta el código del plugin por separado del servidor Node.js. Seleccione el runner 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",
		}),
	],
});

Consulte Sandbox de plugins para la configuración de desarrollo, requisitos de runtime, límites de recursos y errores de runner no disponible en ambas plataformas.

Instalar desde el registro

  1. Abra Registry en el panel de administración.
  2. Busque un plugin y abra su página de detalle.
  3. Seleccione una release y revise su publisher, metadatos, permisos solicitados y estado de verificación.
  4. Seleccione Install.
  5. Revise los identificadores de release verificados y los permisos en el diálogo de consentimiento, y confirme.

EmDash verifica los registros firmados actuales del publisher y comprueba el bundle descargado antes de cargarlo a través del sandbox runner. El plugin aparece en Plugins, donde puede deshabilitarlo o configurarlo. Consulte El registro de plugins para el modelo completo de verificación y confianza.

Revisar permisos

El diálogo de consentimiento muestra cada permiso declarado por el plugin. Los permisos comunes incluyen:

PermisoAcceso concedido
content:readLeer contenido del sitio
content:writeCrear, actualizar y eliminar contenido
content:revisions:readLeer el historial de revisiones de contenido retenido
schema:readLeer definiciones de colección y campos
redirects:readLeer reglas de redirección
redirects:writeCambiar a dónde se envía a los visitantes
media:readLeer metadatos seguros de medios listos
media:bytes:readLeer el contenido del archivo y el hash de contenido de medios listos
media:metadata:writeCambiar texto alt, subtítulos y puntos focales de medios
media:writeSubir, reemplazar y eliminar medios
network:requestEnviar peticiones a la lista de hosts permitidos del plugin

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

Actualizar un plugin

  1. Abra Plugins en el panel de administración.
  2. Seleccione Check for updates.
  3. Seleccione Update en un plugin del registro con una release disponible.
  4. Revise el diálogo de consentimiento y confirme la actualización.

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

Desinstalar un plugin

  1. Abra Plugins en el panel de administración y expanda el plugin instalado.
  2. Seleccione Uninstall.
  3. Seleccione Also delete plugin storage data solo si no necesita los datos almacenados del plugin para una reinstalación posterior.
  4. Confirme la desinstalación.

EmDash elimina el bundle instalado y deja de cargar el plugin. Los datos de almacenamiento del plugin permanecen por defecto.

Instalar desde npm

Los plugins nativos y los plugins sandboxed gestionados por configuración se instalan como dependencias npm. Siga 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 configuración cambian cuando actualiza la dependencia npm y despliega 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: []
Instalar y actualizarPanel de administraciónCambio de dependencia y despliegueCambio de dependencia y despliegue
EjecuciónSandbox runner configuradoSandbox runner configuradoProceso del sitio
Acceso a EmDashSolo APIs de plugin declaradasSolo APIs de plugin declaradasAPIs de plugin declaradas más acceso directo al proceso
APIs de Node.js y fetch() directoNo disponibleNo disponibleDisponible
Componentes de admin ReactNo disponibleNo disponibleDisponible
Renderizadores de Portable TextNo disponibleNo disponibleDisponible

Use un plugin nativo cuando necesite componentes de admin React, renderizadores de Portable Text, fragmentos de página o acceso directo al proceso del sitio. Use un plugin sandboxed cuando pueda trabajar a través de las APIs de plugin declaradas.