From b83f4272b584f937fea1f47656182e514b12d980 Mon Sep 17 00:00:00 2001 From: Paul Nothaft Date: Thu, 8 Jan 2026 11:29:38 +0100 Subject: [PATCH] fix: JSON serialize favicon and logo URLs for PostgreSQL storage Fixes #84 The favicon and logo upload endpoints were storing URL paths directly without JSON.stringify(), causing PostgreSQL JSON validation errors ("Token '/' is invalid") since paths like "/uploads/favicons/..." are not valid JSON. Applied JSON.stringify() to: - branding_logo_url setting (lines 358, 364) - branding_favicon_url setting (lines 894, 900) --- backend/src/routes/adminSettings.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/backend/src/routes/adminSettings.js b/backend/src/routes/adminSettings.js index 35eb5e57..60087f09 100644 --- a/backend/src/routes/adminSettings.js +++ b/backend/src/routes/adminSettings.js @@ -355,13 +355,13 @@ router.post('/logo', adminAuth, requirePermission('settings.edit'), upload.singl await db('app_settings') .insert({ setting_key: 'branding_logo_url', - setting_value: publicPath, + setting_value: JSON.stringify(publicPath), setting_type: 'branding', updated_at: new Date() }) .onConflict('setting_key') .merge({ - setting_value: publicPath, + setting_value: JSON.stringify(publicPath), updated_at: new Date() }); @@ -891,13 +891,13 @@ router.post('/favicon', adminAuth, requirePermission('settings.edit'), faviconUp await db('app_settings') .insert({ setting_key: 'branding_favicon_url', - setting_value: faviconUrl, + setting_value: JSON.stringify(faviconUrl), setting_type: 'branding', updated_at: new Date() }) .onConflict('setting_key') .merge({ - setting_value: faviconUrl, + setting_value: JSON.stringify(faviconUrl), updated_at: new Date() });