feat(upload): increase document upload size limits to 50MB across the application

This commit is contained in:
marshalyordanos
2026-08-11 09:26:23 +03:00
parent 577390ca6b
commit ea6eccbf09
9 changed files with 190 additions and 18 deletions

View File

@@ -0,0 +1,44 @@
import { MigrationInterface, QueryRunner } from "typeorm";
/**
* Raises the per-field document ceiling from 10MB to 50MB.
*
* `max_size_mb` is what the portal enforces client-side (SmartFileInput blocks
* the file and shows "File size exceeds the limit of NMB"), so the seeded 10
* was the visible limit for every existing form even after the server-side caps
* were lifted. The seeder only writes these rows on first insert, so deployed
* environments keep their old value until this runs.
*
* Only rows still sitting at the old default are touched — a field an admin has
* deliberately tuned to something else keeps that value.
*/
export class RaiseDocumentUploadSizeLimit3380000000000
implements MigrationInterface
{
name = "RaiseDocumentUploadSizeLimit3380000000000";
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`
ALTER TABLE freight.file_upload_fields
ALTER COLUMN max_size_mb SET DEFAULT 50
`);
await queryRunner.query(`
UPDATE freight.file_upload_fields
SET max_size_mb = 50
WHERE max_size_mb = 10
`);
}
/**
* Restores the column default only. The old per-row values are not
* recoverable (10 and an admin-chosen 10 are indistinguishable after `up`),
* and shrinking a customer's limit back down would reject documents they have
* already uploaded, so the rows are deliberately left at 50.
*/
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`
ALTER TABLE freight.file_upload_fields
ALTER COLUMN max_size_mb SET DEFAULT 10
`);
}
}