docs(plans): K16 改为后台可配置口径

This commit is contained in:
Zhou Weidong authored and trae-solo-agent committed 2026-10-17 23:16:31 +08:00
1 parent 6c966af5b2
commit 461fb8ea15
1 file changed
+14 -14
+14 -14
View File
@@ -32,22 +32,22 @@
- `guardRegisterRisk(...)` 在数值达到阈值时抛 429;无注解注入,无法配置。
- `fruitshorts-app-api/src/main/resources/application.yml` 已有 `fruitshorts.interaction.*` 等配置段。
### 二、本批范围
### 二、本批范围(后台可配置,走 `sys_config`)
1. 配置化:
- 新增 `fruitshorts.auth.register-max-per-ip-per-day`(默认 5)、`fruitshorts.auth.register-max-per-device-per-day`(默认 3);
- 用 `@Value` 注入 `AppAuthService`(保持现有构造方式最小改动);
- **值 ≤ 0 表示不限制**(跳过对应 guard 分支),不改变错误码与文案。
2. 开发环境 yml:在 `application.yml` 显式写 0(不限制),并注释说明生产建议值 5/3;`application-prod.yml` 如存在则保持 5/3。
3. 契约说明:在 `FruitServer/docs/api-phase1.md` §1.1 注册风控段补充配置键与 0=不限制口径。
4. 测试:
- 现有 IP/设备限流用例改为注入配置;
- 新增「配置为 0 时不限制」用例(分别覆盖 IP 与设备);
- `mvn test` 全绿。
5. 重新打包并重启 8081:
1. **读取方式**:`AppAuthService` 注入 `ConfigService`,读取:
- `app.register.max-per-ip-per-day`
- `app.register.max-per-device-per-day`
- 值 **≤0 = 不限制**(跳过对应 guard);键缺失或非数字时回退默认 **5 / 3**;错误码与文案不变。
2. **种子配置**:`sql/data-phase1.sql` 增加两键的幂等种子(`INSERT ... ON CONFLICT (config_key) DO NOTHING`):
- 开发默认值 0(不限制),remark 写明「0=不限制;生产建议 IP 5 / 设备 3」。
3. **后台配置**:无需新建页面——已有 `ReelShortWeb/src/views/systemManagement/SettingsView.vue` 使用 `/admin/configs`;只需确认菜单可进入「系统配置」并能看到这两个键。
4. **契约说明**:`docs/api-phase1.md` §1.1 注册风控段补充:两键可在后台「系统配置」修改、0=不限制、缺省回退 5/3。
5. **测试**:`ConfigService` 注入 mock 覆盖 0 / 缺省 / 自定义三种;`mvn test` 全绿。
6. **打包并重启 8081**:
- `mvn -pl fruitshorts-app-api -am package -DskipTests`;
- 停掉旧 8081 进程并用新 jar 启动,`/healthz` 通过;
- 验证:用新设备号连续注册若干次不再 429(只做接口自检,不作为设备侧证据)。
- 停旧 8081 进程并使用新 jar 启动,`/healthz` 通过;
- 验证:确认库中两键为 0 后,用新设备号连续注册 ≥4 次不再 429(接口自检,不作为设备侧证据)。
7. **不使用 application.yml 固化限流值**(已下发口径更正)。
### 三、约束