Il registro dei plugin

In questa pagina

Il registro dei plugin è il successore decentralizzato del marketplace centrale. Nessuna autorità singola lo possiede o decide quali plugin sono elencati, e l’indice che rende i plugin scopribili — l’aggregatore — è qualcosa che chiunque può eseguire. Quando punti il tuo sito a un registro, il pannello di amministrazione naviga e installa plugin da lì invece che dal marketplace.

È costruito sull’AT Protocol, la rete dietro Bluesky.

Registro vs. marketplace

Sia il marketplace che il registro permettono a un amministratore di navigare, installare, aggiornare e rimuovere plugin sandboxed dal pannello di amministrazione. L’esperienza di installazione — consenso delle capacità, verifica del checksum, il runner sandbox — è la stessa. Differiscono in chi controlla il catalogo e in chi ti fidi.

MarketplaceRegistro
ControlloUn’azienda lo possiede e gestisceNessun proprietario centrale; chiunque può eseguire un aggregatore
ScopertaServito dal servizio marketplaceServito da un aggregatore che indicizza la rete
ModerazioneL’operatore verifica i listing e può rimuoverliI labeller emettono label di rimozione e verifica che scegli di accettare
Di chi ti fidiL’operatore del marketplaceL’aggregatore a cui punti, più qualsiasi labeller che accetti

Configuri uno o l’altro per un dato sito. Quando experimental.registry è impostato, i flussi di navigazione e installazione dell’admin usano il registro.

Abilitare il registro

Il registro richiede un sandboxRunner, perché i plugin del registro eseguono sempre in sandbox. Vedi Installare Plugin per la configurazione del runner.

La seguente configurazione punta un sito all’aggregatore di riferimento:

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 stringa URL semplice è una scorciatoia. Usa la forma oggetto quando hai bisogno di un labeller o di una policy sull’età delle 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"],
      },
    },
  },
})

L’URL dell’aggregatore deve essere HTTPS in produzione (http://localhost è permesso in sviluppo).

Opzioni di configurazione

  • acceptLabelers — una lista separata da virgole di DID dei labeller inoltrati all’aggregatore. I labeller applicano label di rimozione e verifica; l’aggregatore filtra e annota i risultati secondo quelli che accetti. Quando non impostato, l’aggregatore applica il suo set operatore predefinito.
  • policy.minimumReleaseAge — trattiene le release più recenti di questa età quando si sceglie la versione da installare o aggiornare, allargando la finestra perché una rimozione arrivi prima che una release compromessa raggiunga il tuo sito. Accetta una stringa di durata ("24h", "7d") o un numero di secondi.
  • policy.minimumReleaseAgeExclude — DID esenti dalla trattenuta, per publisher il cui ritmo di release hai esplicitamente accettato (come i tuoi plugin first-party). Ogni voce è un DID publisher nudo, o una coppia <did>/<slug> per esentare un singolo pacchetto. Solo i DID sono accettati, non gli handle.

Sfogliare e installare

  1. Apri il pannello di amministrazione e naviga a Plugin > Registro.
  2. Sfoglia o cerca. Ogni risultato mostra l’handle verificato del publisher, l’ultima versione e qualsiasi label.
  3. Apri un plugin per vedere il suo README, screenshot, accesso dichiarato e cronologia delle release.
  4. Clicca Installa e rivedi il dialogo di consenso delle capacità.
  5. Conferma.

L’installazione verifica i byte scaricati contro il checksum della release, conferma che l’id del plugin e la versione del bundle corrispondono alla release, e conferma che le sue capacità dichiarate corrispondono a ciò che hai approvato. Aggiornamenti e disinstallazione funzionano come per i plugin del marketplace.

Modello di fiducia

Il registro è decentralizzato, quindi la fiducia è esplicita. Prima di attivare un plugin, EmDash verifica indipendentemente che l’hash dei byte dell’artefatto corrisponda al checksum della release, che il bundle indirizzi l’id del plugin e la versione che dichiara, e che le sue capacità corrispondano al dialogo di consenso.

Cosa leggere dopo