Checkpoint: Les erreurs de création de connecteur sont désormais neutralisées côté API : aucune requête SQL ni aucun paramètre de connexion ne peut être renvoyé au navigateur. Un test dédié le garantit. Le flux public HTTPS de production a été validé pour le même profil utilisateur : création, normalisation https et suppression réussies, sans ligne résiduelle. 74 tests, TypeScript et build validés.

This commit is contained in:
Manus
2026-09-30 13:55:08 +00:00
parent 137c1f0652
commit b294c11a52
4 changed files with 59 additions and 4 deletions

View File

@@ -107,6 +107,7 @@ import { drawBapCartouche } from "./bapCartouche";
import { resolveBapExportDestination } from "./exportDestinationResolver";
import { createEmailImportAccountController, startEmailImportService, stopEmailImportService, isEmailImportServiceRunning, triggerEmailCheck, triggerManualEmailCheck, testImapConnection } from "./emailImportService";
import { startFolderImportService, stopFolderImportService, isFolderImportServiceRunning } from "./folderImportService";
import { getSafeWebImportSourceError, logWebImportSourceSaveFailure } from "./webImportSourcesError";
import { TRPCError } from "@trpc/server";
import { processFreeproExcel } from "./freeproService";
import { runFreeproAutoImport, testFreeproConnection, startFreeproAutoJob, stopFreeproAutoJob, frequencyToMs } from "./freeproAutoImport";
@@ -2751,7 +2752,14 @@ export const appRouter = router({
autoEnabled: z.number().min(0).max(1).default(0),
}))
.mutation(async ({ input, ctx }) => {
return createWebImportSource({ ...input, userId: ctx.user.id });
try {
return await createWebImportSource({ ...input, userId: ctx.user.id });
} catch (error) {
// Les erreurs MySQL/Drizzle peuvent contenir la requête et les paramètres saisis.
// Elles restent masquées côté navigateur.
logWebImportSourceSaveFailure(error);
throw getSafeWebImportSourceError(error);
}
}),
update: protectedProcedure