O registro de plugins é o sucessor descentralizado do marketplace central. Nenhuma autoridade única o possui ou decide quais plugins são listados, e o índice que torna plugins descobríveis — o agregador — é algo que qualquer um pode executar. Quando você aponta seu site para um registro, o painel de administração navega e instala plugins de lá em vez do marketplace.
É construído sobre o AT Protocol, a rede por trás do Bluesky.
Registro vs. marketplace
Tanto o marketplace quanto o registro permitem que um administrador navegue, instale, atualize e remova plugins sandboxed do painel de administração. A experiência de instalação — consentimento de capacidades, verificação de checksum, o runner de sandbox — é a mesma. Diferem em quem controla o catálogo e em quem você confia.
| Marketplace | Registro | |
|---|---|---|
| Controle | Uma empresa possui e opera | Sem proprietário central; qualquer um pode executar um agregador |
| Descoberta | Servido pelo serviço marketplace | Servido por um agregador que indexa a rede |
| Moderação | O operador verifica listagens e pode removê-las | Rotuladores emitem rótulos de remoção e verificação que você escolhe aceitar |
| Em quem você confia | O operador do marketplace | O agregador para o qual você aponta, mais quaisquer rotuladores que aceitar |
Você configura um ou outro para um dado site. Quando experimental.registry está definido, os fluxos de navegação e instalação do admin usam o registro.
Habilitar o registro
O registro requer um sandboxRunner, porque plugins do registro sempre rodam em sandbox. Veja Instalando Plugins para a configuração do runner.
A seguinte configuração aponta um site para o agregador de referência:
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",
},
}),
],
});
A string URL simples é uma abreviação. Use a forma de objeto quando precisar de um rotulador ou uma política de idade 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"],
},
},
},
})
A URL do agregador deve ser HTTPS em produção (http://localhost é permitido em desenvolvimento).
Opções de configuração
acceptLabelers— uma lista separada por vírgulas de DIDs de rotuladores encaminhados ao agregador. Rotuladores aplicam rótulos de remoção e verificação; o agregador filtra e anota resultados de acordo com os que você aceita. Quando não definido, o agregador aplica seu conjunto padrão de operador.policy.minimumReleaseAge— retém releases mais novos que esta idade ao escolher a versão para instalar ou atualizar, ampliando a janela para uma remoção chegar antes que um release comprometido alcance seu site. Aceita uma string de duração ("24h","7d") ou um número de segundos.policy.minimumReleaseAgeExclude— DIDs isentos da retenção, para publicadores cujo ritmo de release você aceitou explicitamente (como seus próprios plugins first-party). Cada entrada é um DID de publicador simples, ou um par<did>/<slug>para isentar um único pacote. Apenas DIDs são aceitos, não handles.
Navegar e instalar
- Abra o painel de administração e navegue até Plugins > Registro.
- Navegue ou pesquise. Cada resultado mostra o handle verificado do publicador, a versão mais recente e quaisquer rótulos.
- Abra um plugin para ver seu README, capturas de tela, acesso declarado e histórico de releases.
- Clique em Instalar e revise o diálogo de consentimento de capacidades.
- Confirme.
A instalação verifica os bytes baixados contra o checksum do release, confirma que o id do plugin e versão do bundle correspondem ao release, e confirma que suas capacidades declaradas correspondem ao que você aprovou. Atualizações e desinstalação funcionam como para plugins do marketplace.
Modelo de confiança
O registro é descentralizado, então a confiança é explícita. Antes de ativar um plugin, o EmDash verifica independentemente que o hash dos bytes do artefato corresponde ao checksum do release, que o bundle endereça o id do plugin e versão que declara, e que suas capacidades correspondem ao diálogo de consentimento.
O que ler a seguir
- Instalando Plugins — fluxos de instalação do marketplace e baseados em configuração
- Empacotamento e publicação — publicar seu próprio plugin no registro
- Consultando o registro — construir um diretório de plugins ou página de busca contra a API de descoberta do registro
- Capacidades e segurança — o contrato de confiança do sandbox
- RFC 0001 — o design do protocolo, para contribuidores e operadores de agregadores