docs(T3): 回填 §4 推送与 CI 证据(run 1481 completed/success)并补 P33
build / build-push (push) Successful in 52s
build / build-push (push) Successful in 52s
P33 是本轮自查出的真实缺口:subject_id 只校验了授权与校域,未校验存在性 (要查 UserBase 的人,与 T4 的 SDK 调用链一起做);当前它是未经证实的引用。
This commit is contained in:
+7
-3
@@ -123,6 +123,7 @@
|
||||
| P30 | 数据管理操作的行级范围(契约 §8 矩阵 / `fc:scope:all`)本轮未接 | 仍走 P21 过渡角色闸门 + `(域, uuid)` 定位(跨校答卷直接查不到);**行级 scope 与"编辑入口按数据范围收敛"归 T4**(V27/V39 的断言点)。本轮不做"半个 scope",避免与 T4 的构造器双份实现 | T4 收紧点 |
|
||||
| P31 | `answer_index` 三条复合索引键长约 1292 字节,超过 5.7 旧行格式的单索引 767 字节上限 | 依赖 5.7 默认 `ROW_FORMAT=DYNAMIC` + `innodb_large_prefix=ON`(上限 3072);`sql/t3_answer_domain.sql` 顶部把该前提与降级方案(`v_str` 降 `varchar(64)`,前缀匹配语义不变)写死。**160 生产行格式/版本待核**(P10 的延伸,方案 §7.7 记档项) | 建表能否成功;T9 部署前必查 |
|
||||
| P32 | 编辑/改状态是否受"截止时间"与"表单软删"约束,契约只写了填报入口 | 编辑与改状态**不看截止**(截止只挡填报,方案 §5.4);表单软删后其存量答卷**仍可管理**(数据面取域不排除软删表单,新增 `findDataDomainCandidates`)。两条都按"停用/软删只断填报入口、数据读改不变"外推 | T4/T8 读路径需保持同一外推口径 |
|
||||
| P33 | `subject_id` 的**存在性/归属**未校验:管理员代填可把 `subject_id` 写成任意整数(不存在的用户、或别校的用户 id),污染"关于我的"视图(V18 的主体可见性依赖 id 真实) | 本轮只校验**授权**(普通用户只能=自己,V17)与**校域**(`sch_id` 恒=会话校),不校验 id 是否存在于本校——需要 UserBase 查人(`by-ids`/组树),与 T4 的 SDK 调用链一起做。`subject_id` 因此当前是"未经证实的引用",**T4 接入时必须补一道 by-ids 校验**(越权面不大但数据会脏) | V18;T4 scope 与"关于我的"视图 |
|
||||
|
||||
---
|
||||
|
||||
@@ -130,10 +131,13 @@
|
||||
|
||||
| 仓 | 提交 | 推送 | CI run | 结论 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| form-center-service | 待回填 | 待回填 | 待回填 | 待回填 |
|
||||
| form-center-service | `bff0fb1`(33 条:29 新增 + 4 处裁决驱动改动,行数见 §1.6) | `90f6b0a..bff0fb1 main -> main` | [run 1481](http://192.168.10.160:3000/form-center/form-center-service/actions/runs/1481)(`build.yml@refs/heads/main`,head_sha `bff0fb1…`) | **status=completed / conclusion=success**(Gitea Actions API 实测,poll1 即终态) |
|
||||
| form-center-front | 无改动 | 未推送 | — | T3 是纯后端任务 |
|
||||
|
||||
> 纪律:常规 `git push origin main`;`git add` 按显式路径逐个添加(不用 `add -A`);CI 只跑 `mvn -B -DskipTests`,
|
||||
> 所以 CI 绿只证明产物链,行为证据在本文 §2 的本地 `mvn test`(121 条)里。
|
||||
- 推送方式:常规 `git push origin main`;暂存**按显式路径逐条 `git add`**(33 条路径,提交前 `git status` 核对:无 `add -A`、无敏感文件、`target/` 与 `local-debug/` 不在本仓工作树)。
|
||||
- CI 取证方式:`git credential fill` 取本机已存凭据后调 `GET /api/v1/repos/.../actions/runs[/{id}]`,凭据不回显、不落盘、不入库。
|
||||
- CI 只跑 `mvn -B -DskipTests clean package`(**不跑单测**,方案 §7.2),所以 CI 绿只证明产物链;
|
||||
答卷的行为证据在本文 §2 的本地 `mvn test`(121 条,其中 39 条打真实 MySQL、2 条真并发取证)。
|
||||
- 本节的回填本身是一次 docs-only 提交(只改本文,不动任何构建输入),其后同流水线再跑一次。
|
||||
|
||||
—— 全文完 ——
|
||||
|
||||
Reference in New Issue
Block a user