Browse Source

fix(knowledge_base): Unchecked metadata name length (#21454)

Signed-off-by: -LAN- <laipz8200@outlook.com>
tags/1.5.0
-LAN- 4 months ago
parent
commit
c7ee0f2a93
No account linked to committer's email address

+ 8
- 0
api/services/metadata_service.py View File

@@ -19,6 +19,10 @@ from services.entities.knowledge_entities.knowledge_entities import (
class MetadataService:
@staticmethod
def create_metadata(dataset_id: str, metadata_args: MetadataArgs) -> DatasetMetadata:
# check if metadata name is too long
if len(metadata_args.name) > 255:
raise ValueError("Metadata name cannot exceed 255 characters.")

# check if metadata name already exists
if (
db.session.query(DatasetMetadata)
@@ -42,6 +46,10 @@ class MetadataService:

@staticmethod
def update_metadata_name(dataset_id: str, metadata_id: str, name: str) -> DatasetMetadata: # type: ignore
# check if metadata name is too long
if len(name) > 255:
raise ValueError("Metadata name cannot exceed 255 characters.")

lock_key = f"dataset_metadata_lock_{dataset_id}"
# check if metadata name already exists
if (

+ 6
- 0
web/app/components/datasets/metadata/hooks/use-check-metadata-name.ts View File

@@ -18,6 +18,12 @@ const useCheckMetadataName = () => {
}
}

if (name.length > 255) {
return {
errorMsg: t(`${i18nPrefix}.tooLong`, { max: 255 }),
}
}

return {
errorMsg: '',
}

+ 1
- 0
web/i18n/en-US/dataset.ts View File

@@ -183,6 +183,7 @@ const translation = {
checkName: {
empty: 'Metadata name cannot be empty',
invalid: 'Metadata name can only contain lowercase letters, numbers, and underscores and must start with a lowercase letter',
tooLong: 'Metadata name cannot exceed {{max}} characters',
},
batchEditMetadata: {
editMetadata: 'Edit Metadata',

Loading…
Cancel
Save