## ADDED Requirements ### Requirement: target 分组配置 系统 SHALL 支持在每个 target 上配置可选的 `group` 字段,用于将目标归类到不同分组。未指定 `group` 的 target SHALL 归入 `"default"` 分组。 #### Scenario: 配置分组名称 - **WHEN** YAML 配置中某个 target 指定 `group: "搜索引擎"` - **THEN** 系统 SHALL 将该 target 归类到 "搜索引擎" 分组 #### Scenario: 不配置分组 - **WHEN** YAML 配置中某个 target 未指定 `group` 字段 - **THEN** 系统 SHALL 将该 target 归类到 "default" 分组 #### Scenario: group 字段类型校验 - **WHEN** YAML 配置中某个 target 的 `group` 字段不是字符串 - **THEN** 系统 SHALL 以错误退出并提示 group 字段类型错误 ### Requirement: 分组排序 系统 SHALL 保证 "default" 分组始终排在最前面,其余分组按配置文件中首次出现的顺序排列。 #### Scenario: default 分组排最前 - **WHEN** 配置中存在多个分组(包括 "default" 和自定义分组) - **THEN** API 返回的目标列表中 "default" 分组的目标 SHALL 排在其他分组之前 #### Scenario: 自定义分组按出现顺序 - **WHEN** 配置中 "搜索引擎" 分组在 "后端服务" 分组之前首次出现 - **THEN** API 返回中 "搜索引擎" 分组 SHALL 排在 "后端服务" 分组之前 ### Requirement: 分组信息 API 传递 系统 SHALL 在 API 响应中返回每个 target 的分组信息。 #### Scenario: targets 列表包含分组 - **WHEN** 客户端请求 `GET /api/targets` - **THEN** 响应中每个目标 SHALL 包含 `group` 字段,值为该目标所属的分组名称 ### Requirement: 分组存储 系统 SHALL 在数据库 targets 表中持久化每个 target 的分组信息。 #### Scenario: 持久化分组信息 - **WHEN** 系统同步 targets 到数据库 - **THEN** 每个 target 的 `grp` 列 SHALL 存储其分组名称,未配置分组的存储 `"default"`