From 90c45a6e24d7f6f97f1cbe6e6d5929ddf04fcb3a Mon Sep 17 00:00:00 2001 From: pascal Date: Mon, 17 Nov 2025 12:13:04 +0100 Subject: [PATCH] add changeset support --- management/internals/server/boot.go | 9 +++++- management/server/http/handler.go | 49 ++++++++++++++++------------- 2 files changed, 36 insertions(+), 22 deletions(-) diff --git a/management/internals/server/boot.go b/management/internals/server/boot.go index eadd16c2d..90481d244 100644 --- a/management/internals/server/boot.go +++ b/management/internals/server/boot.go @@ -11,6 +11,7 @@ import ( "time" "github.com/google/uuid" + "github.com/gorilla/mux" grpcMiddleware "github.com/grpc-ecosystem/go-grpc-middleware/v2" "github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/realip" log "github.com/sirupsen/logrus" @@ -91,9 +92,15 @@ func (s *BaseServer) EventStore() activity.Store { }) } +func (s *BaseServer) Router() *mux.Router { + return Create(s, func() *mux.Router { + return nbhttp.NewRouter(s.AuthManager(), s.Metrics(), s.AccountManager()) + }) +} + func (s *BaseServer) APIHandler() http.Handler { return Create(s, func() http.Handler { - httpAPIHandler, err := nbhttp.NewAPIHandler(context.Background(), s.AccountManager(), s.NetworksManager(), s.ResourcesManager(), s.RoutesManager(), s.GroupsManager(), s.GeoLocationManager(), s.AuthManager(), s.Metrics(), s.IntegratedValidator(), s.ProxyController(), s.PermissionsManager(), s.PeersManager(), s.SettingsManager(), s.NetworkMapController()) + httpAPIHandler, err := nbhttp.NewAPIHandler(context.Background(), s.AccountManager(), s.NetworksManager(), s.ResourcesManager(), s.RoutesManager(), s.GroupsManager(), s.GeoLocationManager(), s.Router(), s.Metrics(), s.IntegratedValidator(), s.ProxyController(), s.PermissionsManager(), s.PeersManager(), s.SettingsManager(), s.NetworkMapController()) if err != nil { log.Fatalf("failed to create API handler: %v", err) } diff --git a/management/server/http/handler.go b/management/server/http/handler.go index c1a8c5885..794d29ac8 100644 --- a/management/server/http/handler.go +++ b/management/server/http/handler.go @@ -50,25 +50,11 @@ const ( rateLimitingRPMKey = "NB_API_RATE_LIMITING_RPM" ) -// NewAPIHandler creates the Management service HTTP API handler registering all the available endpoints. -func NewAPIHandler( - ctx context.Context, - accountManager account.Manager, - networksManager nbnetworks.Manager, - resourceManager resources.Manager, - routerManager routers.Manager, - groupsManager nbgroups.Manager, - LocationManager geolocation.Geolocation, +func NewRouter( authManager auth.Manager, appMetrics telemetry.AppMetrics, - integratedValidator integrated_validator.IntegratedValidator, - proxyController port_forwarding.Controller, - permissionsManager permissions.Manager, - peersManager nbpeers.Manager, - settingsManager settings.Manager, - networkMapController network_map.Controller, -) (http.Handler, error) { - + accountManager account.Manager, +) *mux.Router { var rateLimitingConfig *middleware.RateLimiterConfig if os.Getenv(rateLimitingEnabledKey) == "true" { rpm := 6 @@ -112,10 +98,31 @@ func NewAPIHandler( rootRouter := mux.NewRouter() metricsMiddleware := appMetrics.HTTPMiddleware() - prefix := apiPrefix - router := rootRouter.PathPrefix(prefix).Subrouter() - + router := rootRouter.PathPrefix(apiPrefix).Subrouter() router.Use(metricsMiddleware.Handler, corsMiddleware.Handler, authMiddleware.Handler) + return router +} + +// NewAPIHandler creates the Management service HTTP API handler registering all the available endpoints. +func NewAPIHandler( + ctx context.Context, + accountManager account.Manager, + networksManager nbnetworks.Manager, + resourceManager resources.Manager, + routerManager routers.Manager, + groupsManager nbgroups.Manager, + LocationManager geolocation.Geolocation, + router *mux.Router, + appMetrics telemetry.AppMetrics, + integratedValidator integrated_validator.IntegratedValidator, + proxyController port_forwarding.Controller, + permissionsManager permissions.Manager, + peersManager nbpeers.Manager, + settingsManager settings.Manager, + networkMapController network_map.Controller, +) (http.Handler, error) { + + prefix := apiPrefix if _, err := integrations.RegisterHandlers(ctx, prefix, router, accountManager, integratedValidator, appMetrics.GetMeter(), permissionsManager, peersManager, proxyController, settingsManager); err != nil { return nil, fmt.Errorf("register integrations endpoints: %w", err) @@ -134,5 +141,5 @@ func NewAPIHandler( events.AddEndpoints(accountManager, router) networks.AddEndpoints(networksManager, resourceManager, routerManager, groupsManager, accountManager, router) - return rootRouter, nil + return router, nil }