Files
junhong_cmp_fiber/openspec/changes/archive/2026-09-15-add-phone-asset-associations/proposal.md
break 70e680eb0a
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m2s
feat(手机号资产关联): AUG26-009 手机号—资产关联、十项上限与后台解绑
- 新增成对迁移 000223(tb_phone_asset_association,含有效关系部分唯一索引与 down 守卫)与 000224(解绑导入任务表),不回填历史
- H5:need_bind_phone 三支判定(开关关闭完全短路);已有主号幂等建联;十项上限按手机号 advisory 串行化(含换绑到全新号的并发场景);换绑原子迁移与冲突整单回滚;不写遗留列
- 后台:关联列表、单项/批量解绑、CSV 导入解绑(B1–B16),超管/平台 gate + 资产数据范围复核,三态统一文案
- 读侧:卡/设备列表与详情按页一次 IN 聚合;两类导出补「关联手机号」列并保留历史表头反解兼容
- 脱敏:关联审计走独立动作/资源只写脱敏手机号;访问日志手机号类字段脱敏
- 同步主 Spec openspec/specs/phone-asset-association 并归档 AUG26-009,补齐 requirement-evidence 与入口矩阵,context-health 通过
2026-09-15 11:54:56 +08:00

30 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## Scope
- 迭代编号:`AUG26-009`
- 需求追溯PRD-08-011仅作追溯
## Why
现有全局绑定只按客户记一项主手机号,既不能保留手机号与单项资产的验证关系,也无法安全支持按资产查看与解除;后台、换货与批量路径都没有可依据的关联事实。
## What Changes
- 新增仅由 H5 短信验证建立的手机号—资产当前有效关系及十项上限;`iot_card``device` 分别计为独立资产,即使两者 ID 相同。
- `need_bind_phone` 由客户维度扩为「全局开关开启且当前主手机号未关联当前访问资产」;开关关闭时不查询、不创建、不删除任何关系。
- **BREAKING**H5 认证契约)`bind-phone` 不再对「已有主号」直接拒绝:已有主号且提交号码与主号一致、验证码有效时,幂等建立当前访问资产与主手机号的关联。**H5 必须与本 Change 同批上线**并支持预填已在账号上的手机号,否则会出现 `need_bind_phone=true` 却无法建联的死锁。
- 新增客户原子换绑:新号现有有效关系数加旧号待迁移数超过十项时整次失败,新旧关系均不变。
- 新增后台受权限控制的单项解绑、勾选批量解绑与 CSV 导入解绑;解绑任务明细持久化解绑当时的完整手机号快照。
- 保持全局强制绑定;**不新增后端访问 gate**,缺关系不改变任何资源授权;换货不迁移关系,不回填历史。
## Capabilities
### New Capabilities
- `phone-asset-association`: 已验证手机号与资产关联。
### Modified Capabilities
- 无。
## Impact
影响 H5 认证契约与上线顺序、资产列表/详情/导出读侧、短信验证、CSV 导入场景族、审计脱敏与 Schema。实施不修改上下文证据文件归档并同步主 Spec含新路由索引后必须补齐 `docs/verification/context-reset/` 证据,否则 `scripts/context-health.sh` 失败。