Skip to content

Registry Web Service

The SemRels Plugin Registry is live at registry.semrel.io. The Go web service provides the public plugin catalog, REST API, and authenticated admin workflows. The static plugins.json index remains available as a machine-readable compatibility endpoint.

Better discovery

A REST API makes it easier to search, filter, paginate, and inspect plugin versions.

Operational workflows

Admin endpoints unlock managed plugin and version updates instead of editing generated files by hand.

Registry UI and dashboard

The browser-based registry UI is live, with an authenticated admin dashboard for registry maintainers.

  • Public registry: the browser UI at registry.semrel.io
  • Admin dashboard: authenticated management views at registry.semrel.io/admin
  • Web service: Go API serving plugin discovery, versions, submissions, and administration
  • Compatibility index: static plugins.json for clients that consume the machine-readable index directly
EndpointPurpose
GET /healthHealth check for load balancers and deployment verification
GET /api/v1/pluginsList plugins with pagination and optional category, search, and sort filters
GET /api/v1/plugins/:idFetch a single plugin by numeric ID or plugin name
GET /api/v1/plugins/:id/versionsList versions for a plugin with limit and offset
POST /api/v1/pluginsCreate a plugin record (authentication required)
PUT /api/v1/plugins/:idUpdate plugin metadata (owner or admin)
DELETE /api/v1/plugins/:idSoft-delete a plugin (owner or admin)
POST /api/v1/plugins/:id/versionsCreate a plugin version record (owner or admin)
GET /api/v1/admin/statusReturn current admin and service status (admin access required)

The production backend uses:

  • Go + Gin for the HTTP API
  • PostgreSQL 16 for persistent plugin and version data
  • golang-migrate to run SQL migrations automatically at startup
  • Docker for local development and container image builds

Important runtime settings:

VariablePurpose
PORTHTTP listen address
DATABASE_URLPostgreSQL connection string
MIGRATE_DIRMigration directory loaded on startup
ENVIRONMENTRuntime mode such as dev or prod
ADMIN_TOKENOptional static admin credential for local development; production uses authenticated admin sessions

Local development starts PostgreSQL through docker compose and runs the API with go run main.go.

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

The authenticated admin dashboard is available for registry maintainers. It provides workflows to:

  • manage plugin records without editing generated files directly
  • review versions, checksums, and compatibility metadata
  • support moderation and operational visibility for registry maintainers

The public registry UI remains available without authentication for browsing plugins and versions.