Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2,351 changes: 1,461 additions & 890 deletions backend/openapi/specs/data-management.yaml

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,47 +1,87 @@
package com.datamate.datamanagement.infrastructure.exception;

import com.datamate.common.infrastructure.exception.ErrorCode;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
* 数据管理模块错误码
*
* @author dallas
* @since 2025-10-20
*/
@Getter
@AllArgsConstructor
public enum DataManagementErrorCode implements ErrorCode {
/**
* 数据集不存在
*/
DATASET_NOT_FOUND("data_management.0001", "数据集不存在"),
/**
* 数据集已存在
*/
DATASET_ALREADY_EXISTS("data_management.0002", "数据集已存在"),
/**
* 数据集状态错误
*/
DATASET_STATUS_ERROR("data_management.0003", "数据集状态错误"),
/**
* 数据集标签不存在
*/
DATASET_TAG_NOT_FOUND("data_management.0004", "数据集标签不存在"),
/**
* 数据集标签已存在
*/
DATASET_TAG_ALREADY_EXISTS("data_management.0005", "数据集标签已存在"),
/**
* 数据集文件已存在
*/
DATASET_FILE_ALREADY_EXISTS("data_management.0006", "数据集文件已存在"),
/**
* 目录不存在
*/
DIRECTORY_NOT_FOUND("data_management.0007", "目录不存在");

private final String code;
private final String message;
}
package com.datamate.datamanagement.infrastructure.exception;

