fix: add @Type(() => Number) for numeric env var conversion

Environment variables are strings from process.env. Explicit
Type decorators ensure class-transformer converts them to numbers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Thomas Reitz 2026-03-08 16:46:06 +01:00
parent 5214d5e0f7
commit 2059fa69d9

View file

@ -1,4 +1,4 @@
import { plainToInstance } from 'class-transformer'; import { plainToInstance, Type } from 'class-transformer';
import { import {
IsEnum, IsEnum,
IsNotEmpty, IsNotEmpty,
@ -20,6 +20,7 @@ class EnvironmentVariables {
@IsEnum(Environment) @IsEnum(Environment)
NODE_ENV: Environment = Environment.Development; NODE_ENV: Environment = Environment.Development;
@Type(() => Number)
@IsNumber() @IsNumber()
@Min(1) @Min(1)
@Max(65535) @Max(65535)
@ -42,6 +43,7 @@ class EnvironmentVariables {
@IsString() @IsString()
REDIS_HOST = 'redis'; REDIS_HOST = 'redis';
@Type(() => Number)
@IsNumber() @IsNumber()
REDIS_PORT = 6379; REDIS_PORT = 6379;
@ -68,15 +70,18 @@ class EnvironmentVariables {
JWT_ISSUER = 'insight-platform'; JWT_ISSUER = 'insight-platform';
// Bcrypt // Bcrypt
@Type(() => Number)
@IsNumber() @IsNumber()
@Min(10) @Min(10)
@Max(14) @Max(14)
BCRYPT_COST = 12; BCRYPT_COST = 12;
// Rate Limiting // Rate Limiting
@Type(() => Number)
@IsNumber() @IsNumber()
THROTTLE_TTL = 60000; THROTTLE_TTL = 60000;
@Type(() => Number)
@IsNumber() @IsNumber()
THROTTLE_LIMIT = 200; THROTTLE_LIMIT = 200;
} }