Python: remove unused index (#17008)

### Summary

Remove below indexes.
```
idx_tenant_langfuse_secret_key
idx_tenant_langfuse_public_key
idx_tenant_langfuse_host
```

---------

Signed-off-by: Jin Hai <haijin.chn@gmail.com>
This commit is contained in:
Jin Hai
2026-07-16 23:00:44 +08:00
committed by GitHub
parent 548f296ead
commit 7c698f8e4b
13 changed files with 157 additions and 285 deletions

View File

@@ -86,8 +86,8 @@ func (h *Handler) Ping(c *gin.Context) {
// @Summary Admin Login
// @Description Admin login verification using email, only superuser can log in
// @Tags admin
// @Accept json
// @Produce json
// @Accept JSON
// @Produce JSON
// @Param request body service.EmailLoginRequest true "login info with email"
// @Success 200 {object} map[string]interface{}
// @Router /admin/login [post]
@@ -258,16 +258,24 @@ func (h *Handler) CreateUser(c *gin.Context) {
common.SuccessWithData(c, userInfo, "User created successfully")
}
// GetUser handle get user
func (h *Handler) GetUser(c *gin.Context) {
func getUserName(c *gin.Context) (string, error) {
encodedUsername := c.Param("username")
username, err := common.DecodeFromBase64(encodedUsername)
if err != nil {
common.ErrorWithCode(c, common.CodeBadRequest, err.Error())
return
return "", err
}
if username == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Username is required")
return "", err
}
return username, nil
}
// GetUser handle get user
func (h *Handler) GetUser(c *gin.Context) {
username, err := getUserName(c)
if err != nil {
return
}
@@ -286,14 +294,8 @@ func (h *Handler) GetUser(c *gin.Context) {
// DeleteUser handle delete user
func (h *Handler) DeleteUser(c *gin.Context) {
encodedUsername := c.Param("username")
username, err := common.DecodeFromBase64(encodedUsername)
username, err := getUserName(c)
if err != nil {
common.ErrorWithCode(c, common.CodeBadRequest, err.Error())
return
}
if username == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Username is required")
return
}
@@ -318,14 +320,8 @@ type ChangePasswordHTTPRequest struct {
// ChangePassword handle change password
func (h *Handler) ChangePassword(c *gin.Context) {
encodedUsername := c.Param("username")
username, err := common.DecodeFromBase64(encodedUsername)
username, err := getUserName(c)
if err != nil {
common.ErrorWithCode(c, common.CodeBadRequest, err.Error())
return
}
if username == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Username is required")
return
}
@@ -350,14 +346,8 @@ type UpdateActivateStatusHTTPRequest struct {
// UpdateUserActivateStatus handle update user activate status
func (h *Handler) UpdateUserActivateStatus(c *gin.Context) {
encodedUsername := c.Param("username")
username, err := common.DecodeFromBase64(encodedUsername)
username, err := getUserName(c)
if err != nil {
common.ErrorWithCode(c, common.CodeBadRequest, err.Error())
return
}
if username == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Username is required")
return
}
@@ -383,14 +373,8 @@ func (h *Handler) UpdateUserActivateStatus(c *gin.Context) {
// GrantAdmin handle grant admin role
func (h *Handler) GrantAdmin(c *gin.Context) {
encodedUsername := c.Param("username")
username, err := common.DecodeFromBase64(encodedUsername)
username, err := getUserName(c)
if err != nil {
common.ErrorWithCode(c, common.CodeBadRequest, err.Error())
return
}
if username == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Username is required")
return
}
@@ -411,14 +395,8 @@ func (h *Handler) GrantAdmin(c *gin.Context) {
// RevokeAdmin handle revoke admin role
func (h *Handler) RevokeAdmin(c *gin.Context) {
encodedUsername := c.Param("username")
username, err := common.DecodeFromBase64(encodedUsername)
username, err := getUserName(c)
if err != nil {
common.ErrorWithCode(c, common.CodeBadRequest, err.Error())
return
}
if username == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Username is required")
return
}
@@ -439,14 +417,8 @@ func (h *Handler) RevokeAdmin(c *gin.Context) {
// ListUserAPITokens handle get user API keys
func (h *Handler) ListUserAPITokens(c *gin.Context) {
encodedUsername := c.Param("username")
username, err := common.DecodeFromBase64(encodedUsername)
username, err := getUserName(c)
if err != nil {
common.ErrorWithCode(c, common.CodeBadRequest, err.Error())
return
}
if username == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Username is required")
return
}
@@ -461,14 +433,8 @@ func (h *Handler) ListUserAPITokens(c *gin.Context) {
// GenerateUserAPIToken handle generate user API key
func (h *Handler) GenerateUserAPIToken(c *gin.Context) {
encodedUsername := c.Param("username")
username, err := common.DecodeFromBase64(encodedUsername)
username, err := getUserName(c)
if err != nil {
common.ErrorWithCode(c, common.CodeBadRequest, err.Error())
return
}
if username == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Username is required")
return
}
@@ -647,11 +613,6 @@ func (h *Handler) ListVariables(c *gin.Context) {
variable, err := h.service.GetVariable(req.VarName)
if err != nil {
// Check if it's an AdminException
if adminErr, ok := err.(*AdminException); ok {
common.ErrorWithCode(c, common.CodeBadRequest, adminErr.Message)
return
}
common.ErrorWithCode(c, common.CodeServerError, err.Error())
return
}
@@ -707,11 +668,6 @@ func (h *Handler) SetVariable(c *gin.Context) {
}
if err := h.service.SetVariable(req.VarName, req.VarValue); err != nil {
// Check if it's an AdminException
if adminErr, ok := err.(*AdminException); ok {
common.ErrorWithCode(c, common.CodeBadRequest, adminErr.Message)
return
}
common.ErrorWithCode(c, common.CodeServerError, err.Error())
return
}
@@ -1141,7 +1097,7 @@ type ListIngestionTasksRequest struct {
Status *string `json:"status"`
}
// ListIngestionTasks
// ListIngestionTasks handle list ingestion tasks
func (h *Handler) ListIngestionTasks(c *gin.Context) {
var err error
var tasks []map[string]interface{}

View File

@@ -861,14 +861,8 @@ func (h *Handler) ShowUserDatasetSummary(c *gin.Context) {
return
}
encodedUsername := c.Param("username")
username, err := common.DecodeFromBase64(encodedUsername)
username, err := getUserName(c)
if err != nil {
common.ErrorWithCode(c, common.CodeBadRequest, err.Error())
return
}
if username == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Username is required")
return
}
@@ -887,14 +881,8 @@ func (h *Handler) ShowUserDatasetSummary(c *gin.Context) {
// ShowUserSummary handle show user summary
func (h *Handler) ShowUserSummary(c *gin.Context) {
encodedUsername := c.Param("username")
username, err := common.DecodeFromBase64(encodedUsername)
username, err := getUserName(c)
if err != nil {
common.ErrorWithCode(c, common.CodeBadRequest, err.Error())
return
}
if username == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Username is required")
return
}
@@ -913,14 +901,8 @@ func (h *Handler) ShowUserSummary(c *gin.Context) {
// ShowUserStorage handle show user storage
func (h *Handler) ShowUserStorage(c *gin.Context) {
encodedUsername := c.Param("username")
username, err := common.DecodeFromBase64(encodedUsername)
username, err := getUserName(c)
if err != nil {
common.ErrorWithCode(c, common.CodeBadRequest, err.Error())
return
}
if username == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Username is required")
return
}
@@ -939,14 +921,8 @@ func (h *Handler) ShowUserStorage(c *gin.Context) {
// ShowUserQuota handle show user quota
func (h *Handler) ShowUserQuota(c *gin.Context) {
encodedUsername := c.Param("username")
username, err := common.DecodeFromBase64(encodedUsername)
username, err := getUserName(c)
if err != nil {
common.ErrorWithCode(c, common.CodeBadRequest, err.Error())
return
}
if username == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Username is required")
return
}
@@ -965,14 +941,8 @@ func (h *Handler) ShowUserQuota(c *gin.Context) {
// ShowUserIndex handle show user index
func (h *Handler) ShowUserIndex(c *gin.Context) {
encodedUsername := c.Param("username")
username, err := common.DecodeFromBase64(encodedUsername)
username, err := getUserName(c)
if err != nil {
common.ErrorWithCode(c, common.CodeBadRequest, err.Error())
return
}
if username == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Username is required")
return
}
@@ -996,14 +966,8 @@ type UpdateUserRoleHTTPRequest struct {
// UpdateUserRole handle update user role
func (h *Handler) UpdateUserRole(c *gin.Context) {
encodedUsername := c.Param("username")
username, err := common.DecodeFromBase64(encodedUsername)
username, err := getUserName(c)
if err != nil {
common.ErrorWithCode(c, common.CodeBadRequest, err.Error())
return
}
if username == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Username is required")
return
}
@@ -1024,14 +988,8 @@ func (h *Handler) UpdateUserRole(c *gin.Context) {
// ShowUserPermission handle show user permission
func (h *Handler) ShowUserPermission(c *gin.Context) {
encodedUsername := c.Param("username")
username, err := common.DecodeFromBase64(encodedUsername)
username, err := getUserName(c)
if err != nil {
common.ErrorWithCode(c, common.CodeBadRequest, err.Error())
return
}
if username == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Username is required")
return
}
@@ -1046,14 +1004,8 @@ func (h *Handler) ShowUserPermission(c *gin.Context) {
// ListUserDatasets handle show user datasets
func (h *Handler) ListUserDatasets(c *gin.Context) {
encodedUsername := c.Param("username")
username, err := common.DecodeFromBase64(encodedUsername)
username, err := getUserName(c)
if err != nil {
common.ErrorWithCode(c, common.CodeBadRequest, err.Error())
return
}
if username == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Username is required")
return
}
@@ -1068,14 +1020,8 @@ func (h *Handler) ListUserDatasets(c *gin.Context) {
// ListUserAgents handle show user agents
func (h *Handler) ListUserAgents(c *gin.Context) {
encodedUsername := c.Param("username")
username, err := common.DecodeFromBase64(encodedUsername)
username, err := getUserName(c)
if err != nil {
common.ErrorWithCode(c, common.CodeBadRequest, err.Error())
return
}
if username == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Username is required")
return
}
@@ -1090,14 +1036,8 @@ func (h *Handler) ListUserAgents(c *gin.Context) {
// ListUserChats handle show user chats
func (h *Handler) ListUserChats(c *gin.Context) {
encodedUsername := c.Param("username")
username, err := common.DecodeFromBase64(encodedUsername)
username, err := getUserName(c)
if err != nil {
common.ErrorWithCode(c, common.CodeBadRequest, err.Error())
return
}
if username == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Username is required")
return
}
@@ -1112,14 +1052,8 @@ func (h *Handler) ListUserChats(c *gin.Context) {
// ListUserSearches handle show user searches
func (h *Handler) ListUserSearches(c *gin.Context) {
encodedUsername := c.Param("username")
username, err := common.DecodeFromBase64(encodedUsername)
username, err := getUserName(c)
if err != nil {
common.ErrorWithCode(c, common.CodeBadRequest, err.Error())
return
}
if username == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Username is required")
return
}
@@ -1134,14 +1068,8 @@ func (h *Handler) ListUserSearches(c *gin.Context) {
// ListUserModels handle show user models
func (h *Handler) ListUserModels(c *gin.Context) {
encodedUsername := c.Param("username")
username, err := common.DecodeFromBase64(encodedUsername)
username, err := getUserName(c)
if err != nil {
common.ErrorWithCode(c, common.CodeBadRequest, err.Error())
return
}
if username == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Username is required")
return
}
@@ -1156,14 +1084,8 @@ func (h *Handler) ListUserModels(c *gin.Context) {
// ListUserFiles handle show user files
func (h *Handler) ListUserFiles(c *gin.Context) {
encodedUsername := c.Param("username")
username, err := common.DecodeFromBase64(encodedUsername)
username, err := getUserName(c)
if err != nil {
common.ErrorWithCode(c, common.CodeBadRequest, err.Error())
return
}
if username == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Username is required")
return
}
@@ -1178,14 +1100,8 @@ func (h *Handler) ListUserFiles(c *gin.Context) {
// ListUserProviders handle show user providers
func (h *Handler) ListUserProviders(c *gin.Context) {
encodedUsername := c.Param("username")
username, err := common.DecodeFromBase64(encodedUsername)
username, err := getUserName(c)
if err != nil {
common.ErrorWithCode(c, common.CodeBadRequest, err.Error())
return
}
if username == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Username is required")
return
}
@@ -1662,14 +1578,8 @@ func (h *Handler) PurgeUserData(c *gin.Context) {
common.ErrorWithCode(c, common.CodeBadRequest, err.Error())
return
}
encodedUsername := c.Param("username")
username, err := common.DecodeFromBase64(encodedUsername)
username, err := getUserName(c)
if err != nil {
common.ErrorWithCode(c, common.CodeBadRequest, err.Error())
return
}
if username == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Username is required")
return
}
@@ -1758,14 +1668,8 @@ func (h *Handler) DeleteUserAPIKey(c *gin.Context) {
// ListUserAPIKeys handle list user API keys
func (h *Handler) ListUserAPIKeys(c *gin.Context) {
encodedUsername := c.Param("username")
username, err := common.DecodeFromBase64(encodedUsername)
username, err := getUserName(c)
if err != nil {
common.ErrorWithCode(c, common.CodeBadRequest, err.Error())
return
}
if username == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Username is required")
return
}

View File

@@ -102,7 +102,7 @@ func (s *Service) Logout(user interface{}) error {
return nil
}
// ListTasks
// ListIngestionTasks list all ingestion tasks for admin user
func (s *Service) ListIngestionTasks() ([]map[string]interface{}, error) {
return s.ingestionTaskSvc.ListAllForAdmin()
}
@@ -172,12 +172,12 @@ func (s *Service) ListUsers(pageIndex, pageSize int, name, status, sort, orderBy
func (s *Service) CreateUser(username, password, role string) (map[string]interface{}, error) {
emailRegex := regexp.MustCompile(`^[\w\._-]+@([\w_-]+\.)+[\w-]{2,}$`)
if !emailRegex.MatchString(username) {
return nil, fmt.Errorf("Invalid email address: %s!", username)
return nil, fmt.Errorf("invalid email address: %s", username)
}
existUser, _ := s.userDAO.GetByEmail(username)
if existUser != nil {
return nil, fmt.Errorf("User '%s' already exists", username)
return nil, fmt.Errorf("user '%s' already exists", username)
}
decryptedPassword, err := common.DecryptPassword(password)
@@ -235,35 +235,35 @@ func (s *Service) CreateUser(username, password, role string) (map[string]interf
// Get default model IDs from config
cfg := server.GetConfig()
chatMdl := ""
embdMdl := ""
asrMdl := ""
img2txtMdl := ""
rerankMdl := ""
chatModel := ""
embeddingModel := ""
asrModel := ""
vlmModel := ""
rerankModel := ""
parserIDs := "naive:General,qa:Q&A,resume:Resume,manual:Manual,table:Table,paper:Paper,book:Book,laws:Laws,presentation:Presentation,picture:Picture,one:One,audio:Audio,email:Email,tag:Tag"
if cfg != nil {
chatMdl = cfg.UserDefaultLLM.DefaultModels.ChatModel.Name
embdMdl = cfg.UserDefaultLLM.DefaultModels.EmbeddingModel.Name
asrMdl = cfg.UserDefaultLLM.DefaultModels.ASRModel.Name
img2txtMdl = cfg.UserDefaultLLM.DefaultModels.Image2TextModel.Name
rerankMdl = cfg.UserDefaultLLM.DefaultModels.RerankModel.Name
chatModel = cfg.UserDefaultLLM.DefaultModels.ChatModel.Name
embeddingModel = cfg.UserDefaultLLM.DefaultModels.EmbeddingModel.Name
asrModel = cfg.UserDefaultLLM.DefaultModels.ASRModel.Name
vlmModel = cfg.UserDefaultLLM.DefaultModels.Image2TextModel.Name
rerankModel = cfg.UserDefaultLLM.DefaultModels.RerankModel.Name
}
tenantStatus := "1"
tenant := &entity.Tenant{
ID: userID,
Name: &tenantName,
LLMID: chatMdl,
EmbdID: embdMdl,
ASRID: asrMdl,
Img2TxtID: img2txtMdl,
RerankID: rerankMdl,
LLMID: chatModel,
EmbdID: embeddingModel,
ASRID: asrModel,
Img2TxtID: vlmModel,
RerankID: rerankModel,
ParserIDs: parserIDs,
Credit: 512,
Status: &tenantStatus,
}
if err := tx.Create(tenant).Error; err != nil {
if err = tx.Create(tenant).Error; err != nil {
rollbackTx()
return nil, fmt.Errorf("failed to create tenant: %w", err)
}
@@ -365,16 +365,16 @@ func (s *Service) getInitTenantLLM(userID string) ([]*entity.TenantLLM, error) {
// Get LLMs for each unique factory
for _, factoryConfig := range uniqueFactories {
llms, err := s.llmDAO.GetByFactory(factoryConfig.Factory)
models, err := s.llmDAO.GetByFactory(factoryConfig.Factory)
if err != nil {
common.Warn("failed to get LLMs for factory", zap.String("factory", factoryConfig.Factory), zap.Error(err))
continue
}
for _, llm := range llms {
for _, model := range models {
// Determine API key and base URL based on model type
var apiKey, apiBase string
switch llm.ModelType {
switch model.ModelType {
case entity.ModelTypeChat.String():
apiKey = factoryConfig.APIKey
apiBase = factoryConfig.BaseURL
@@ -420,12 +420,12 @@ func (s *Service) getInitTenantLLM(userID string) ([]*entity.TenantLLM, error) {
}
maxTokens := int64(8192)
if llm.MaxTokens > 0 {
maxTokens = llm.MaxTokens
if model.MaxTokens > 0 {
maxTokens = model.MaxTokens
}
llmName := llm.LLMName
modelType := llm.ModelType
llmName := model.LLMName
modelType := model.ModelType
tenantLLM := &entity.TenantLLM{
TenantID: userID,
LLMFactory: factoryConfig.Factory,
@@ -474,7 +474,7 @@ func (s *Service) GetUserDetails(username string) (map[string]interface{}, error
}, nil
}
// DeleteUserResult
// DeleteUserResult result of delete user operation
type DeleteUserResult struct {
Username string `json:"username"`
TenantLLMCount int `json:"tenant_llm_count"`
@@ -500,23 +500,23 @@ func (s *Service) DeleteUser(username string) (*DeleteUserResult, error) {
}
userList, err := s.userDAO.ListByEmail(username)
if err != nil || len(userList) == 0 {
return nil, fmt.Errorf("User '%s' not found", username)
return nil, fmt.Errorf("user '%s' not found", username)
}
if len(userList) > 1 {
return nil, fmt.Errorf("Exist more than 1 user: %s!", username)
return nil, fmt.Errorf("exist more than 1 user: %s", username)
}
user := userList[0]
// Check if user is active - cannot delete active users
if user.IsActive == "1" {
return nil, fmt.Errorf("User '%s' is active and can't be deleted. Please deactivate the user first", username)
return nil, fmt.Errorf("user '%s' is active and can't be deleted. Please deactivate the user first", username)
}
// Check if user is superuser - cannot delete admin accounts
if user.IsSuperuser != nil && *user.IsSuperuser {
return nil, fmt.Errorf("Cannot delete admin account")
return nil, fmt.Errorf("user '%s' is admin account and cannot be deleted", username)
}
// Get user-tenant relations
@@ -692,11 +692,11 @@ func (s *Service) DeleteUser(username string) (*DeleteUserResult, error) {
func (s *Service) ChangePassword(username, newPassword string) error {
userList, err := s.userDAO.ListByEmail(username)
if err != nil || len(userList) == 0 {
return fmt.Errorf("User '%s' not found", username)
return fmt.Errorf("user '%s' not found", username)
}
if len(userList) > 1 {
return fmt.Errorf("Exist more than 1 user: %s!", username)
return fmt.Errorf("exist more than 1 user: %s", username)
}
user := userList[0]
@@ -734,11 +734,11 @@ func (s *Service) ChangePassword(username, newPassword string) error {
func (s *Service) UpdateUserActivateStatus(username string, isActive bool) error {
userList, err := s.userDAO.ListByEmail(username)
if err != nil || len(userList) == 0 {
return fmt.Errorf("User '%s' not found", username)
return fmt.Errorf("user '%s' not found", username)
}
if len(userList) > 1 {
return fmt.Errorf("Exist more than 1 user: %s!", username)
return fmt.Errorf("exist more than 1 user: %s", username)
}
user := userList[0]
@@ -770,11 +770,11 @@ func (s *Service) UpdateUserActivateStatus(username string, isActive bool) error
func (s *Service) GrantAdmin(username string) error {
userList, err := s.userDAO.ListByEmail(username)
if err != nil || len(userList) == 0 {
return fmt.Errorf("User '%s' not found", username)
return fmt.Errorf("user '%s' not found", username)
}
if len(userList) > 1 {
return fmt.Errorf("Exist more than 1 user: %s!", username)
return fmt.Errorf("exist more than 1 user: %s", username)
}
user := userList[0]
@@ -802,11 +802,11 @@ func (s *Service) GrantAdmin(username string) error {
func (s *Service) RevokeAdmin(username string) error {
userList, err := s.userDAO.ListByEmail(username)
if err != nil || len(userList) == 0 {
return fmt.Errorf("User '%s' not found", username)
return fmt.Errorf("user '%s' not found", username)
}
if len(userList) > 1 {
return fmt.Errorf("Exist more than 1 user: %s!", username)
return fmt.Errorf("exist more than 1 user: %s", username)
}
user := userList[0]
@@ -818,7 +818,7 @@ func (s *Service) RevokeAdmin(username string) error {
isSuperuser := false
user.IsSuperuser = &isSuperuser
if err := s.userDAO.Update(user); err != nil {
if err = s.userDAO.Update(user); err != nil {
return fmt.Errorf("failed to update user: %w", err)
}
@@ -1258,11 +1258,11 @@ func (s *Service) checkRAGFlowServerAlive(name string) (map[string]interface{},
func (s *Service) checkMinioAlive(name string) (map[string]interface{}, error) {
startTime := time.Now()
// Get minio config from allConfigs
// Get MinIO file store config from allConfigs
var host string
var port int
var secure bool
var verify bool = true
verify := true
allConfigs := server.GetAllConfigs()
for _, config := range allConfigs {

View File

@@ -434,7 +434,7 @@ func (s *Service) ShowUserDatasetSummary(email, dataset string) (map[string]inte
return result, nil
}
// GetUserSummary get user summary for enterprise edition
// ShowUserSummary show user summary for enterprise edition
func (s *Service) ShowUserSummary(email string) (map[string]interface{}, error) {
// Query user by email
var user entity.User