Merge pull request #1844 from pikasTech/fix/workbench-runtime-sessions-summary-20260621
fix: 按 actor 限定 Workbench runtime session 列表
This commit is contained in:
@@ -185,6 +185,9 @@ func (s *Server) withOtelInternalSpan(ctx context.Context, name string, attrs ma
|
||||
attributes[key] = value
|
||||
}
|
||||
}
|
||||
if err != nil {
|
||||
attributes["causeStage"] = name
|
||||
}
|
||||
addOtelErrorCauseAttributes(attributes, err)
|
||||
s.emitOtelSpanAsync(name, trace, spanID, trace.ServerSpanID, otelSpanKindInternal, startedAt, attributes, 0, errorCode)
|
||||
return err
|
||||
@@ -216,8 +219,16 @@ func sqlCauseCode(err error) string {
|
||||
return "invalid_json_text"
|
||||
case strings.Contains(message, "cannot cast") && strings.Contains(message, "json"):
|
||||
return "invalid_json_cast"
|
||||
case strings.Contains(message, "context deadline exceeded"):
|
||||
case strings.Contains(message, "context deadline exceeded") || strings.Contains(message, "timeout"):
|
||||
return "query_timeout"
|
||||
case strings.Contains(message, "context canceled") || strings.Contains(message, "canceling statement due to user request"):
|
||||
return "query_context_canceled"
|
||||
case strings.Contains(message, "too many clients") || strings.Contains(message, "remaining connection slots"):
|
||||
return "postgres_connection_slots_exhausted"
|
||||
case strings.Contains(message, "server closed") || strings.Contains(message, "connection reset") || strings.Contains(message, "broken pipe") || strings.Contains(message, "bad connection"):
|
||||
return "postgres_connection_unavailable"
|
||||
case strings.Contains(message, "scan") || strings.Contains(message, "converting driver.value"):
|
||||
return "row_scan_failed"
|
||||
default:
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -278,10 +278,7 @@ func (s *Server) listSessions(ctx context.Context, query sessionListQuery) (map[
|
||||
if offset < 0 {
|
||||
offset = 0
|
||||
}
|
||||
ownerUserID := ""
|
||||
if strings.ToLower(strings.TrimSpace(query.Actor.Role)) != "admin" {
|
||||
ownerUserID = strings.TrimSpace(query.Actor.ID)
|
||||
}
|
||||
ownerUserID := strings.TrimSpace(query.Actor.ID)
|
||||
pageFacts, err := s.queryFacts(ctx, factQuery{OwnerUserID: ownerUserID, Limit: limit + offset + 1, Families: []string{"sessions"}, SessionsOrder: "updated_desc", SessionProjection: "summary"})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -861,7 +858,7 @@ func visibleSessions(rows []any, actor sessionActor) []map[string]any {
|
||||
if strings.ToLower(text(item["status"])) == "archived" {
|
||||
continue
|
||||
}
|
||||
if strings.ToLower(strings.TrimSpace(actor.Role)) != "admin" && text(item["ownerUserId"]) != strings.TrimSpace(actor.ID) {
|
||||
if text(item["ownerUserId"]) != strings.TrimSpace(actor.ID) {
|
||||
continue
|
||||
}
|
||||
result = append(result, item)
|
||||
|
||||
Reference in New Issue
Block a user