背景
实施 #27(PR #65)时,对本地后端 ../gocell 跑 pnpm codegen 暴露出 packages/contracts/src/ 与后端 schema 的广泛漂移——远超 #27 范围。#27 故意未纳入这些改动(其 cookie 接线用未类型化请求体即可编译),改由本 issue 单独协同消费方处理。
codegen 漂移清单(pnpm codegen vs 当前 committed contracts)
| 文件 |
改动 |
关联后端 |
http/auth/refresh/v1/request.ts |
refreshToken 由必填 → 可选(required:[]) |
BR-005(#27 已在运行时对接,类型未更) |
http/auth/role/assign/v1/request.ts |
新增必填 tenantId: string |
多租户(epic #1337 PR-12) |
http/auth/role/revoke/v1/request.ts |
新增必填 tenantId: string |
多租户 |
http/audit/list/v1/response.ts |
新增 tenantId?、scope? + 文案改写(ResourceProjection/FieldMask 列掩码) |
多租户 |
index.ts |
新增导出:admin/health/cells、devicecompliance、deviceidentity/*、devicestate、policy/*、shared/deviceidentity/certificate-identity |
device-identity / compliance / policy 新 cell |
范围
备注
tenantId 多租户接线很可能本身是更大的前端 epic 的一部分;本 issue 至少先让 codegen-diff 守门与 typecheck 恢复一致,避免后续 PR 持续撞上同一片漂移。
背景
实施 #27(PR #65)时,对本地后端
../gocell跑pnpm codegen暴露出packages/contracts/src/与后端 schema 的广泛漂移——远超 #27 范围。#27 故意未纳入这些改动(其 cookie 接线用未类型化请求体即可编译),改由本 issue 单独协同消费方处理。codegen 漂移清单(
pnpm codegenvs 当前 committed contracts)http/auth/refresh/v1/request.tsrefreshToken由必填 → 可选(required:[])http/auth/role/assign/v1/request.tstenantId: stringhttp/auth/role/revoke/v1/request.tstenantId: stringhttp/audit/list/v1/response.tstenantId?、scope?+ 文案改写(ResourceProjection/FieldMask 列掩码)index.tsadmin/health/cells、devicecompliance、deviceidentity/*、devicestate、policy/*、shared/deviceidentity/certificate-identity为何不混入 #27
role/assign、role/revoke新增必填tenantId是破坏性变更——会让@gocell/access的usePoliciesStore/api/roles消费方 typecheck 红,需同步改调用点。范围
pnpm codegen重新派生packages/contracts/src/(一次性吸收全部漂移)role/assign/role/revoke消费方传tenantId(@gocell/access:api/roles、usePoliciesStore及 UI)audit/list新字段tenantId/scope是否需在@gocell/audit视图呈现(列掩码语义)pnpm codegen && git diff --exit-code packages/contracts/src/守门转绿 +pnpm -w typecheck备注
tenantId多租户接线很可能本身是更大的前端 epic 的一部分;本 issue 至少先让 codegen-diff 守门与 typecheck 恢复一致,避免后续 PR 持续撞上同一片漂移。