fix(api): fallback to Metadata for priority/note on uploaded auths
buildAuthFileEntry now falls back to reading priority/note from auth.Metadata when Attributes lacks them. This covers auths registered via UploadAuthFile which bypass the synthesizer and only populate Metadata from the raw JSON. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -431,14 +431,35 @@ func (h *Handler) buildAuthFileEntry(auth *coreauth.Auth) gin.H {
|
|||||||
entry["id_token"] = claims
|
entry["id_token"] = claims
|
||||||
}
|
}
|
||||||
// Expose priority from Attributes (set by synthesizer from JSON "priority" field).
|
// Expose priority from Attributes (set by synthesizer from JSON "priority" field).
|
||||||
|
// Fall back to Metadata for auths registered via UploadAuthFile (no synthesizer).
|
||||||
if p := strings.TrimSpace(authAttribute(auth, "priority")); p != "" {
|
if p := strings.TrimSpace(authAttribute(auth, "priority")); p != "" {
|
||||||
if parsed, err := strconv.Atoi(p); err == nil {
|
if parsed, err := strconv.Atoi(p); err == nil {
|
||||||
entry["priority"] = parsed
|
entry["priority"] = parsed
|
||||||
}
|
}
|
||||||
|
} else if auth.Metadata != nil {
|
||||||
|
if rawPriority, ok := auth.Metadata["priority"]; ok {
|
||||||
|
switch v := rawPriority.(type) {
|
||||||
|
case float64:
|
||||||
|
entry["priority"] = int(v)
|
||||||
|
case int:
|
||||||
|
entry["priority"] = v
|
||||||
|
case string:
|
||||||
|
if parsed, err := strconv.Atoi(strings.TrimSpace(v)); err == nil {
|
||||||
|
entry["priority"] = parsed
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// Expose note from Attributes (set by synthesizer from JSON "note" field).
|
// Expose note from Attributes (set by synthesizer from JSON "note" field).
|
||||||
|
// Fall back to Metadata for auths registered via UploadAuthFile (no synthesizer).
|
||||||
if note := strings.TrimSpace(authAttribute(auth, "note")); note != "" {
|
if note := strings.TrimSpace(authAttribute(auth, "note")); note != "" {
|
||||||
entry["note"] = note
|
entry["note"] = note
|
||||||
|
} else if auth.Metadata != nil {
|
||||||
|
if rawNote, ok := auth.Metadata["note"].(string); ok {
|
||||||
|
if trimmed := strings.TrimSpace(rawNote); trimmed != "" {
|
||||||
|
entry["note"] = trimmed
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return entry
|
return entry
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user