Update go cli (#13717)

### What problem does this PR solve?

Go cli

### Type of change

- [x] New Feature (non-breaking change which adds functionality)

---------

Signed-off-by: Jin Hai <haijin.chn@gmail.com>
This commit is contained in:
Jin Hai
2026-03-24 20:08:36 +08:00
committed by GitHub
parent d84b688b91
commit b308cd3a02
28 changed files with 3239 additions and 955 deletions

View File

@@ -109,7 +109,7 @@ func (h *Handler) Health(c *gin.Context) {
// Ping ping endpoint
func (h *Handler) Ping(c *gin.Context) {
successNoData(c, "PONG")
successNoData(c, "pong")
}
// Login handle admin login
@@ -420,15 +420,15 @@ func (h *Handler) GetUserAgents(c *gin.Context) {
success(c, agents, "")
}
// GetUserAPIKeys handle get user API keys
func (h *Handler) GetUserAPIKeys(c *gin.Context) {
// ListUserAPITokens handle get user API keys
func (h *Handler) ListUserAPITokens(c *gin.Context) {
username := c.Param("username")
if username == "" {
errorResponse(c, "Username is required", 400)
return
}
apiKeys, err := h.service.GetUserAPIKeys(username)
apiKeys, err := h.service.ListUserAPITokens(username)
if err != nil {
errorResponse(c, err.Error(), 500)
return
@@ -437,15 +437,15 @@ func (h *Handler) GetUserAPIKeys(c *gin.Context) {
success(c, apiKeys, "Get user API keys")
}
// GenerateUserAPIKey handle generate user API key
func (h *Handler) GenerateUserAPIKey(c *gin.Context) {
// GenerateUserAPIToken handle generate user API key
func (h *Handler) GenerateUserAPIToken(c *gin.Context) {
username := c.Param("username")
if username == "" {
errorResponse(c, "Username is required", 400)
return
}
apiKey, err := h.service.GenerateUserAPIKey(username)
apiKey, err := h.service.GenerateUserAPIToken(username)
if err != nil {
errorResponse(c, err.Error(), 500)
return
@@ -454,16 +454,16 @@ func (h *Handler) GenerateUserAPIKey(c *gin.Context) {
success(c, apiKey, "API key generated successfully")
}
// DeleteUserAPIKey handle delete user API key
func (h *Handler) DeleteUserAPIKey(c *gin.Context) {
// DeleteUserAPIToken handle delete user API key
func (h *Handler) DeleteUserAPIToken(c *gin.Context) {
username := c.Param("username")
key := c.Param("key")
key := c.Param("token")
if username == "" || key == "" {
errorResponse(c, "Username and key are required", 400)
return
}
if err := h.service.DeleteUserAPIKey(username, key); err != nil {
if err := h.service.DeleteUserAPIToken(username, key); err != nil {
errorResponse(c, err.Error(), 404)
return
}

View File

@@ -67,9 +67,12 @@ func (r *Router) Setup(engine *gin.Engine) {
protected.GET("/users/:username/agents", r.handler.GetUserAgents)
// API Keys
protected.GET("/users/:username/keys", r.handler.GetUserAPIKeys)
protected.POST("/users/:username/keys", r.handler.GenerateUserAPIKey)
protected.DELETE("/users/:username/keys/:key", r.handler.DeleteUserAPIKey)
protected.GET("/users/:username/keys", r.handler.ListUserAPITokens)
protected.GET("/users/:username/tokens", r.handler.ListUserAPITokens)
protected.POST("/users/:username/keys", r.handler.GenerateUserAPIToken)
protected.POST("/users/:username/tokens", r.handler.GenerateUserAPIToken)
protected.DELETE("/users/:username/keys/:token", r.handler.DeleteUserAPIToken)
protected.DELETE("/users/:username/tokens/:token", r.handler.DeleteUserAPIToken)
// Role management
protected.GET("/roles", r.handler.ListRoles)

View File

@@ -676,7 +676,7 @@ func (s *Service) DeleteUser(username string) (*DeleteUserResult, error) {
var userTenantCount int64
tx.Model(&model.UserTenant{}).Where("user_id = ?", user.ID).Count(&userTenantCount)
result.UserTenantCount = int(userTenantCount)
// 15. Delete user-tenant relations
if delErr := tx.Unscoped().Where("user_id = ?", user.ID).Delete(&model.UserTenant{}); delErr.Error != nil {
logger.Warn("failed to delete user-tenant relations", zap.Error(delErr.Error))
@@ -868,20 +868,20 @@ func (s *Service) GetUserAgents(username string) ([]map[string]interface{}, erro
// API Key methods
// GetUserAPIKeys get user API keys
func (s *Service) GetUserAPIKeys(username string) ([]map[string]interface{}, error) {
// ListUserAPITokens get user API keys
func (s *Service) ListUserAPITokens(username string) ([]map[string]interface{}, error) {
// TODO: Implement get API keys
return []map[string]interface{}{}, nil
}
// GenerateUserAPIKey generate API key for user
func (s *Service) GenerateUserAPIKey(username string) (map[string]interface{}, error) {
// GenerateUserAPIToken generate API key for user
func (s *Service) GenerateUserAPIToken(username string) (map[string]interface{}, error) {
// TODO: Implement generate API key
return map[string]interface{}{}, nil
}
// DeleteUserAPIKey delete user API key
func (s *Service) DeleteUserAPIKey(username, key string) error {
// DeleteUserAPIToken delete user API key
func (s *Service) DeleteUserAPIToken(username, key string) error {
// TODO: Implement delete API key
return nil
}