fix(settings): prevent empty string API keys from being saved or preserved

- Add .min(1) validation to insertOpenrouterConfigSchema
- Strip empty/whitespace-only apiKey before fallback to existing key
- Return 400 if resulting apiKey is empty (forces user to enter valid key)
This commit is contained in:
Michael committed 2026-05-18 12:32:11 +02:00
1 parent b7ef4940f7
commit 35cf21209f
2 files changed
+9 -2

No files matched your search

+7 -2
View File
@@ -1898,12 +1898,17 @@ export async function registerRoutes(app: Express): Promise<Server> {
userId,
});
// Si apiKey n'est pas fourni, garder l'ancien
// Si apiKey n'est pas fourni ou vide, garder l'ancien
const incomingKey = updateData.apiKey?.trim() || undefined;
const finalData = {
...updateData,
apiKey: updateData.apiKey || existingConfig.apiKey,
apiKey: incomingKey || existingConfig.apiKey,
};
if (!finalData.apiKey) {
return res.status(400).json({ error: "Clé API OpenRouter manquante. Veuillez entrer une clé API valide." });
}
config = await storage.updateOpenrouterConfig(userId, finalData);
} else {
// Pour les créations, exiger tous les champs
+2
View File
@@ -410,6 +410,8 @@ export const insertOpenrouterConfigSchema = createInsertSchema(openrouterConfig)
id: true,
createdAt: true,
updatedAt: true,
}).extend({
apiKey: z.string().min(1, "La clé API ne peut pas être vide"),
});
export const updateOpenrouterConfigSchema = insertOpenrouterConfigSchema.partial({