Die Plugin-Registry

Auf dieser Seite

Die Plugin-Registry ist der dezentralisierte Nachfolger des zentralen Marktplatzes. Keine einzelne Autorität besitzt sie oder entscheidet, welche Plugins gelistet werden, und der Index, der Plugins auffindbar macht — der Aggregator — ist etwas, das jeder betreiben kann. Wenn Sie Ihre Seite auf eine Registry verweisen, durchsucht und installiert das Admin-Dashboard Plugins von dort statt vom Marktplatz.

Sie basiert auf dem AT Protocol, dem Netzwerk hinter Bluesky.

Registry vs. Marktplatz

Sowohl der Marktplatz als auch die Registry ermöglichen es einem Administrator, Sandbox-Plugins über das Admin-Dashboard zu durchsuchen, zu installieren, zu aktualisieren und zu entfernen. Die Installations-Erfahrung — Fähigkeits-Zustimmung, Prüfsummenverifizierung, der Sandbox-Runner — ist die gleiche. Sie unterscheiden sich darin, wer den Katalog kontrolliert und wem Sie vertrauen.

MarktplatzRegistry
KontrolleEin Unternehmen besitzt und betreibt ihnKein zentraler Eigentümer; jeder kann einen Aggregator betreiben
EntdeckungWird vom Marktplatz-Service bereitgestelltWird von einem Aggregator bereitgestellt, der das Netzwerk indexiert
ModerationDer Betreiber prüft Einträge und kann sie entfernenLabeller geben Takedown- und Verifizierungslabels aus, die Sie akzeptieren
Wem Sie vertrauenDem Marktplatz-BetreiberDem Aggregator, auf den Sie verweisen, plus allen Labellern, die Sie akzeptieren

Sie konfigurieren eines von beiden für eine gegebene Seite. Wenn experimental.registry gesetzt ist, verwenden die Browse- und Installations-Flows des Admins die Registry.

Registry aktivieren

Die Registry erfordert einen sandboxRunner, da Registry-Plugins immer in einer Sandbox laufen. Siehe Plugins installieren für das Runner-Setup.

Die folgende Konfiguration verweist eine Seite auf den Referenz-Aggregator:

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",
      },
    }),
  ],
});

Der einfache URL-String ist eine Kurzform. Verwenden Sie die Objekt-Form, wenn Sie einen Labeller oder eine Release-Alters-Richtlinie benötigen:

emdash({
  sandboxRunner: "@emdash-cms/sandbox-cloudflare",
  experimental: {
    registry: {
      aggregatorUrl: "https://registry.emdashcms.com",
      acceptLabelers: "did:plc:emdashverification",
      policy: {
        minimumReleaseAge: "48h",
        minimumReleaseAgeExclude: ["did:plc:yourfirstpartydid"],
      },
    },
  },
})

Die Aggregator-URL muss in der Produktion HTTPS sein (http://localhost ist in der Entwicklung erlaubt).

Konfigurationsoptionen

  • acceptLabelers — eine kommagetrennte Liste von Labeller-DIDs, die an den Aggregator weitergeleitet werden. Labeller vergeben Takedown- und Verifizierungslabels; der Aggregator filtert und annotiert Ergebnisse gemäß denen, die Sie akzeptieren. Wenn nicht gesetzt, wendet der Aggregator seinen Standard-Operator-Satz an.
  • policy.minimumReleaseAge — hält Releases zurück, die neuer als dieses Alter sind, wenn die zu installierende oder zu aktualisierende Version ausgewählt wird, wodurch das Zeitfenster für einen Takedown erweitert wird, bevor ein kompromittiertes Release Ihre Seite erreicht. Akzeptiert einen Dauer-String ("24h", "7d") oder eine Anzahl von Sekunden.
  • policy.minimumReleaseAgeExclude — DIDs, die vom Zurückhalten ausgenommen sind, für Publisher, deren Release-Tempo Sie explizit akzeptiert haben (wie Ihre eigenen First-Party-Plugins). Jeder Eintrag ist eine nackte Publisher-DID oder ein <did>/<slug>-Paar, um ein einzelnes Paket auszunehmen. Nur DIDs werden akzeptiert, keine Handles.

Durchsuchen und installieren

  1. Öffnen Sie das Admin-Panel und navigieren Sie zu Plugins > Registry.
  2. Durchsuchen oder suchen. Jedes Ergebnis zeigt den verifizierten Handle des Publishers, die neueste Version und etwaige Labels.
  3. Öffnen Sie ein Plugin, um dessen README, Screenshots, deklarierte Zugriffsrechte und Release-Historie zu sehen.
  4. Klicken Sie auf Installieren und überprüfen Sie den Fähigkeits-Zustimmungsdialog.
  5. Bestätigen.

Die Installation verifiziert die heruntergeladenen Bytes gegen die Release-Prüfsumme, bestätigt, dass die Plugin-ID und Version des Bundles mit dem Release übereinstimmen, und bestätigt, dass die deklarierten Fähigkeiten mit dem übereinstimmen, was Sie genehmigt haben. Updates und Deinstallation funktionieren wie bei Marktplatz-Plugins.

Vertrauensmodell

Die Registry ist dezentralisiert, daher ist Vertrauen explizit. Bevor ein Plugin aktiviert wird, verifiziert EmDash unabhängig, dass der Artifact-Bytes-Hash mit der Release-Prüfsumme übereinstimmt, dass das Bundle die Plugin-ID und Version adressiert, die es beansprucht, und dass seine Fähigkeiten mit dem Zustimmungsdialog übereinstimmen.

Weiterführende Lektüre