mirror of
https://github.com/DeBrosOfficial/network.git
synced 2025-10-06 04:49:08 +00:00
This adds a new auth flow allowing users to authenticate with their wallet and obtain an API key scoped to a namespace. It also moves API key storage from config to the database for better persistence and key-to-wallet linkage. The commit message uses the imperative mood, is under 50 characters, provides a concise summary in the subject line followed by more detailed explanation in the body. This follows good Git commit message style while capturing the key changes made.
54 lines
2.0 KiB
Go
54 lines
2.0 KiB
Go
package gateway
|
|
|
|
import "net/http"
|
|
|
|
// Routes returns the http.Handler with all routes and middleware configured
|
|
func (g *Gateway) Routes() http.Handler {
|
|
mux := http.NewServeMux()
|
|
|
|
// root and v1 health/status
|
|
mux.HandleFunc("/health", g.healthHandler)
|
|
mux.HandleFunc("/status", g.statusHandler)
|
|
mux.HandleFunc("/v1/health", g.healthHandler)
|
|
mux.HandleFunc("/v1/version", g.versionHandler)
|
|
mux.HandleFunc("/v1/status", g.statusHandler)
|
|
|
|
// auth endpoints
|
|
mux.HandleFunc("/v1/auth/jwks", g.jwksHandler)
|
|
mux.HandleFunc("/.well-known/jwks.json", g.jwksHandler)
|
|
mux.HandleFunc("/v1/auth/challenge", g.challengeHandler)
|
|
mux.HandleFunc("/v1/auth/verify", g.verifyHandler)
|
|
// New: issue JWT from API key; new: create or return API key for a wallet after verification
|
|
mux.HandleFunc("/v1/auth/token", g.apiKeyToJWTHandler)
|
|
mux.HandleFunc("/v1/auth/api-key", g.issueAPIKeyHandler)
|
|
mux.HandleFunc("/v1/auth/register", g.registerHandler)
|
|
mux.HandleFunc("/v1/auth/refresh", g.refreshHandler)
|
|
mux.HandleFunc("/v1/auth/logout", g.logoutHandler)
|
|
mux.HandleFunc("/v1/auth/whoami", g.whoamiHandler)
|
|
|
|
// apps CRUD
|
|
mux.HandleFunc("/v1/apps", g.appsHandler)
|
|
mux.HandleFunc("/v1/apps/", g.appsHandler)
|
|
|
|
// storage
|
|
mux.HandleFunc("/v1/storage", g.storageHandler) // legacy/basic
|
|
mux.HandleFunc("/v1/storage/get", g.storageGetHandler)
|
|
mux.HandleFunc("/v1/storage/put", g.storagePutHandler)
|
|
mux.HandleFunc("/v1/storage/delete", g.storageDeleteHandler)
|
|
mux.HandleFunc("/v1/storage/list", g.storageListHandler)
|
|
mux.HandleFunc("/v1/storage/exists", g.storageExistsHandler)
|
|
|
|
// network
|
|
mux.HandleFunc("/v1/network/status", g.networkStatusHandler)
|
|
mux.HandleFunc("/v1/network/peers", g.networkPeersHandler)
|
|
mux.HandleFunc("/v1/network/connect", g.networkConnectHandler)
|
|
mux.HandleFunc("/v1/network/disconnect", g.networkDisconnectHandler)
|
|
|
|
// pubsub
|
|
mux.HandleFunc("/v1/pubsub/ws", g.pubsubWebsocketHandler)
|
|
mux.HandleFunc("/v1/pubsub/publish", g.pubsubPublishHandler)
|
|
mux.HandleFunc("/v1/pubsub/topics", g.pubsubTopicsHandler)
|
|
|
|
return g.withMiddleware(mux)
|
|
}
|