El registro de plugins es el sucesor descentralizado del marketplace central. Ninguna autoridad única lo posee o decide qué plugins se listan, y el índice que hace los plugins descubribles — el agregador — es algo que cualquiera puede ejecutar. Cuando apuntas tu sitio a un registro, el panel de administración busca e instala plugins desde ahí en lugar del marketplace.
Está construido sobre el AT Protocol, la red detrás de Bluesky.
Registro vs. marketplace
Tanto el marketplace como el registro permiten a un administrador buscar, instalar, actualizar y eliminar plugins sandboxed desde el panel de administración. La experiencia de instalación — consentimiento de capacidades, verificación de checksum, el runner de sandbox — es la misma. Difieren en quién controla el catálogo y en quién confías.
| Marketplace | Registro | |
|---|---|---|
| Control | Una empresa lo posee y opera | Sin propietario central; cualquiera puede ejecutar un agregador |
| Descubrimiento | Servido por el servicio del marketplace | Servido por un agregador que indexa la red |
| Moderación | El operador revisa listados y puede eliminarlos | Los etiquetadores emiten etiquetas de retiro y verificación que eliges aceptar |
| En quién confías | El operador del marketplace | El agregador al que apuntas, más cualquier etiquetador que aceptes |
Configuras uno u otro para un sitio dado. Cuando experimental.registry está configurado, los flujos de búsqueda e instalación del admin usan el registro.
Habilitar el registro
El registro requiere un sandboxRunner, porque los plugins del registro siempre se ejecutan en sandbox. Ver Instalar Plugins para la configuración del runner.
La siguiente configuración apunta un sitio al agregador de referencia:
import { defineConfig } from "astro/config";
import emdash from "emdash/astro";
export default defineConfig({
integrations: [
emdash({
sandboxRunner: "@emdash-cms/sandbox-cloudflare",
experimental: {
registry: "https://registry.emdashcms.com",
},
}),
],
});
La cadena URL simple es una abreviatura. Usa la forma de objeto cuando necesites un etiquetador o una política de antigüedad de release:
emdash({
sandboxRunner: "@emdash-cms/sandbox-cloudflare",
experimental: {
registry: {
aggregatorUrl: "https://registry.emdashcms.com",
acceptLabelers: "did:plc:emdashverification",
policy: {
minimumReleaseAge: "48h",
minimumReleaseAgeExclude: ["did:plc:yourfirstpartydid"],
},
},
},
})
La URL del agregador debe ser HTTPS en producción (http://localhost está permitido en desarrollo).
Opciones de configuración
acceptLabelers— una lista separada por comas de DIDs de etiquetadores reenviados al agregador. Los etiquetadores aplican etiquetas de retiro y verificación; el agregador filtra y anota los resultados según los que aceptas. Cuando no se establece, el agregador aplica su conjunto predeterminado de operador.policy.minimumReleaseAge— retiene releases más nuevos que esta antigüedad al elegir la versión a instalar o actualizar, ampliando la ventana para que un retiro llegue antes de que un release comprometido alcance tu sitio. Acepta una cadena de duración ("24h","7d") o un número de segundos.policy.minimumReleaseAgeExclude— DIDs exentos de la retención, para publicadores cuyo ritmo de releases has aceptado explícitamente (como tus propios plugins de primera parte). Cada entrada es un DID de publicador simple, o un par<did>/<slug>para eximir un solo paquete. Solo se aceptan DIDs, no handles.
Explorar e instalar
- Abre el panel de administración y navega a Plugins > Registro.
- Explora o busca. Cada resultado muestra el handle verificado del publicador, la última versión y cualquier etiqueta.
- Abre un plugin para ver su README, capturas de pantalla, acceso declarado e historial de releases.
- Haz clic en Instalar y revisa el diálogo de consentimiento de capacidades.
- Confirma.
La instalación verifica los bytes descargados contra el checksum del release, confirma que el id del plugin y la versión del bundle coinciden con el release, y confirma que sus capacidades declaradas coinciden con lo que aprobaste. Las actualizaciones y la desinstalación funcionan como con los plugins del marketplace.
Modelo de confianza
El registro es descentralizado, por lo que la confianza es explícita. Antes de activar un plugin, EmDash verifica independientemente que el hash de los bytes del artefacto coincide con el checksum del release, que el bundle se dirige al id del plugin y versión que declara, y que sus capacidades coinciden con el diálogo de consentimiento.
Qué leer a continuación
- Instalar Plugins — flujos de instalación del marketplace y basados en configuración
- Empaquetado y publicación — publicar tu propio plugin en el registro
- Consultar el registro — construir un directorio de plugins o página de búsqueda contra la API de descubrimiento del registro
- Capacidades y seguridad — el contrato de confianza del sandbox
- RFC 0001 — el diseño del protocolo, para contribuidores y operadores de agregadores