Skip to content

Commit 8e6857f

Browse files
author
Artem
committed
#RI-4186 added migrations + file size validation (10MB max)
1 parent 0135980 commit 8e6857f

File tree

3 files changed

+20
-1
lines changed

3 files changed

+20
-1
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { MigrationInterface, QueryRunner } from "typeorm";
2+
3+
export class customTutorials1677135091633 implements MigrationInterface {
4+
name = 'customTutorials1677135091633'
5+
6+
public async up(queryRunner: QueryRunner): Promise<void> {
7+
await queryRunner.query(`CREATE TABLE "custom_tutorials" ("id" varchar PRIMARY KEY NOT NULL, "name" varchar NOT NULL, "link" varchar, "createdAt" datetime NOT NULL DEFAULT (datetime('now')))`);
8+
}
9+
10+
public async down(queryRunner: QueryRunner): Promise<void> {
11+
await queryRunner.query(`DROP TABLE "custom_tutorials"`);
12+
}
13+
14+
}

redisinsight/api/migration/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import { workbenchAndAnalysisDbIndex1673934231410 } from './1673934231410-workbe
2727
import { browserHistory1674539211397 } from './1674539211397-browser-history';
2828
import { databaseAnalysisRecommendations1674660306971 } from './1674660306971-database-analysis-recommendations';
2929
import { databaseTimeout1675398140189 } from './1675398140189-database-timeout';
30+
import { customTutorials1677135091633 } from './1677135091633-custom-tutorials';
3031

3132
export default [
3233
initialMigration1614164490968,
@@ -58,4 +59,5 @@ export default [
5859
databaseAnalysisRecommendations1674660306971,
5960
browserHistory1674539211397,
6061
databaseTimeout1675398140189,
62+
customTutorials1677135091633,
6163
];

redisinsight/api/src/modules/custom-tutorial/dto/upload.custom-tutorial.dto.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import { ApiProperty } from '@nestjs/swagger';
22
import { Expose } from 'class-transformer';
33
import { IsNotEmpty, IsString } from 'class-validator';
4-
import { HasMimeType, IsFile, MemoryStoredFile } from 'nestjs-form-data';
4+
import {
5+
HasMimeType, IsFile, MaxFileSize, MemoryStoredFile,
6+
} from 'nestjs-form-data';
57

68
export class UploadCustomTutorialDto {
79
@ApiProperty({
@@ -11,6 +13,7 @@ export class UploadCustomTutorialDto {
1113
})
1214
@IsFile()
1315
@HasMimeType(['application/zip'])
16+
@MaxFileSize(10 * 1024 * 1024)
1417
file: MemoryStoredFile;
1518

1619
@ApiProperty({

0 commit comments

Comments
 (0)