feat(cliproxy): skip persisting runtime-only websocket auths

This commit is contained in:
hkfires
2025-10-29 21:49:35 +08:00
parent 475f473dab
commit 24446a4dc4
2 changed files with 13 additions and 7 deletions

View File

@@ -872,6 +872,11 @@ func (m *Manager) persist(ctx context.Context, auth *Auth) error {
if m.store == nil || auth == nil { if m.store == nil || auth == nil {
return nil return nil
} }
if auth.Attributes != nil {
if v := strings.ToLower(strings.TrimSpace(auth.Attributes["runtime_only"])); v == "true" {
return nil
}
}
// Skip persistence when metadata is absent (e.g., runtime-only auths). // Skip persistence when metadata is absent (e.g., runtime-only auths).
if auth.Metadata == nil { if auth.Metadata == nil {
return nil return nil

View File

@@ -210,13 +210,14 @@ func (s *Service) wsOnConnected(channelID string) {
} }
now := time.Now().UTC() now := time.Now().UTC()
auth := &coreauth.Auth{ auth := &coreauth.Auth{
ID: channelID, // keep channel identifier as ID ID: channelID, // keep channel identifier as ID
Provider: "aistudio", // logical provider for switch routing Provider: "aistudio", // logical provider for switch routing
Label: channelID, // display original channel id Label: channelID, // display original channel id
Status: coreauth.StatusActive, Status: coreauth.StatusActive,
CreatedAt: now, CreatedAt: now,
UpdatedAt: now, UpdatedAt: now,
Metadata: map[string]any{"email": channelID}, // inject email inline Attributes: map[string]string{"runtime_only": "true"},
Metadata: map[string]any{"email": channelID}, // metadata drives logging and usage tracking
} }
log.Infof("websocket provider connected: %s", channelID) log.Infof("websocket provider connected: %s", channelID)
s.applyCoreAuthAddOrUpdate(context.Background(), auth) s.applyCoreAuthAddOrUpdate(context.Background(), auth)