fix: Correct userID propagation for agent-triggered workflows (#603)

This commit is contained in:
lvxinyu-1117 2025-08-07 12:10:26 +08:00 committed by GitHub
parent 3c7dfc906f
commit efbc82e8b3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 16 additions and 12 deletions

View File

@ -19,7 +19,6 @@ package database
import ( import (
"context" "context"
"fmt" "fmt"
"strconv"
"strings" "strings"
"github.com/spf13/cast" "github.com/spf13/cast"
@ -63,7 +62,7 @@ func (d *DatabaseRepository) Execute(ctx context.Context, request *nodedatabase.
OperateType: database.OperateType_Custom, OperateType: database.OperateType_Custom,
SQL: &request.SQL, SQL: &request.SQL,
TableType: tableType, TableType: tableType,
UserID: strconv.FormatInt(request.UserID, 10), UserID: request.UserID,
ConnectorID: ptr.Of(request.ConnectorID), ConnectorID: ptr.Of(request.ConnectorID),
} }
@ -106,7 +105,7 @@ func (d *DatabaseRepository) Delete(ctx context.Context, request *nodedatabase.D
DatabaseID: databaseInfoID, DatabaseID: databaseInfoID,
OperateType: database.OperateType_Delete, OperateType: database.OperateType_Delete,
TableType: tableType, TableType: tableType,
UserID: strconv.FormatInt(request.UserID, 10), UserID: request.UserID,
ConnectorID: ptr.Of(request.ConnectorID), ConnectorID: ptr.Of(request.ConnectorID),
} }
@ -142,7 +141,7 @@ func (d *DatabaseRepository) Query(ctx context.Context, request *nodedatabase.Qu
DatabaseID: databaseInfoID, DatabaseID: databaseInfoID,
OperateType: database.OperateType_Select, OperateType: database.OperateType_Select,
TableType: tableType, TableType: tableType,
UserID: strconv.FormatInt(request.UserID, 10), UserID: request.UserID,
ConnectorID: ptr.Of(request.ConnectorID), ConnectorID: ptr.Of(request.ConnectorID),
} }
@ -199,6 +198,7 @@ func (d *DatabaseRepository) Update(ctx context.Context, request *nodedatabase.U
OperateType: database.OperateType_Update, OperateType: database.OperateType_Update,
SQLParams: make([]*database.SQLParamVal, 0), SQLParams: make([]*database.SQLParamVal, 0),
TableType: tableType, TableType: tableType,
UserID: request.UserID,
ConnectorID: ptr.Of(request.ConnectorID), ConnectorID: ptr.Of(request.ConnectorID),
} }
@ -246,7 +246,7 @@ func (d *DatabaseRepository) Insert(ctx context.Context, request *nodedatabase.I
DatabaseID: databaseInfoID, DatabaseID: databaseInfoID,
OperateType: database.OperateType_Insert, OperateType: database.OperateType_Insert,
TableType: tableType, TableType: tableType,
UserID: strconv.FormatInt(request.UserID, 10), UserID: request.UserID,
ConnectorID: ptr.Of(request.ConnectorID), ConnectorID: ptr.Of(request.ConnectorID),
} }

View File

@ -29,7 +29,7 @@ type CustomSQLRequest struct {
SQL string SQL string
Params []SQLParam Params []SQLParam
IsDebugRun bool IsDebugRun bool
UserID int64 UserID string
ConnectorID int64 ConnectorID int64
} }
@ -91,7 +91,7 @@ type DeleteRequest struct {
DatabaseInfoID int64 DatabaseInfoID int64
ConditionGroup *ConditionGroup ConditionGroup *ConditionGroup
IsDebugRun bool IsDebugRun bool
UserID int64 UserID string
ConnectorID int64 ConnectorID int64
} }
@ -102,7 +102,7 @@ type QueryRequest struct {
ConditionGroup *ConditionGroup ConditionGroup *ConditionGroup
OrderClauses []*OrderClause OrderClauses []*OrderClause
IsDebugRun bool IsDebugRun bool
UserID int64 UserID string
ConnectorID int64 ConnectorID int64
} }
@ -115,7 +115,7 @@ type UpdateRequest struct {
ConditionGroup *ConditionGroup ConditionGroup *ConditionGroup
Fields map[string]any Fields map[string]any
IsDebugRun bool IsDebugRun bool
UserID int64 UserID string
ConnectorID int64 ConnectorID int64
} }
@ -123,7 +123,7 @@ type InsertRequest struct {
DatabaseInfoID int64 DatabaseInfoID int64
Fields map[string]any Fields map[string]any
IsDebugRun bool IsDebugRun bool
UserID int64 UserID string
ConnectorID int64 ConnectorID int64
} }

View File

@ -415,12 +415,16 @@ func isDebugExecute(ctx context.Context) bool {
return execCtx.RootCtx.ExeCfg.Mode == vo.ExecuteModeDebug || execCtx.RootCtx.ExeCfg.Mode == vo.ExecuteModeNodeDebug return execCtx.RootCtx.ExeCfg.Mode == vo.ExecuteModeDebug || execCtx.RootCtx.ExeCfg.Mode == vo.ExecuteModeNodeDebug
} }
func getExecUserID(ctx context.Context) int64 { func getExecUserID(ctx context.Context) string {
execCtx := execute.GetExeCtx(ctx) execCtx := execute.GetExeCtx(ctx)
if execCtx == nil { if execCtx == nil {
panic(fmt.Errorf("unable to get exe context")) panic(fmt.Errorf("unable to get exe context"))
} }
return execCtx.RootCtx.ExeCfg.Operator if execCtx.RootCtx.ExeCfg.AgentID != nil {
return execCtx.RootCtx.ExeCfg.ConnectorUID
}
uIDStr := strconv.FormatInt(execCtx.RootCtx.ExeCfg.Operator, 10)
return uIDStr
} }
func getConnectorID(ctx context.Context) int64 { func getConnectorID(ctx context.Context) int64 {