🐛(y-provider) use CONVERSION_FILE_MAX_SIZE settings

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.
This commit is contained in:
Anthony LC
2026-02-24 14:23:42 +01:00
parent 9f9f26974c
commit e323af2cdb
5 changed files with 9 additions and 3 deletions

View File

@@ -30,6 +30,7 @@ and this project adheres to
- 🐛(frontend) fix broadcast store sync #1846 - 🐛(frontend) fix broadcast store sync #1846
- 🐛(helm) use celery resources instead of backend resources - 🐛(helm) use celery resources instead of backend resources
- 🐛(helm) reverse liveness and readiness for backend deployment - 🐛(helm) reverse liveness and readiness for backend deployment
- 🐛(y-provider) use CONVERSION_FILE_MAX_SIZE settings #1913
## [v4.5.0] - 2026-01-28 ## [v4.5.0] - 2026-01-28

View File

@@ -736,7 +736,7 @@ class Base(Configuration):
# Imported file settings # Imported file settings
CONVERSION_FILE_MAX_SIZE = values.IntegerValue( CONVERSION_FILE_MAX_SIZE = values.IntegerValue(
20 * MB, # 10MB 20 * MB,
environ_name="CONVERSION_FILE_MAX_SIZE", environ_name="CONVERSION_FILE_MAX_SIZE",
environ_prefix=None, environ_prefix=None,
) )

View File

@@ -9,6 +9,7 @@ vi.mock('../src/env', async (importOriginal) => {
...(await importOriginal()), ...(await importOriginal()),
COLLABORATION_SERVER_ORIGIN: 'http://localhost:3000', COLLABORATION_SERVER_ORIGIN: 'http://localhost:3000',
Y_PROVIDER_API_KEY: 'yprovider-api-key', 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); 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 app = initApp();
const oversizedPayload = 'a'.repeat(501 * 1024); // 501kb payload const oversizedPayload = 'a'.repeat(501 * 1024); // 501kb payload

View File

@@ -8,6 +8,9 @@ export const COLLABORATION_SERVER_SECRET = process.env
.COLLABORATION_SERVER_SECRET_FILE .COLLABORATION_SERVER_SECRET_FILE
? readFileSync(process.env.COLLABORATION_SERVER_SECRET_FILE, 'utf-8') ? readFileSync(process.env.COLLABORATION_SERVER_SECRET_FILE, 'utf-8')
: process.env.COLLABORATION_SERVER_SECRET || 'secret-api-key'; : 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 export const Y_PROVIDER_API_KEY = process.env.Y_PROVIDER_API_KEY_FILE
? readFileSync(process.env.Y_PROVIDER_API_KEY_FILE, 'utf-8') ? readFileSync(process.env.Y_PROVIDER_API_KEY_FILE, 'utf-8')
: process.env.Y_PROVIDER_API_KEY || 'yprovider-api-key'; : process.env.Y_PROVIDER_API_KEY || 'yprovider-api-key';

View File

@@ -5,6 +5,7 @@ import * as Sentry from '@sentry/node';
import express from 'express'; import express from 'express';
import expressWebsockets from 'express-ws'; import expressWebsockets from 'express-ws';
import { CONVERSION_FILE_MAX_SIZE } from '@/env';
import { import {
collaborationResetConnectionsHandler, collaborationResetConnectionsHandler,
collaborationWSHandler, collaborationWSHandler,
@@ -55,7 +56,7 @@ export const initApp = () => {
routes.CONVERT, routes.CONVERT,
httpSecurity, httpSecurity,
express.raw({ express.raw({
limit: '500kb', limit: CONVERSION_FILE_MAX_SIZE,
type: '*/*', type: '*/*',
}), }),
convertHandler, convertHandler,