From e323af2cdbdaf1b1b9ea865f48dccafe671c83f0 Mon Sep 17 00:00:00 2001 From: Anthony LC Date: Tue, 24 Feb 2026 14:23:42 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B(y-provider)=20use=20CONVERSION=5FF?= =?UTF-8?q?ILE=5FMAX=5FSIZE=20settings?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The settings CONVERSION_FILE_MAX_SIZE was not used in the y-provider, which caused a 413 Payload Too Large error when trying to convert a file larger than 500kb. This commit updates the y-provider to use the CONVERSION_FILE_MAX_SIZE settings, allowing it to handle larger files without throwing an error. CONVERSION_FILE_MAX_SIZE should follow the same value as the one defined in the backend settings, which is 20mb by default. --- CHANGELOG.md | 1 + src/backend/impress/settings.py | 2 +- src/frontend/servers/y-provider/__tests__/server.test.ts | 3 ++- src/frontend/servers/y-provider/src/env.ts | 3 +++ src/frontend/servers/y-provider/src/servers/appServer.ts | 3 ++- 5 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 45b045ae..cf5565f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,7 @@ and this project adheres to - 🐛(frontend) fix broadcast store sync #1846 - 🐛(helm) use celery resources instead of backend resources - 🐛(helm) reverse liveness and readiness for backend deployment +- 🐛(y-provider) use CONVERSION_FILE_MAX_SIZE settings #1913 ## [v4.5.0] - 2026-01-28 diff --git a/src/backend/impress/settings.py b/src/backend/impress/settings.py index b0088809..375c5541 100755 --- a/src/backend/impress/settings.py +++ b/src/backend/impress/settings.py @@ -736,7 +736,7 @@ class Base(Configuration): # Imported file settings CONVERSION_FILE_MAX_SIZE = values.IntegerValue( - 20 * MB, # 10MB + 20 * MB, environ_name="CONVERSION_FILE_MAX_SIZE", environ_prefix=None, ) diff --git a/src/frontend/servers/y-provider/__tests__/server.test.ts b/src/frontend/servers/y-provider/__tests__/server.test.ts index 762a76df..5454f801 100644 --- a/src/frontend/servers/y-provider/__tests__/server.test.ts +++ b/src/frontend/servers/y-provider/__tests__/server.test.ts @@ -9,6 +9,7 @@ vi.mock('../src/env', async (importOriginal) => { ...(await importOriginal()), COLLABORATION_SERVER_ORIGIN: 'http://localhost:3000', Y_PROVIDER_API_KEY: 'yprovider-api-key', + CONVERSION_FILE_MAX_SIZE: 500 * 1024, // 500kb }; }); @@ -54,7 +55,7 @@ describe('Server Tests', () => { expect(response.status).not.toBe(413); }); - it('rejects payloads larger than 500kb for the CONVERT route', async () => { + it('rejects payloads larger than CONVERSION_FILE_MAX_SIZE for the CONVERT route', async () => { const app = initApp(); const oversizedPayload = 'a'.repeat(501 * 1024); // 501kb payload diff --git a/src/frontend/servers/y-provider/src/env.ts b/src/frontend/servers/y-provider/src/env.ts index e0e02cf5..e125edd9 100644 --- a/src/frontend/servers/y-provider/src/env.ts +++ b/src/frontend/servers/y-provider/src/env.ts @@ -8,6 +8,9 @@ export const COLLABORATION_SERVER_SECRET = process.env .COLLABORATION_SERVER_SECRET_FILE ? readFileSync(process.env.COLLABORATION_SERVER_SECRET_FILE, 'utf-8') : process.env.COLLABORATION_SERVER_SECRET || 'secret-api-key'; +export const CONVERSION_FILE_MAX_SIZE = process.env.CONVERSION_FILE_MAX_SIZE + ? Number(process.env.CONVERSION_FILE_MAX_SIZE) + : 20971520; // 20 MB default export const Y_PROVIDER_API_KEY = process.env.Y_PROVIDER_API_KEY_FILE ? readFileSync(process.env.Y_PROVIDER_API_KEY_FILE, 'utf-8') : process.env.Y_PROVIDER_API_KEY || 'yprovider-api-key'; diff --git a/src/frontend/servers/y-provider/src/servers/appServer.ts b/src/frontend/servers/y-provider/src/servers/appServer.ts index c9807bf7..735c36af 100644 --- a/src/frontend/servers/y-provider/src/servers/appServer.ts +++ b/src/frontend/servers/y-provider/src/servers/appServer.ts @@ -5,6 +5,7 @@ import * as Sentry from '@sentry/node'; import express from 'express'; import expressWebsockets from 'express-ws'; +import { CONVERSION_FILE_MAX_SIZE } from '@/env'; import { collaborationResetConnectionsHandler, collaborationWSHandler, @@ -55,7 +56,7 @@ export const initApp = () => { routes.CONVERT, httpSecurity, express.raw({ - limit: '500kb', + limit: CONVERSION_FILE_MAX_SIZE, type: '*/*', }), convertHandler,