From 088f74301d0cb68ed59a3bc1e1d2c575f9d4cc77 Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Fri, 4 Sep 2026 10:30:14 +0200
Subject: [PATCH] Limit length for comment, search query and symbol
---
apps/api/src/app/account/get-all-accounts.dto.ts | 3 ++-
.../endpoints/data-providers/ghostfolio/get-lookup.dto.ts | 4 +++-
apps/api/src/app/portfolio/get-holdings.dto.ts | 3 ++-
apps/api/src/app/symbol/get-lookup.dto.ts | 4 +++-
apps/api/src/dtos/filter.dto.ts | 4 +++-
.../create-or-update-activity-dialog.component.ts | 4 +++-
.../create-or-update-activity-dialog.html | 6 +++++-
libs/common/src/lib/config.ts | 3 +++
libs/common/src/lib/dtos/create-order.dto.ts | 7 +++++--
libs/common/src/lib/dtos/update-order.dto.ts | 7 +++++--
libs/ui/src/lib/assistant/assistant.component.ts | 2 ++
libs/ui/src/lib/assistant/assistant.html | 1 +
.../symbol-autocomplete/symbol-autocomplete.component.html | 1 +
.../symbol-autocomplete/symbol-autocomplete.component.ts | 2 ++
14 files changed, 40 insertions(+), 11 deletions(-)
diff --git a/apps/api/src/app/account/get-all-accounts.dto.ts b/apps/api/src/app/account/get-all-accounts.dto.ts
index af10840d58..efee3e6839 100644
--- a/apps/api/src/app/account/get-all-accounts.dto.ts
+++ b/apps/api/src/app/account/get-all-accounts.dto.ts
@@ -1,10 +1,11 @@
import { FilterDto } from '@ghostfolio/api/dtos/filter.dto';
+import { SEARCH_QUERY_MAXIMUM_LENGTH } from '@ghostfolio/common/config';
import { IsOptional, IsString, MaxLength } from 'class-validator';
export class GetAllAccountsDto extends FilterDto {
@IsOptional()
@IsString()
- @MaxLength(255)
+ @MaxLength(SEARCH_QUERY_MAXIMUM_LENGTH)
query?: string;
}
diff --git a/apps/api/src/app/endpoints/data-providers/ghostfolio/get-lookup.dto.ts b/apps/api/src/app/endpoints/data-providers/ghostfolio/get-lookup.dto.ts
index e3aa726b4a..0778d1b5bf 100644
--- a/apps/api/src/app/endpoints/data-providers/ghostfolio/get-lookup.dto.ts
+++ b/apps/api/src/app/endpoints/data-providers/ghostfolio/get-lookup.dto.ts
@@ -1,3 +1,5 @@
+import { SEARCH_QUERY_MAXIMUM_LENGTH } from '@ghostfolio/common/config';
+
import { Transform, TransformFnParams } from 'class-transformer';
import { IsBoolean, IsString, MaxLength } from 'class-validator';
@@ -9,6 +11,6 @@ export class GetLookupDto {
includeIndices? = false;
@IsString()
- @MaxLength(255)
+ @MaxLength(SEARCH_QUERY_MAXIMUM_LENGTH)
query? = '';
}
diff --git a/apps/api/src/app/portfolio/get-holdings.dto.ts b/apps/api/src/app/portfolio/get-holdings.dto.ts
index 61413f299b..6e3d9669e2 100644
--- a/apps/api/src/app/portfolio/get-holdings.dto.ts
+++ b/apps/api/src/app/portfolio/get-holdings.dto.ts
@@ -1,4 +1,5 @@
import { DateRangeFilterDto } from '@ghostfolio/api/dtos/date-range-filter.dto';
+import { SEARCH_QUERY_MAXIMUM_LENGTH } from '@ghostfolio/common/config';
import { HoldingType } from '@ghostfolio/common/types';
import { IsIn, IsOptional, IsString, MaxLength } from 'class-validator';
@@ -10,6 +11,6 @@ export class GetHoldingsDto extends DateRangeFilterDto {
@IsOptional()
@IsString()
- @MaxLength(255)
+ @MaxLength(SEARCH_QUERY_MAXIMUM_LENGTH)
query?: string;
}
diff --git a/apps/api/src/app/symbol/get-lookup.dto.ts b/apps/api/src/app/symbol/get-lookup.dto.ts
index e3aa726b4a..0778d1b5bf 100644
--- a/apps/api/src/app/symbol/get-lookup.dto.ts
+++ b/apps/api/src/app/symbol/get-lookup.dto.ts
@@ -1,3 +1,5 @@
+import { SEARCH_QUERY_MAXIMUM_LENGTH } from '@ghostfolio/common/config';
+
import { Transform, TransformFnParams } from 'class-transformer';
import { IsBoolean, IsString, MaxLength } from 'class-validator';
@@ -9,6 +11,6 @@ export class GetLookupDto {
includeIndices? = false;
@IsString()
- @MaxLength(255)
+ @MaxLength(SEARCH_QUERY_MAXIMUM_LENGTH)
query? = '';
}
diff --git a/apps/api/src/dtos/filter.dto.ts b/apps/api/src/dtos/filter.dto.ts
index 20cfa518db..a42694f8c5 100644
--- a/apps/api/src/dtos/filter.dto.ts
+++ b/apps/api/src/dtos/filter.dto.ts
@@ -1,3 +1,5 @@
+import { SYMBOL_MAXIMUM_LENGTH } from '@ghostfolio/common/config';
+
import { IsOptional, IsString, MaxLength } from 'class-validator';
export class FilterDto {
@@ -15,7 +17,7 @@ export class FilterDto {
@IsOptional()
@IsString()
- @MaxLength(255)
+ @MaxLength(SYMBOL_MAXIMUM_LENGTH)
symbol?: string;
@IsOptional()
diff --git a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts
index 853787f804..1675933f96 100644
--- a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts
+++ b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts
@@ -3,7 +3,8 @@ import { UserService } from '@ghostfolio/client/services/user/user.service';
import {
ASSET_CLASS_MAPPING,
COMMENT_MAXIMUM_LENGTH,
- DEFAULT_LOCALE
+ DEFAULT_LOCALE,
+ SYMBOL_MAXIMUM_LENGTH
} from '@ghostfolio/common/config';
import { CreateOrderDto, UpdateOrderDto } from '@ghostfolio/common/dtos';
import {
@@ -85,6 +86,7 @@ import { ActivityType } from './types/activity-type.type';
export class GfCreateOrUpdateActivityDialogComponent {
protected readonly COMMENT_MAXIMUM_LENGTH = COMMENT_MAXIMUM_LENGTH;
protected readonly DEFAULT_LOCALE = DEFAULT_LOCALE;
+ protected readonly SYMBOL_MAXIMUM_LENGTH = SYMBOL_MAXIMUM_LENGTH;
protected activityForm: FormGroup;
diff --git a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
index f9494efdc2..bfc330a36b 100644
--- a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+++ b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
@@ -114,7 +114,11 @@
>