From 7b71926c7f7a15e03ac4b9e431ad15416ac99f86 Mon Sep 17 00:00:00 2001 From: pham Date: Tue, 21 Apr 2026 13:15:17 +0800 Subject: [PATCH] remove dead dashboard admin routes --- .../handler/admin/dashboard_handler_cache_test.go | 7 +++---- .../handler/admin/dashboard_handler_request_type_test.go | 8 ++++---- backend/internal/server/routes/admin.go | 6 ------ backend/internal/server/routes/admin_routes_test.go | 6 ++++++ .../src/router/__tests__/deprecatedAdminFeatures.spec.ts | 2 ++ 5 files changed, 15 insertions(+), 14 deletions(-) diff --git a/backend/internal/handler/admin/dashboard_handler_cache_test.go b/backend/internal/handler/admin/dashboard_handler_cache_test.go index ec888849..69cbf725 100644 --- a/backend/internal/handler/admin/dashboard_handler_cache_test.go +++ b/backend/internal/handler/admin/dashboard_handler_cache_test.go @@ -61,7 +61,6 @@ func (r *dashboardUsageRepoCacheProbe) GetUserUsageTrend( func resetDashboardReadCachesForTest() { dashboardTrendCache = newSnapshotCache(30 * time.Second) dashboardUsersTrendCache = newSnapshotCache(30 * time.Second) - dashboardAPIKeysTrendCache = newSnapshotCache(30 * time.Second) dashboardModelStatsCache = newSnapshotCache(30 * time.Second) dashboardGroupStatsCache = newSnapshotCache(30 * time.Second) dashboardSnapshotV2Cache = newSnapshotCache(30 * time.Second) @@ -76,15 +75,15 @@ func TestDashboardHandler_GetUsageTrend_UsesCache(t *testing.T) { dashboardSvc := service.NewDashboardService(repo, nil, nil, nil) handler := NewDashboardHandler(dashboardSvc, nil) router := gin.New() - router.GET("/admin/dashboard/trend", handler.GetUsageTrend) + router.GET("/admin/dashboard/snapshot-v2", handler.GetSnapshotV2) - req1 := httptest.NewRequest(http.MethodGet, "/admin/dashboard/trend?start_date=2026-03-01&end_date=2026-03-07&granularity=day", nil) + req1 := httptest.NewRequest(http.MethodGet, "/admin/dashboard/snapshot-v2?start_date=2026-03-01&end_date=2026-03-07&granularity=day&include_stats=false&include_trend=true&include_model_stats=false&include_group_stats=false&include_users_trend=false", nil) rec1 := httptest.NewRecorder() router.ServeHTTP(rec1, req1) require.Equal(t, http.StatusOK, rec1.Code) require.Equal(t, "miss", rec1.Header().Get("X-Snapshot-Cache")) - req2 := httptest.NewRequest(http.MethodGet, "/admin/dashboard/trend?start_date=2026-03-01&end_date=2026-03-07&granularity=day", nil) + req2 := httptest.NewRequest(http.MethodGet, "/admin/dashboard/snapshot-v2?start_date=2026-03-01&end_date=2026-03-07&granularity=day&include_stats=false&include_trend=true&include_model_stats=false&include_group_stats=false&include_users_trend=false", nil) rec2 := httptest.NewRecorder() router.ServeHTTP(rec2, req2) require.Equal(t, http.StatusOK, rec2.Code) diff --git a/backend/internal/handler/admin/dashboard_handler_request_type_test.go b/backend/internal/handler/admin/dashboard_handler_request_type_test.go index 6056f725..5e1cb900 100644 --- a/backend/internal/handler/admin/dashboard_handler_request_type_test.go +++ b/backend/internal/handler/admin/dashboard_handler_request_type_test.go @@ -71,7 +71,7 @@ func newDashboardRequestTypeTestRouter(repo *dashboardUsageRepoCapture) *gin.Eng dashboardSvc := service.NewDashboardService(repo, nil, nil, nil) handler := NewDashboardHandler(dashboardSvc, nil) router := gin.New() - router.GET("/admin/dashboard/trend", handler.GetUsageTrend) + router.GET("/admin/dashboard/snapshot-v2", handler.GetSnapshotV2) router.GET("/admin/dashboard/models", handler.GetModelStats) router.GET("/admin/dashboard/users-ranking", handler.GetUserSpendingRanking) return router @@ -81,7 +81,7 @@ func TestDashboardTrendRequestTypePriority(t *testing.T) { repo := &dashboardUsageRepoCapture{} router := newDashboardRequestTypeTestRouter(repo) - req := httptest.NewRequest(http.MethodGet, "/admin/dashboard/trend?request_type=ws_v2&stream=bad", nil) + req := httptest.NewRequest(http.MethodGet, "/admin/dashboard/snapshot-v2?request_type=ws_v2&stream=bad&include_stats=false&include_trend=true&include_model_stats=false&include_group_stats=false&include_users_trend=false", nil) rec := httptest.NewRecorder() router.ServeHTTP(rec, req) @@ -95,7 +95,7 @@ func TestDashboardTrendInvalidRequestType(t *testing.T) { repo := &dashboardUsageRepoCapture{} router := newDashboardRequestTypeTestRouter(repo) - req := httptest.NewRequest(http.MethodGet, "/admin/dashboard/trend?request_type=bad", nil) + req := httptest.NewRequest(http.MethodGet, "/admin/dashboard/snapshot-v2?request_type=bad&include_stats=false&include_trend=true&include_model_stats=false&include_group_stats=false&include_users_trend=false", nil) rec := httptest.NewRecorder() router.ServeHTTP(rec, req) @@ -106,7 +106,7 @@ func TestDashboardTrendInvalidStream(t *testing.T) { repo := &dashboardUsageRepoCapture{} router := newDashboardRequestTypeTestRouter(repo) - req := httptest.NewRequest(http.MethodGet, "/admin/dashboard/trend?stream=bad", nil) + req := httptest.NewRequest(http.MethodGet, "/admin/dashboard/snapshot-v2?stream=bad&include_stats=false&include_trend=true&include_model_stats=false&include_group_stats=false&include_users_trend=false", nil) rec := httptest.NewRecorder() router.ServeHTTP(rec, req) diff --git a/backend/internal/server/routes/admin.go b/backend/internal/server/routes/admin.go index e700da99..47ea3a67 100644 --- a/backend/internal/server/routes/admin.go +++ b/backend/internal/server/routes/admin.go @@ -210,17 +210,11 @@ func registerDashboardRoutes(admin *gin.RouterGroup, h *handler.Handlers) { dashboard := admin.Group("/dashboard") { dashboard.GET("/snapshot-v2", h.Admin.Dashboard.GetSnapshotV2) - dashboard.GET("/stats", h.Admin.Dashboard.GetStats) - dashboard.GET("/trend", h.Admin.Dashboard.GetUsageTrend) dashboard.GET("/models", h.Admin.Dashboard.GetModelStats) - dashboard.GET("/groups", h.Admin.Dashboard.GetGroupStats) - dashboard.GET("/api-keys-trend", h.Admin.Dashboard.GetAPIKeyUsageTrend) dashboard.GET("/users-trend", h.Admin.Dashboard.GetUserUsageTrend) dashboard.GET("/users-ranking", h.Admin.Dashboard.GetUserSpendingRanking) dashboard.POST("/users-usage", h.Admin.Dashboard.GetBatchUsersUsage) - dashboard.POST("/api-keys-usage", h.Admin.Dashboard.GetBatchAPIKeysUsage) dashboard.GET("/user-breakdown", h.Admin.Dashboard.GetUserBreakdown) - dashboard.POST("/aggregation/backfill", h.Admin.Dashboard.BackfillAggregation) } } diff --git a/backend/internal/server/routes/admin_routes_test.go b/backend/internal/server/routes/admin_routes_test.go index 4fb9d930..1c192757 100644 --- a/backend/internal/server/routes/admin_routes_test.go +++ b/backend/internal/server/routes/admin_routes_test.go @@ -29,6 +29,12 @@ func TestRegisterAdminRoutes_OmitsDeprecatedMockEndpoints(t *testing.T) { deprecatedRoutes := []string{ "GET /api/v1/admin/dashboard/realtime", + "GET /api/v1/admin/dashboard/stats", + "GET /api/v1/admin/dashboard/trend", + "GET /api/v1/admin/dashboard/groups", + "GET /api/v1/admin/dashboard/api-keys-trend", + "POST /api/v1/admin/dashboard/api-keys-usage", + "POST /api/v1/admin/dashboard/aggregation/backfill", "GET /api/v1/admin/groups/:id/stats", "GET /api/v1/admin/users/:id/usage", "GET /api/v1/admin/proxies/:id/stats", diff --git a/frontend/src/router/__tests__/deprecatedAdminFeatures.spec.ts b/frontend/src/router/__tests__/deprecatedAdminFeatures.spec.ts index ea376be2..522c147a 100644 --- a/frontend/src/router/__tests__/deprecatedAdminFeatures.spec.ts +++ b/frontend/src/router/__tests__/deprecatedAdminFeatures.spec.ts @@ -25,9 +25,11 @@ describe('deprecated admin features', () => { }) it('does not expose dead dashboard admin wrappers', () => { + expect(adminDashboardApiSource).not.toContain('getStats,') expect(adminDashboardApiSource).not.toContain('getUsageTrend,') expect(adminDashboardApiSource).not.toContain('getGroupStats,') expect(adminDashboardApiSource).not.toContain('getApiKeyUsageTrend,') expect(adminDashboardApiSource).not.toContain('getBatchApiKeysUsage') + expect(adminDashboardApiSource).not.toContain('backfillAggregation') }) })