Bessere Erkennung
Eine REST-API macht es einfacher, Plugins zu suchen, zu filtern, zu paginieren und Plugin-Versionen zu prüfen.
Die Registry wird aktuell als statischer plugins.json-Index ausgeliefert, der über GitHub Pages bereitgestellt wird. Der Registry-Web-Service ist die nächste Phase: ein Go-Backend, das registry.semrel.io mit umfangreicheren Discovery- und Verwaltungsfunktionen versorgen wird.
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.
Zukünftige UI
Das Backend schafft die Grundlage für eine browserbasierte Registry-UI und später ein Admin-Dashboard.
plugins.json, bereitgestellt über GitHub Pagesregistry.semrel.io| Endpunkt | Zweck |
|---|---|
GET /health | Zustandsprüfung für Load Balancer und Deployment-Verifikation |
GET /api/v1/plugins | Plugins mit Paginierung und optionalen Filtern category, search und sort auflisten |
GET /api/v1/plugins/:id | Ein einzelnes Plugin anhand numerischer ID oder Plugin-Name abrufen |
GET /api/v1/plugins/:id/versions | Versionen eines Plugins mit limit und offset auflisten |
POST /api/v1/plugins | Einen Plugin-Datensatz erstellen (Admin-Token erforderlich) |
PUT /api/v1/plugins/:id | Plugin-Metadaten aktualisieren (Admin-Token erforderlich) |
DELETE /api/v1/plugins/:id | Ein Plugin per Soft-Delete löschen (Admin-Token erforderlich) |
POST /api/v1/plugins/:id/versions | Einen Plugin-Versionsdatensatz erstellen (Admin-Token erforderlich) |
GET /api/v1/admin/status | Platzhalter-Endpunkt für Admin-Status für zukünftige Dashboard-Arbeit |
Das aktuelle Backend-Grundgerüst nutzt:
golang-migrate zum automatischen Ausführen von SQL-Migrationen beim StartWichtige Laufzeiteinstellungen:
| Variable | Zweck |
|---|---|
PORT | HTTP-Listenadresse |
DATABASE_URL | PostgreSQL-Verbindungszeichenfolge |
MIGRATE_DIR | Migrationsverzeichnis, das beim Start geladen wird |
ENVIRONMENT | Laufzeitmodus wie dev oder prod |
ADMIN_TOKEN | Bearer-Token, das Admin-Endpunkte schützt |
Für die lokale Entwicklung startest du PostgreSQL über docker compose und führst die API mit go run main.go aus.
docker compose up -dcp .env.example .envgo run main.gocurl http://localhost:8080/healthFür eine spätere Phase ist ein browserbasiertes Admin-Dashboard geplant. Die erwarteten Ziele sind:
Aktuell enthält die API die Backend-Grundlagen und eine Platzhalter-Route GET /api/v1/admin/status, die sich parallel zur Dashboard-Arbeit weiterentwickeln wird.