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.
| Marktplatz | Registry | |
|---|---|---|
| Kontrolle | Ein Unternehmen besitzt und betreibt ihn | Kein zentraler Eigentümer; jeder kann einen Aggregator betreiben |
| Entdeckung | Wird vom Marktplatz-Service bereitgestellt | Wird von einem Aggregator bereitgestellt, der das Netzwerk indexiert |
| Moderation | Der Betreiber prüft Einträge und kann sie entfernen | Labeller geben Takedown- und Verifizierungslabels aus, die Sie akzeptieren |
| Wem Sie vertrauen | Dem Marktplatz-Betreiber | Dem 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
- Öffnen Sie das Admin-Panel und navigieren Sie zu Plugins > Registry.
- Durchsuchen oder suchen. Jedes Ergebnis zeigt den verifizierten Handle des Publishers, die neueste Version und etwaige Labels.
- Öffnen Sie ein Plugin, um dessen README, Screenshots, deklarierte Zugriffsrechte und Release-Historie zu sehen.
- Klicken Sie auf Installieren und überprüfen Sie den Fähigkeits-Zustimmungsdialog.
- 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
- Plugins installieren — Marktplatz- und konfigurationsbasierte Installations-Flows
- Bundling und Veröffentlichung — Ihr eigenes Plugin in der Registry veröffentlichen
- Die Registry abfragen — ein Plugin-Verzeichnis oder eine Suchseite gegen die Discovery-API der Registry erstellen
- Capabilities und Sicherheit — der Sandbox-Vertrauensvertrag
- RFC 0001 — das Protokoll-Design, für Mitwirkende und Aggregator-Betreiber