docs(governance): 受控联系立项治理登记(OQ-003 转 IN_PROGRESS / OQ-009~010 新增 / DEC-MATCHMAKER-003-B1 落账)
CI/CD Pipeline / Backend Build & Test (push) Canceled after 0s
CI/CD Pipeline / Admin Web Build (push) Canceled after 0s
CI/CD Pipeline / Mini Program Compile Check (push) Canceled after 0s
CI/CD Pipeline / Test Shell Guard (Phase 23 Gate) (push) Canceled after 0s
CI/CD Pipeline / UI Contracts (source-structure gates) (push) Canceled after 0s
CI/CD Pipeline / Migration Validation (push) Canceled after 0s
CI/CD Pipeline / E2E (live stack) (push) Canceled after 0s
CI/CD Pipeline / Backend Build & Test (push) Canceled after 0s
CI/CD Pipeline / Admin Web Build (push) Canceled after 0s
CI/CD Pipeline / Mini Program Compile Check (push) Canceled after 0s
CI/CD Pipeline / Test Shell Guard (Phase 23 Gate) (push) Canceled after 0s
CI/CD Pipeline / UI Contracts (source-structure gates) (push) Canceled after 0s
CI/CD Pipeline / Migration Validation (push) Canceled after 0s
CI/CD Pipeline / E2E (live stack) (push) Canceled after 0s
- config-register.md: matchmaker.contact.* 五 canonical key 登记(enabled fail-safe 缺省 false / approver-authorities 双岗并列 / consent-deadline-hours 72 / default-validity-days 7 / retention-days 365,均 DEFAULT+CONFIG 非 LOCKED 待产品+法务终审) - open-questions.md: OQ-MATCHMAKER-003 DEFERRED→IN_PROGRESS(V056 立项实现,双守卫翻转,5 项 LEGAL_VERIFY 逐项标注当前实现态与默认配置键);新增 OQ-MATCHMAKER-009(审批双岗并列待收敛,OPEN)与 OQ-MATCHMAKER-010(enabled=false 行为用例待补,QA P2-2) - PENDING_DECISIONS.md: 受控联系行更新为已立项实现(DEC-MATCHMAKER-003-B1,V056,提交 d3735e3);剩余决策=双岗收敛+LEGAL_VERIFY 终审 - decision-register.md: DEC-MATCHMAKER-003-B1(2026-10-11 LOCKED→已实现)登记,验证数字 mvn verify 895/895、UI 24/24、后端契约 228/CURATED 20、真编译 87 WXML、负向注入 5+2
This commit is contained in:
@@ -74,7 +74,7 @@
|
||||
| DEC-MATCHMAKER-004 不得代替用户决定 | Like/Pass/活动意向/开启聊天等用户本人操作 | ✅ 已完成(LOCKED;5e484d0 锁定) |
|
||||
| DEC-MATCHMAKER-005 数据最小必要 | RBAC + 数据范围 + 字段隐私 + 服务授权 | ✅ 已完成(LOCKED;3caf5f8 + 1be0d98) |
|
||||
| DEC-MATCHMAKER-006 全程留痕 | 分配/受限查看/越权拒绝等审计 + 第八节字段 | ✅ 已完成(LOCKED;V055 + 1be0d98) |
|
||||
| 受控联系(电话/线下)授权机制 | 未立项;ContactAuthorizationPolicy DEFERRED | ⏳ 待产品/法务确认(OQ-MATCHMAKER-003;MatchmakerContactGuardTest 机械锁强制复审) |
|
||||
| 受控联系(电话/线下)授权机制 | **已立项实现**(DEC-MATCHMAKER-003 B1 例外通道,V056,提交 d3735e3,QA PASS 0 P0/P1):申请(须持有效分配)→ 审批(双岗 DEFAULT+CONFIG)→ **用户单独同意**(PIPL 单独同意动作:独立端点、无预同意参数、守卫三端锁定)→ 限时生效(默认 7 天)→ 撤销/过期全链路上线;唯一披露出口专用 disclose 端点(enabled fail-safe + 404 化 deny + user_phone_disclosure 敏感审计 + phone 不落日志) | ⏳ 剩余决策:双岗收敛(OQ-MATCHMAKER-009)+ 5 项 LEGAL_VERIFY 终审(OQ-MATCHMAKER-003);参数均 DEFAULT+CONFIG,终审后改配置生效 |
|
||||
| C 端死代码退役 3 项 | MatchmakerServiceService.getCandidates / cancelService / getRecommendationsForUser(grep 全仓零调用已核,2026-10-10) | ⏳ 待产品确认:是否批准专项治理批次执行(与 ZC-MM-006 G6 评估清单合并为一个退役 PR,不混入功能提交) |
|
||||
|
||||
---
|
||||
@@ -146,5 +146,5 @@
|
||||
|
||||
---
|
||||
|
||||
*最后更新: 2026-10-10 — 红娘角色权限专项回写:DEC-MATCHMAKER-001~006 全部 LOCKED 且已落地(ZC-MM-001~007 全链路,验证 mvn verify 884/884 / UI 24/24 / 后端契约 198 / 负向注入 7 处);新增待产品确认:受控联系授权机制开放(OQ-MATCHMAKER-003,LEGAL_VERIFY)与 C 端死代码退役 3 项专项治理批次。此前:2026-09-20 V1.0.1 配置与规则纠偏(消解「推荐阈值 60 已确认 / 待定」矛盾等)。*
|
||||
*最后更新: 2026-10-11 — 受控联系行更新为「已立项实现」(DEC-MATCHMAKER-003-B1,V056,提交 d3735e3,QA PASS 0 P0/P1;验证 mvn verify 895/895 / UI 24/24 / 后端契约 228/CURATED 20 / 真编译 87 WXML / 负向注入 5+2);剩余决策 = OQ-MATCHMAKER-009 双岗收敛 + OQ-MATCHMAKER-003 的 5 项 LEGAL_VERIFY 终审。此前:2026-10-10 红娘角色权限专项回写(DEC-MATCHMAKER-001~006 全部 LOCKED 已落地,ZC-MM-001~007 全链路);2026-09-20 V1.0.1 配置与规则纠偏(消解「推荐阈值 60 已确认 / 待定」矛盾等)。*
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# 配置登记表 — config-register.md
|
||||
|
||||
> **版本**:V1.0.1 配置与规则纠偏基线 · **生效**:2026-09-20 · **owner**:WorkBuddy
|
||||
> **代码载体**:`FeatureFlagConfig`(feature flag,前缀 `features`)/ `MatchRuleConfigProperties`(前缀 `match`)/ `ProfileProperties`(前缀 `profile`)/ `AccountConfig`(前缀 `account`)
|
||||
> **代码载体**:`FeatureFlagConfig`(feature flag,前缀 `features`)/ `MatchRuleConfigProperties`(前缀 `match`)/ `ProfileProperties`(前缀 `profile`)/ `AccountConfig`(前缀 `account`)/ `ContactAuthorizationConfig`(前缀 `matchmaker.contact`)
|
||||
> **一致性守卫**:`FeatureFlagPersistenceGuardTest`、`MatchRuleConfigPropertiesTest`、`EntityMigrationParityTest`、`MigrationValidationTest`
|
||||
>
|
||||
> **核心纪律**(AGENTS.md #12 + V1.0.1 纠偏):**技术默认值 ≠ 产品正式确认规则。**
|
||||
@@ -39,6 +39,11 @@
|
||||
| `account.data-retention.months` | `account.data-retention-months` | LOCKED | `36` | 是(2026-09-19 产品确认下限 36 个月) | 是 | `AccountConfig`;注销后保留期下限,到期人工审核匿名化(V049)。 |
|
||||
| `account.feature-flags.*`(活动/红娘/图片聊天/申诉/转介/互选/专项 开关) | `features.*` | CONFIG | 见 `FeatureFlagConfig` | 部分 | 是 | `FeatureFlagConfig`;`feature_flag_overrides`(V048)持久化覆盖。 |
|
||||
| `idempotency.ttl` | 应用层 `idempotency_records`(TTL 默认 86400s) | CONFIG / LEGAL_VERIFY | `86400s` | 否 | 是 | 幂等去重窗口;开放第三方时需决定是否按调用方分级(OQ,见 open-questions)。 |
|
||||
| `matchmaker.contact.enabled` | `matchmaker.contact.enabled`(Java 字段 `enabled`) | CONFIG / TBD | 代码缺省 **`false`**(fail-safe:配置缺失=机制关闭);生产 yml 显式 `true` | 否 | 是 | `ContactAuthorizationConfig`;受控联系(DEC-MATCHMAKER-003 B1 例外通道)功能总开关,紧急停用入口;判定点 `ContactAuthorizationService` 全部写路径与 disclose 前置。 |
|
||||
| `matchmaker.contact.approver-authorities` | `matchmaker.contact.approver-authorities`(逗号分隔权限码) | CONFIG / TBD | `"matchmaker.team.assign,matchmaker.assign"` | 否 | 是 | `ContactAuthorizationConfig`;审批岗位(LEGAL_VERIFY① 默认双岗并列,待产品终审收敛单岗,见 OQ-MATCHMAKER-009);读点 `approve`/`reject` 的 Service 层动态判定(@PreAuthorize 无法配置化,故下沉 Service)。 |
|
||||
| `matchmaker.contact.consent-deadline-hours` | `matchmaker.contact.consent-deadline-hours` | CONFIG / TBD | `72` | 否 | 是 | `ContactAuthorizationConfig`;批准后用户单独同意窗口,超时 pending_consent 惰性收敛为 expired。 |
|
||||
| `matchmaker.contact.default-validity-days` | `matchmaker.contact.default-validity-days` | CONFIG / TBD | `7` | 否 | 是 | `ContactAuthorizationConfig`;授权生效期(LEGAL_VERIFY③ 默认值,待终审),expires_at = user_consented_at + N 天。 |
|
||||
| `matchmaker.contact.retention-days` | `matchmaker.contact.retention-days` | CONFIG / TBD | `365` | 否 | 是 | `ContactAuthorizationConfig`;授权记录保留期(LEGAL_VERIFY④ 默认值,对齐 OQ-LOCAL-ELIG-001 现行 365);读点 `GET .../my` 响应 `retentionDays` 下发前端。 |
|
||||
|
||||
---
|
||||
|
||||
@@ -52,5 +57,5 @@
|
||||
|
||||
---
|
||||
|
||||
*最后更新: 2026-09-21 — V1.0.1 配置与规则纠偏 + canonical key 字面化:登记 identity.liveness.enabled / profile.photo.maxCount / matching.recommendation.minScore 三项 canonical 键;V051 把活体键收敛为 `feature_flag_overrides` 唯一正式键(KEY_ALIASES 读兼容遗留键);消除 MatchConfig 双 bean 与前后端照片上限失同步。*
|
||||
*最后更新: 2026-10-11 — 受控联系立项(V056 / 提交 d373e53 前后端,QA PASS):登记 matchmaker.contact.* 五个 canonical key(enabled / approver-authorities / consent-deadline-hours / default-validity-days / retention-days,均 DEFAULT+CONFIG、产品正式确认列=否,LEGAL_VERIFY①③④ 待产品+法务终审,见 OQ-MATCHMAKER-003/009);代码载体补 `ContactAuthorizationConfig`。此前:2026-09-21 V1.0.1 配置与规则纠偏 + canonical key 字面化。*
|
||||
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
| DEC-MATCHMAKER-003 / B1 | 纯护栏(零生产代码改动):MM-CONTACT-001~004 守卫锁定(无联系端点/无授权机制/零联系方式回显,含紧急联系人 write-only);受控联系机制 DEFERRED(见 OQ-MATCHMAKER-003) | 5e484d0(ZC-MM-003) | MatchmakerContactGuardTest(负向注入) |
|
||||
| DEC-MATCHMAKER-004 | 代操作核查 + 锁定:红娘可调写端点逐一无代用户意思表示;operator 主体调用户决策端点认证层 403(SecurityConfig 身份类型防线);转介 must-confirm 语义测试锁死 | 5e484d0(ZC-MM-004) | MatchmakerActionGuardTest(负向注入) |
|
||||
| DEC-MATCHMAKER-005/006 | V055 audit_logs 补 purpose_code/service_assignment_id/actor_role_snapshot/request_trace_id;JWT 权限实时查库回收(零缓存);SensitiveAccessLog 接入服务详情;写接口 404 化防探测统一 | 1be0d98(ZC-MM-006) | mvn verify 884/884、后端契约 198 |
|
||||
| **DEC-MATCHMAKER-003-B1 例外通道立项**(2026-10-11 LOCKED→已实现) | 受控联系全链路:V056 `matchmaker_contact_authorizations` 六态状态机(申请→审批→**用户单独同意**[PIPL,独立端点/无预同意参数]→限时生效→撤销/过期)+ ContactAuthorizationPolicy/Service + 双控制器 + 前端三端(miniapp 同意页/工作台入口、admin-web 审批 tab);**唯一披露出口** disclose 专用端点(enabled fail-safe + 404 化 deny + user_phone_disclosure 敏感审计 + phone 不落应用日志);守卫翻转五条(ReferralService 响应键白名单与无 @Scheduled 保留,其余从「锁不存在」改「锁新机制契约」);审批岗/有效期/保留期等全部 DEFAULT+CONFIG(config-register `matchmaker.contact.*` 五键,非 LOCKED 待终审) | d3735e3 | mvn verify **895/895**、UI 契约 **24/24**、后端契约 **228**/CURATED 20、小程序真编译 **87 WXML**、守卫负向注入 **5+2** |
|
||||
|
||||
**专项验证汇总**:mvn verify 全量 **884/884**、UI 契约 **24/24**、后端契约 **198**、守卫负向注入变异验证 **7 处判红→还原**(守卫有效性自证)。
|
||||
|
||||
@@ -64,4 +65,4 @@
|
||||
|
||||
---
|
||||
|
||||
*最后更新: 2026-10-10 — 登记红娘角色权限专项 DEC-MATCHMAKER-001~006 全部 LOCKED(ZC-MM-001~007 全链路:审计 2d60f78 → A1 建模 861c78e → 数据范围/字段隐私 3caf5f8 → B1/代操作护栏 5e484d0 → 审计与权限回收 1be0d98);受控联系开放前置确认项在 open-questions OQ-MATCHMAKER-003,ContactAuthorizationPolicy 标记 DEFERRED。此前:2026-09-20 登记 15 项已确认决策。*
|
||||
*最后更新: 2026-10-11 — 登记 DEC-MATCHMAKER-003-B1 受控联系例外通道立项(V056 / 提交 d3735e3,QA PASS 0 P0/P1);OQ-MATCHMAKER-003 转 IN_PROGRESS,剩余 LEGAL_VERIFY 终审项与审批双岗收敛见 open-questions OQ-MATCHMAKER-003/009,参数 canonical key 见 config-register `matchmaker.contact.*`。此前:2026-10-10 登记红娘角色权限专项 DEC-MATCHMAKER-001~006(ZC-MM-001~007 全链路);2026-09-20 登记 15 项已确认决策。*
|
||||
|
||||
@@ -80,17 +80,30 @@
|
||||
|
||||
## OQ-MATCHMAKER-003 · 受控联系(电话/线下)开放前的产品/法务确认项【LEGAL_VERIFY】
|
||||
|
||||
- **状态**:TBD(受控联系功能未立项;安全默认 = 不开放)
|
||||
- **背景**:DEC-MATCHMAKER-003 / B1 已 LOCKED——默认平台内渠道联系,电话/线下联系须专项授权。当前系统**不存在**任何电话/线下联系功能与授权机制(守卫锁定,见下)。
|
||||
- **开放前必须逐项确认(①②标 LEGAL_VERIFY,需产品 + 法务共同裁决)**:
|
||||
1. 电话/线下联系例外由**哪个岗位批准**【LEGAL_VERIFY】;
|
||||
2. 例外授权是否需要**用户单独同意**、如何记录【LEGAL_VERIFY】;
|
||||
3. 临时授权的**有效期限**(expires_at 语义);
|
||||
4. 联系授权记录/联系结果摘要的**保留周期**;
|
||||
5. 授权审批与用户同意的**审计字段与查询面**。
|
||||
- **DEFERRED**:`ContactAuthorizationPolicy`(形态已预置:`assertContactAllowed(operatorId, userId, channel, purpose)` → `DataScopeGuard.deny`)与 `matchmaker_contact_authorizations` 表**仅在产品确认开放受控联系时立项**。
|
||||
- **机械锁**:`MatchmakerContactGuardTest`(ZC-MM-003 落地)断言全仓无 ContactAuthorization 类、无 matchmaker_contact_authorizations 迁移、无联系端点——**未来任何人引入受控联系必先触红,强制回到本项复审**,不存在静默绕过路径。
|
||||
- **关联**:DEC-MATCHMAKER-003 规则 7、《决策》§十一;提交 5e484d0(守卫)、1be0d98(DEFERRED 登记)。
|
||||
- **状态**:**IN_PROGRESS**(2026-10-11 立项实现:V056 + ContactAuthorizationPolicy/Service + 双控制器 + 前端三端,提交 d3735e3,QA PASS 0 P0/P1;双守卫翻转完成——`MatchmakerContactGuardTest` 改写为新机制契约、`MatchmakerActionGuardTest` 保留)
|
||||
- **背景**:DEC-MATCHMAKER-003 / B1 LOCKED——默认平台内渠道联系,电话/线下联系须专项授权。B1 例外通道已按「申请(须持有效分配)→ 审批(双岗)→ **用户单独同意**(PIPL 单独同意动作,独立端点、无预同意参数)→ 限时生效 → 撤销/过期」全链路上线。
|
||||
- **关闭前必须逐项终审(①②标 LEGAL_VERIFY,需产品 + 法务共同裁决)**:
|
||||
1. 电话/线下联系例外由**哪个岗位批准**【LEGAL_VERIFY】——当前默认 `matchmaker.team.assign,matchmaker.assign` 双岗并列(待收敛,见 OQ-MATCHMAKER-009);
|
||||
2. 例外授权是否需要**用户单独同意**、如何记录【LEGAL_VERIFY】——当前实现已满足"单独端点 + consent 留痕 + 无捆绑默认勾选",待法务确认该形式合规;
|
||||
3. 临时授权的**有效期限**——当前默认 `default-validity-days=7`(DEFAULT+CONFIG);
|
||||
4. 联系授权记录/联系结果摘要的**保留周期**——当前默认 `retention-days=365`(DEFAULT+CONFIG);
|
||||
5. 授权审批与用户同意的**审计字段与查询面**——当前已实现(purpose_code=matchmaker.contact.* 全链路 + service_assignment_id + request_trace_id + user_phone_disclosure 敏感审计),待确认是否满足合规查询要求。
|
||||
- **以上默认值均非 LOCKED**:全部经 `matchmaker.contact.*` canonical key 配置化(config-register),产品/法务终审后改配置即可,无需改代码。
|
||||
- **机械锁(已翻转)**:`MatchmakerContactGuardTest` 现锁定新机制契约——披露能力仅限专用白名单类、端点前缀白名单、到期/撤销/拒绝/未同意状态下 disclose 一律 404+DATA_SCOPE_DENIED、consent 端点独立性、ReferralService 禁词与无 @Scheduled 保留;未来绕过专用出口的披露路径必触红。
|
||||
- **关联**:DEC-MATCHMAKER-003 规则 7、《决策》§十一;V056;提交 d3735e3。
|
||||
|
||||
## OQ-MATCHMAKER-009 · 受控联系审批双岗并列待收敛
|
||||
|
||||
- **状态**:OPEN(待产品确认)
|
||||
- **现状**:`matchmaker.contact.approver-authorities` 默认 `"matchmaker.team.assign,matchmaker.assign"`——红娘组长(同组织范围)或平台管理员**任一**即可批准/拒绝受控联系申请,无会签、无分歧裁决规则。
|
||||
- **待确认**:收敛为单岗(组长 or 平台管理员)?或定义会签(双岗同时批准才生效)?或按渠道分级(线下见面需更高岗位)?
|
||||
- **关联**:OQ-MATCHMAKER-003 第 1 项【LEGAL_VERIFY】;config-register `matchmaker.contact.approver-authorities`;改配置即可生效,无需改代码。
|
||||
|
||||
## OQ-MATCHMAKER-010 · QA P2-2:`matchmaker.contact.enabled=false` 行为用例待补
|
||||
|
||||
- **状态**:TBD(QA 观察项移交,2026-10-11)
|
||||
- **现状**:fail-safe 语义(配置缺失=机制关闭)已在配置层实现,但 `enabled=false` 下的**行为级**测试用例(申请/审批/consent/disclose 各端点在关闭态的拒绝响应与审计)尚未进入自动化基线。
|
||||
- **待办**:补集成用例(建议挂 `MatchmakerContactAuthorizationTest`,同文件串行追加);在补齐前,关闭态行为由代码评审保证。
|
||||
|
||||
## OQ-MATCHMAKER-004 · 红娘组长组织边界的 NULL=NULL「平台直属」规则
|
||||
|
||||
@@ -133,4 +146,4 @@
|
||||
|
||||
---
|
||||
|
||||
*最后更新: 2026-10-10 — 红娘专项新增 OQ-MATCHMAKER-003(受控联系开放前 5 项确认,①②LEGAL_VERIFY;ContactAuthorizationPolicy DEFERRED + MatchmakerContactGuardTest 机械锁)/004(NULL=NULL 平台直属)/005(零缓存压测复议)/006(写接口 404/403 语义边界,RESOLVED)/007(purpose_code matchmaker.service.view 未使用口径漂移)/008(运营域 active 与用户域 normal 状态口径差)。此前:2026-09-20 登记 OQ-IDENTITY/PROFILE/MATCH-001 及本地资格保留期、服务站时间、咨询资质、Banner 数量、报送口径、第三方开放遗留。*
|
||||
*最后更新: 2026-10-11 — OQ-MATCHMAKER-003 由 DEFERRED 转 IN_PROGRESS(受控联系已立项实现 V056 / 提交 d3735e3,双守卫翻转,5 项 LEGAL_VERIFY 待产品+法务终审后关闭,默认值均 DEFAULT+CONFIG);新增 OQ-MATCHMAKER-009(审批双岗并列待收敛,OPEN)与 OQ-MATCHMAKER-010(QA P2-2:enabled=false 行为用例待补,TBD)。此前:2026-10-10 红娘专项新增 OQ-MATCHMAKER-003~008。*
|
||||
|
||||
Reference in New Issue
Block a user