Zum Inhalt springen

Registry-Web-Service

Die SemRels Plugin Registry ist unter registry.semrel.io live. Der Go-Web-Service stellt den öffentlichen Plugin-Katalog, die REST-API und authentifizierte Verwaltungsabläufe bereit. Der statische plugins.json-Index bleibt als maschinenlesbarer Kompatibilitäts-Endpunkt verfügbar.

Bessere Erkennung

Eine REST-API macht es einfacher, Plugins zu suchen, zu filtern, zu paginieren und Plugin-Versionen zu prüfen.

Operative Abläufe

Admin-Endpunkte ermöglichen verwaltete Plugin- und Versions-Updates, statt generierte Dateien von Hand zu bearbeiten.

Registry-UI und Dashboard

Die browserbasierte Registry-UI ist live und enthält ein authentifiziertes Admin-Dashboard für Registry-Maintainer.

  • Öffentliche Registry: die Browser-UI auf registry.semrel.io
  • Admin-Dashboard: authentifizierte Verwaltungsansichten auf registry.semrel.io/admin
  • Web-Service: Go-API für Plugin-Discovery, Versionen, Einreichungen und Verwaltung
  • Kompatibilitätsindex: statisches plugins.json für Clients, die den maschinenlesbaren Index direkt konsumieren
EndpunktZweck
GET /healthZustandsprüfung für Load Balancer und Deployment-Verifikation
GET /api/v1/pluginsPlugins mit Paginierung und optionalen Filtern category, search und sort auflisten
GET /api/v1/plugins/:idEin einzelnes Plugin anhand numerischer ID oder Plugin-Name abrufen
GET /api/v1/plugins/:id/versionsVersionen eines Plugins mit limit und offset auflisten
POST /api/v1/pluginsEinen Plugin-Datensatz erstellen (Authentifizierung erforderlich)
PUT /api/v1/plugins/:idPlugin-Metadaten aktualisieren (Eigentümer:in oder Admin)
DELETE /api/v1/plugins/:idEin Plugin per Soft-Delete löschen (Eigentümer:in oder Admin)
POST /api/v1/plugins/:id/versionsEinen Plugin-Versionsdatensatz erstellen (Eigentümer:in oder Admin)
GET /api/v1/admin/statusLiefert den aktuellen Admin- und Service-Status (Admin-Zugriff erforderlich)

Das produktive Backend nutzt:

  • Go + Gin für die HTTP-API
  • PostgreSQL 16 für persistente Plugin- und Versionsdaten
  • golang-migrate zum automatischen Ausführen von SQL-Migrationen beim Start
  • Docker für lokale Entwicklung und Builds von Container-Images

Wichtige Laufzeiteinstellungen:

VariableZweck
PORTHTTP-Listenadresse
DATABASE_URLPostgreSQL-Verbindungszeichenfolge
MIGRATE_DIRMigrationsverzeichnis, das beim Start geladen wird
ENVIRONMENTLaufzeitmodus wie dev oder prod
ADMIN_TOKENOptionaler statischer Admin-Zugang für die lokale Entwicklung; in Produktion werden authentifizierte Admin-Sitzungen verwendet

Für die lokale Entwicklung startest du PostgreSQL über docker compose und führst die API mit go run main.go aus.

Terminal-Fenster
docker compose up -d
cp .env.example .env
go run main.go
curl http://localhost:8080/health

Das authentifizierte Admin-Dashboard ist für Registry-Maintainer verfügbar. Es bietet Abläufe zum:

  • Plugin-Datensätze verwalten, ohne generierte Dateien direkt zu bearbeiten
  • Versionen, Prüfsummen und Kompatibilitätsmetadaten prüfen
  • Moderation und operative Sichtbarkeit für Registry-Maintainer unterstützen

Die öffentliche Registry-UI bleibt zum Durchsuchen von Plugins und Versionen ohne Authentifizierung verfügbar.