feat: 新增日志中心、功能优化与代码重构
- 新增 log_datasource.go / log_proxy.go / user_api_token.go 后端控制器 - 新增 log_datasource.go model - 新增 monitor/log-center.ts API 模块 - 新增 LogCenter 前端组件及页面 - 重构 deployment 相关组件 (HPDA/UpdateImageModal/bundle-yaml 等) - 新增 ResetPasswordDialog / code-snippet-block / copy-button 等 UI 组件 - 重构多个 k8s 相关组件 (TopologyView/ResourceVisualEditor/PodFileBrowser 等) - 更新多个 API 和工具函数 (auth.ts/monitor/index.ts/request.ts 等) - 更新静态资源 (index.html + 新 JS/CSS bundle) - 删除废弃静态资源文件
This commit is contained in:
1 parent
5ca0e6d83a
commit
8d46e8f352
197 files changed
+5014
-815
No files matched your search
@@ -65,10 +65,10 @@ func Register(r *gin.Engine, db *gorm.DB, log *zap.Logger, cfg *config.Config, c
|
||||
// WebSocket终端 (JWT 鉴权,支持 ?token= 查询参数;终端会话录制) // Logan.Li
|
||||
auditHub := controller.NewAuditHub()
|
||||
webShellHandler := controller.NewWebShellHandler(db, auditHub)
|
||||
r.GET("/ws/terminal", middleware.JWTAuth(&cfg.JWT), webShellHandler.Terminal)
|
||||
r.GET("/ws/terminal", middleware.JWTAuth(&cfg.JWT, db), webShellHandler.Terminal)
|
||||
|
||||
// WebSocket 审计实时流 — 在线会话实时查看 // Logan.Li
|
||||
r.GET("/ws/audit/:sessionId", middleware.JWTAuth(&cfg.JWT), func(c *gin.Context) {
|
||||
r.GET("/ws/audit/:sessionId", middleware.JWTAuth(&cfg.JWT, db), func(c *gin.Context) {
|
||||
idStr := c.Param("sessionId")
|
||||
id, err := strconv.ParseUint(idStr, 10, 64)
|
||||
if err != nil {
|
||||
@@ -93,7 +93,7 @@ func Register(r *gin.Engine, db *gorm.DB, log *zap.Logger, cfg *config.Config, c
|
||||
// WebSocket 实时指标推送(JWT 鉴权) // Logan.Li
|
||||
metricsHub := controller.NewMetricsHub()
|
||||
metricsWSHandler := controller.NewMetricsWSHandler(metricsHub)
|
||||
r.GET("/ws/metrics", middleware.JWTAuth(&cfg.JWT), metricsWSHandler.ServeWS)
|
||||
r.GET("/ws/metrics", middleware.JWTAuth(&cfg.JWT, db), metricsWSHandler.ServeWS)
|
||||
|
||||
// WebSocket 流水线日志推流
|
||||
wsLogHandler := controller.NewWSPipelineLogHandler(db, redisCache)
|
||||
@@ -107,7 +107,7 @@ func Register(r *gin.Engine, db *gorm.DB, log *zap.Logger, cfg *config.Config, c
|
||||
|
||||
// WebSocket K8s exec 交互终端 // Logan.Li
|
||||
k8sHandler := controller.NewKubernetesHandler(db)
|
||||
r.GET("/ws/kubernetes-exec/:id/namespaces/:namespace/pods/:podName", middleware.JWTAuth(&cfg.JWT), k8sHandler.ExecTerminal)
|
||||
r.GET("/ws/kubernetes-exec/:id/namespaces/:namespace/pods/:podName", middleware.JWTAuth(&cfg.JWT, db), k8sHandler.ExecTerminal)
|
||||
|
||||
// ToolInstaller(工具懒加载服务 — kubectl/maven/node/helm)// Logan.Li
|
||||
ti := toolinstaller.New(db)
|
||||
@@ -117,7 +117,7 @@ func Register(r *gin.Engine, db *gorm.DB, log *zap.Logger, cfg *config.Config, c
|
||||
|
||||
// WebSocket kubectl 命令行终端 // Logan.Li
|
||||
kubectlShellHandler := controller.NewKubectlShellHandler(db, ti)
|
||||
r.GET("/ws/kubectl", middleware.JWTAuth(&cfg.JWT), kubectlShellHandler.Terminal)
|
||||
r.GET("/ws/kubectl", middleware.JWTAuth(&cfg.JWT, db), kubectlShellHandler.Terminal)
|
||||
|
||||
// 公开路由
|
||||
authHandler := controller.NewUserHandler(db, cfg)
|
||||
@@ -137,7 +137,7 @@ func Register(r *gin.Engine, db *gorm.DB, log *zap.Logger, cfg *config.Config, c
|
||||
|
||||
// 需要认证的路由
|
||||
authorized := api.Group("")
|
||||
authorized.Use(middleware.JWTAuth(&cfg.JWT))
|
||||
authorized.Use(middleware.JWTAuth(&cfg.JWT, db))
|
||||
|
||||
// 用户路由
|
||||
user := authorized.Group("/user")
|
||||
@@ -146,7 +146,13 @@ func Register(r *gin.Engine, db *gorm.DB, log *zap.Logger, cfg *config.Config, c
|
||||
user.GET("/permissions", authHandler.GetMyPermissions)
|
||||
user.PUT("/profile", authHandler.UpdateProfile)
|
||||
user.POST("/change-password", authHandler.ChangePassword)
|
||||
user.PUT("/password", authHandler.ChangePassword) // 兼容前端 // Logan.Li
|
||||
user.GET("/roles", authHandler.ListRoles)
|
||||
user.GET("/api-access-key", authHandler.GetApiAccessKey)
|
||||
user.PUT("/api-access-key", authHandler.UpdateApiAccessKey)
|
||||
user.POST("/api-access-key/regenerate", authHandler.RegenerateApiAccessKey)
|
||||
user.POST("/api-access-key/extend", authHandler.ExtendApiAccessKey)
|
||||
user.DELETE("/api-access-key", authHandler.RevokeApiAccessKey)
|
||||
}
|
||||
|
||||
// 管理员路由
|
||||
@@ -158,6 +164,7 @@ func Register(r *gin.Engine, db *gorm.DB, log *zap.Logger, cfg *config.Config, c
|
||||
admin.POST("/users", authHandler.CreateUser)
|
||||
admin.PUT("/users/:id", authHandler.UpdateUser)
|
||||
admin.DELETE("/users/:id", authHandler.DeleteUser)
|
||||
admin.POST("/users/:id/reset-password", authHandler.ResetUserPassword)
|
||||
admin.POST("/users/batch-import", authHandler.BatchImportUsers)
|
||||
admin.GET("/users/import-template", authHandler.ImportTemplate)
|
||||
|
||||
@@ -399,6 +406,9 @@ func Register(r *gin.Engine, db *gorm.DB, log *zap.Logger, cfg *config.Config, c
|
||||
// Ingresses
|
||||
kubernetesRouter.GET("/:clusterCode/namespace/:namespace/ingresses", k8sHandler.ListIngressesNS)
|
||||
|
||||
// IngressClass 列表(可视化编辑 Ingress 时选择 ingressClassName 用) // Logan.Li
|
||||
kubernetesRouter.GET("/:clusterCode/ingressclasses", k8sHandler.ListIngressClasses)
|
||||
|
||||
// HPA
|
||||
kubernetesRouter.GET("/:clusterCode/namespace/:namespace/hpas", k8sHandler.ListHPAsNS)
|
||||
kubernetesRouter.POST("/:clusterCode/namespace/:namespace/hpas", k8sHandler.CreateHPANS)
|
||||
@@ -656,12 +666,26 @@ func Register(r *gin.Engine, db *gorm.DB, log *zap.Logger, cfg *config.Config, c
|
||||
|
||||
// 日志监控路由 // Logan.Li
|
||||
logHandler := controller.NewLogHandler(db)
|
||||
logDSHandler := controller.NewLogDSHandler(db)
|
||||
logProxyHandler := controller.NewLogProxyHandler(logDSHandler)
|
||||
logs := authorized.Group("/logs")
|
||||
{
|
||||
logs.GET("", logHandler.QueryLogs)
|
||||
logs.GET("/sources", logHandler.ListSources)
|
||||
logs.POST("/sources", logHandler.CreateSource)
|
||||
logs.DELETE("/sources/:id", logHandler.DeleteSource)
|
||||
logs.POST("/loki/query", logProxyHandler.QueryLoki)
|
||||
logs.POST("/elasticsearch/query", logProxyHandler.QueryES)
|
||||
}
|
||||
logDSGroup := authorized.Group("/log-datasources")
|
||||
{
|
||||
logDSGroup.GET("", logDSHandler.List)
|
||||
logDSGroup.GET("/:id", logDSHandler.Get)
|
||||
logDSGroup.POST("", logDSHandler.Create)
|
||||
logDSGroup.PUT("/:id", logDSHandler.Update)
|
||||
logDSGroup.DELETE("/:id", logDSHandler.Delete)
|
||||
logDSGroup.POST("/:id/default", logDSHandler.SetDefault)
|
||||
logDSGroup.POST("/test", logDSHandler.TestConnection)
|
||||
}
|
||||
|
||||
// 审批流程路由
|
||||
|
||||
Reference in new issue
Block a user