V1.0.1 纠偏 DoD 补齐:canonical key 字面化(V051+KEY_ALIASES)+ 照片并发突破实测(锁用户行+锁后计数)+ AGENTS 规则27 + known-risks
按文档 DoD/约束逐条复查后补齐的差距(承接 438b38d 主体纠偏):
- CFG-001 字面化:FeatureFlagConfig.KEY_ALIASES(identity.liveness.enabled / 遗留
livenessVerification.enabled → 实现字段 livenessEnabled,读兼容)+ Controller PUT/DELETE
落库归一到 canonical 键 + V051 迁移(删遗留键、写入 identity.liveness.enabled=false);
MigrationValidationTest 基线 50→51。
- PHOTO-004 真实并发突破:新增 PhotoLimitConcurrencyGuardTest(3 线程 H2 并发冲顶)——
实测咬住「锁照片行+读时计数」在 H2 MVCC 快照漏读、3/3 全成功突破上限的缺陷;
并发控制改为锁用户行(UserMapper.lockUserRow FOR UPDATE)+ 锁后新语句 COUNT,
0 张照片亦有锁可加(补首张并发缺口);UserPhotoMapper 计数方法同步替换。
- FF-LIVENESS-003 + canonical 持久化:FeatureFlagPersistenceGuardTest +4
(canonical 加载 / 遗留别名读兼容 / PUT 落 canonical 键 / 切换即生效无旧缓存)、
FeatureFlagControllerTest +3(canonical/legacy/reset)。
- 文档同步:AGENTS.md 规则 27(配置治理纪律);docs/governance/known-risks.md
(7 项含本机 WSL/Docker 故障 KR-07);config-register / open-questions 更新 canonical 口径;
STATUS rc.21 行补 ⑥⑦⑧。
全量回归 741/0/0/3(基线 717 + 25 新增 − 1 删死测试,宿主机 JDK21+Maven 3.9.9 实测,
本机 WSL/Docker 引擎故障期间);UI 契约门禁 18/18
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
-- V051: 活体核验配置键归一(CFG-001,V1.0.1 配置与规则纠偏)
|
||||
--
|
||||
-- 背景:活体开关此前存在「同一业务含义多套 key」的漂移 ——
|
||||
-- * seed(demo-seed-final.sql)写过 livenessVerification.enabled(system_configs,死表);
|
||||
-- * FeatureFlagConfig 实现键为 livenessEnabled(feature_flag_overrides 可用键);
|
||||
-- * 治理文档 canonical 名为 identity.liveness.enabled。
|
||||
-- 本迁移把 feature_flag_overrides 收敛为「只写 canonical 键」:
|
||||
-- 1) 删除遗留键(livenessVerification.enabled / livenessEnabled)的覆盖行;
|
||||
-- 2) 写入 canonical 键 identity.liveness.enabled = false(默认关闭,fail-safe,
|
||||
-- 与 Java 字段默认值一致;运行期开启仍走 PUT /operator/feature-flags/{flagName},
|
||||
-- 其落库键已由 FeatureFlagController 归一为 canonical 名)。
|
||||
--
|
||||
-- 说明:identity.liveness.enabled 与实现字段 livenessEnabled 的映射由
|
||||
-- FeatureFlagConfig.KEY_ALIASES 承担(读兼容),文档见 docs/governance/config-register.md。
|
||||
-- 语法刻意避免 PG 专有 ON CONFLICT(H2 兼容约定,同 V048 取舍)。
|
||||
|
||||
DELETE FROM feature_flag_overrides
|
||||
WHERE flag_key IN ('livenessVerification.enabled', 'livenessEnabled');
|
||||
|
||||
INSERT INTO feature_flag_overrides (flag_key, flag_value, value_type, updated_by, updated_at)
|
||||
SELECT 'identity.liveness.enabled', 'false', 'boolean', NULL, NOW()
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM feature_flag_overrides WHERE flag_key = 'identity.liveness.enabled'
|
||||
);
|
||||
Reference in New Issue
Block a user