import com.datamate.common.infrastructure.exception.ErrorCode;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
* 数据管理模块错误码
*
* @author dallas
* @since 2025-10-20
*/
@Getter
@AllArgsConstructor
public enum DataManagementErrorCode implements ErrorCode {
/**
* 数据集不存在
*/
DATASET_NOT_FOUND("data_management.0001", "数据集不存在"),
/**
* 数据集已存在
*/
DATASET_ALREADY_EXISTS("data_management.0002", "数据集已存在"),
/**
* 数据集状态错误
*/
DATASET_STATUS_ERROR("data_management.0003", "数据集状态错误"),
/**
* 数据集标签不存在
*/
DATASET_TAG_NOT_FOUND("data_management.0004", "数据集标签不存在"),
/**
* 数据集标签已存在
*/
DATASET_TAG_ALREADY_EXISTS("data_management.0005", "数据集标签已存在"),
/**
* 数据集文件已存在
*/
DATASET_FILE_ALREADY_EXISTS("data_management.0006", "数据集文件已存在"),
/**
* 目录不存在
*/
DIRECTORY_NOT_FOUND("data_management.0007", "目录不存在"),
/**
* 数据集名称长度不能超过255个字符
*/
DATASET_NAME_TOO_LONG("data_management.0008", "数据集名称长度不能超过255个字符"),
/**
* 数据集类型不合法
*/
DATASET_TYPE_INVALID("data_management.0009", "数据集类型不合法"),
/**
* 数据集状态不合法
*/
DATASET_STATUS_INVALID("data_management.0010", "数据集状态不合法"),
/**
* 标签名称长度不能超过100个字符
*/
TAG_NAME_TOO_LONG("data_management.0011", "标签名称长度不能超过100个字符"),
/**
* 标签名称已存在
*/
TAG_NAME_DUPLICATE("data_management.0012", "标签名称已存在"),
/**
* 标签颜色格式不正确,应为十六进制颜色代码
*/
TAG_COLOR_INVALID("data_management.0013", "标签颜色格式不正确,应为十六进制颜色代码"),
/**
* 保留天数必须为非负整数
*/
RETENTION_DAYS_INVALID("data_management.0014", "保留天数必须为非负整数"),
/**
* 路径长度不能超过限制
*/
PATH_TOO_LONG("data_management.0015", "路径长度不能超过限制"),
/**
* 文件名包含非法字符
*/
FILE_NAME_INVALID("data_management.0016", "文件名包含非法字符"),
/**
* 路径前缀不能以点开头
*/
PREFIX_INVALID("data_management.0017", "路径前缀不能以点开头");

private final String code;
private final String message;
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
package com.datamate.datamanagement.interfaces.dto;

import com.datamate.datamanagement.interfaces.validation.ValidPath;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
Expand Down Expand Up @@ -34,15 +39,21 @@ public AddFilesRequest(List<String> paths) {
@Getter
@Setter
public static class FileRequest {
@NotBlank(message = "文件路径不能为空")
@Size(max = 1000, message = "文件路径长度不能超过1000个字符")
private String filePath;

private Map<String, Object> metadata;
}

private boolean softAdd;

@ValidPath()
private String prefix = "";

@NotEmpty(message = "文件列表不能为空")
@Size(max = 1000, message = "文件数量不能超过1000个")
@Valid
private List<FileRequest> files;

public boolean isValidPrefix() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.datamate.datamanagement.interfaces.dto;

import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.Size;

import java.util.List;

Expand All @@ -10,5 +11,8 @@
* @author dallas
* @since 2025-11-13
*/
public record CopyFilesRequest(@NotEmpty List<String> sourcePaths) {
public record CopyFilesRequest(
@NotEmpty(message = "源文件路径列表不能为空")
@Size(max = 1000, message = "文件数量不能超过1000个")
List<String> sourcePaths) {
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.datamate.datamanagement.interfaces.dto;

import com.datamate.datamanagement.common.enums.DatasetStatusType;
import com.datamate.datamanagement.common.enums.DatasetType;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
Expand All @@ -21,28 +23,31 @@
@AllArgsConstructor
public class CreateDatasetRequest {
/** 数据集名称 */
@Size(min = 1, max = 100)
@Size(min = 1, max = 255, message = "数据集名称长度不能超过255个字符")
@NotBlank(message = "数据集名称不能为空")
@McpToolParam(description = "数据集名称")
private String name;
/** 数据集描述 */
@Size(max = 500)
@Size(max = 500, message = "数据集描述长度不能超过500个字符")
@McpToolParam(description = "数据集描述", required = false)
private String description;
/** 数据集类型 */
@NotNull(message = "数据集类型不能为空")
@McpToolParam(description = "数据集类型,取值范围为TEXT/IMAGE/VIDEO/AUDIO/OTHER")
private DatasetType datasetType;
/** 标签列表 */
@Size(max = 20, message = "标签数量不能超过20个")
@McpToolParam(description = "标签列表", required = false)
private List<String> tags;
/** 数据源 */
@Size(max = 255, message = "数据源长度不能超过255个字符")
@McpToolParam(description = "数据源", required = false)
private String dataSource;
/** 保留天数 */
@Min(value = 0, message = "保留天数必须为非负整数")
@McpToolParam(description = "保留天数", required = false)
private Integer retentionDays;
/** 数据集状态 */
@McpToolParam(description = "数据集状态", required = false)
private String status;
private DatasetStatusType status;
}
Original file line number Diff line number Diff line change
@@ -1,20 +1,26 @@
package com.datamate.datamanagement.interfaces.dto;

import jakarta.validation.constraints.NotBlank;
import lombok.Getter;
import lombok.Setter;

/**
* 创建数据集子目录请求
*/
@Getter
@Setter
public class CreateDirectoryRequest {

/** 父级前缀路径,例如 "images/",为空表示数据集根目录 */
private String parentPrefix;

/** 新建目录名称 */
@NotBlank
private String directoryName;
}
package com.datamate.datamanagement.interfaces.dto;

import com.datamate.datamanagement.interfaces.validation.ValidFileName;
import com.datamate.datamanagement.interfaces.validation.ValidPath;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.Getter;
import lombok.Setter;

/**
* 创建数据集子目录请求
*/
@Getter
@Setter
public class CreateDirectoryRequest {

/** 父级前缀路径,例如 "images/",为空表示数据集根目录 */
@ValidPath()
private String parentPrefix;

/** 新建目录名称 */
@NotBlank(message = "目录名称不能为空")
@ValidFileName
@Size(max = 255, message = "目录名称长度不能超过255个字符")
private String directoryName;
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package com.datamate.datamanagement.interfaces.dto;

import com.datamate.datamanagement.interfaces.validation.ValidHexColor;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.Getter;
import lombok.Setter;

Expand All @@ -10,9 +13,16 @@
@Setter
public class CreateTagRequest {
/** 标签名称 */
@NotBlank(message = "标签名称不能为空")
@Size(min = 1, max = 100, message = "标签名称长度不能超过100个字符")
private String name;
/** 标签颜色 */
@ValidHexColor
private String color;
/** 标签描述 */
@Size(max = 500, message = "标签描述长度不能超过500个字符")
private String description;
/** 标签分类 */
@Size(max = 50, message = "标签分类长度不能超过50个字符")
private String category;
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.datamate.common.interfaces.PagingQuery;
import com.datamate.datamanagement.common.enums.DatasetStatusType;
import com.datamate.datamanagement.common.enums.DatasetType;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
Expand Down Expand Up @@ -30,12 +31,14 @@ public class DatasetPagingQuery extends PagingQuery {
/**
* 标签名过滤
*/
@Size(max = 10, message = "过滤标签数量不能超过10个")
@McpToolParam(description = "标签名过滤", required = false)
private List<String> tags = new ArrayList<>();

/**
* 关键词搜索(名称或描述)
*/
@Size(max = 100, message = "关键词长度不能超过100个字符")
@McpToolParam(description = "关键词搜索(名称或描述)", required = false)
private String keyword;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,27 @@
package com.datamate.datamanagement.interfaces.dto;

import jakarta.validation.constraints.NotBlank;
import lombok.Getter;
import lombok.Setter;

/**
* 重命名数据集目录请求
*/
@Getter
@Setter
public class RenameDirectoryRequest {

/** 目录前缀,例如 "images/",与列表/删除目录接口保持一致 */
@NotBlank
private String prefix;

/** 新的目录名称 */
@NotBlank
private String newName;
}
package com.datamate.datamanagement.interfaces.dto;

import com.datamate.datamanagement.interfaces.validation.ValidFileName;
import com.datamate.datamanagement.interfaces.validation.ValidPath;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.Getter;
import lombok.Setter;

/**
* 重命名数据集目录请求
*/
@Getter
@Setter
public class RenameDirectoryRequest {

/** 目录前缀,例如 "images/",与列表/删除目录接口保持一致 */
@NotBlank(message = "目录前缀不能为空")
@ValidPath(maxLength = 500)
private String prefix;

/** 新的目录名称 */
@NotBlank(message = "新目录名称不能为空")
@ValidFileName
@Size(max = 255, message = "目录名称长度不能超过255个字符")
private String newName;
}
Loading
Loading