Skip to content

Commit f49f918

Browse files
committed
updates
1 parent 6c9d187 commit f49f918

File tree

2 files changed

+19
-5
lines changed

2 files changed

+19
-5
lines changed

packages/models-library/src/models_library/api_schemas_webserver/folders_v2.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from datetime import datetime
22
from typing import Annotated, Self
33

4-
from models_library.string_types import NameSafeStr
4+
from models_library.string_types import DisplaySafeStr
55
from pydantic import ConfigDict, Field, field_validator
66

77
from ..access_rights import AccessRights
@@ -53,7 +53,7 @@ def from_domain_model(
5353

5454

5555
class FolderCreateBodyParams(InputSchema):
56-
name: NameSafeStr
56+
name: DisplaySafeStr
5757
parent_folder_id: FolderID | None = None
5858
workspace_id: WorkspaceID | None = None
5959
model_config = ConfigDict(extra="forbid")
@@ -68,7 +68,7 @@ class FolderCreateBodyParams(InputSchema):
6868

6969

7070
class FolderReplaceBodyParams(InputSchema):
71-
name: NameSafeStr
71+
name: DisplaySafeStr
7272
parent_folder_id: FolderID | None = None
7373
model_config = ConfigDict(extra="forbid")
7474

packages/models-library/src/models_library/string_types.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,11 +165,25 @@ def validate_input_xss_safety(value: str) -> str:
165165
strip_whitespace=True,
166166
min_length=1,
167167
max_length=MAX_NAME_LENGTH,
168-
pattern=r"^[A-Za-z0-9 ._-]+$", # string that ONLY contains alphanumeric characters, spaces, dots, underscores, or hyphens
168+
pattern=r"^[A-Za-z0-9 ._-]+$",
169+
# CAREFUL: string that ONLY contains alphanumeric characters, spaces, dots, underscores, or hyphens
169170
),
170171
AfterValidator(validate_input_xss_safety),
172+
annotated_types.doc(
173+
""" A safe string used in **name identifiers**, It might be very restrictive for display names (e.g. titles or labels) """
174+
),
171175
]
172176

177+
DisplaySafeStr: TypeAlias = Annotated[
178+
str,
179+
StringConstraints(
180+
strip_whitespace=True,
181+
min_length=1,
182+
max_length=MAX_NAME_LENGTH,
183+
),
184+
AfterValidator(validate_input_xss_safety),
185+
annotated_types.doc(""" Like `NameSafeStr` but more suited for display names"""),
186+
]
173187

174188
DescriptionSafeStr: TypeAlias = Annotated[
175189
str,
@@ -200,7 +214,7 @@ def validate_input_xss_safety(value: str) -> str:
200214
strip_whitespace=True,
201215
min_length=1,
202216
max_length=200,
203-
pattern=r"^[A-Za-z0-9 ._-]*$", # Allow alphanumeric, spaces, dots, underscores, hyphens, and asterisks
217+
pattern=r"^[A-Za-z0-9 ._@-]*$", # Allow alphanumeric, spaces, dots, underscores, hyphens, and at signs
204218
),
205219
AfterValidator(validate_input_xss_safety),
206220
annotated_types.doc(

0 commit comments

Comments
 (0)