WuYongJie 8d8419a124 fix(store-accounts): 放宽 passwordConfigured 密文判定正则并同步契约文档
20260908120000 追加的 passwordConfigured 在生产 958 行全部为 false,
与 DBA 基线 957 true / 1 false 不符。

视图的 FROM 子查询本身就取自 public."StoreAccount",EXISTS 又按
credential.id = original.id 自连接同一行,id 必然命中;唯一失配点是密文正则。
该正则只接受 URL-safe base64([A-Za-z0-9_-])且长度固定,标准 base64 的
+ / = 填充会让整体失配,而 Node 的 base64url 解码器对填充宽容,
所以"可解密"与"正则失配"可以同时成立。

本迁移只重写视图定义,不读写任何数据:
- 用 replace 换字符集片段(避开 pg_get_viewdef 的反斜杠转义差异)
- 幂等,未接入该视图或缺少该列则跳过
- 列名/列序/列类型/行数/ACL 均不变,空值、空串与明文仍判定为 false

已在本地 PostgreSQL 17 复现并验证:带填充密文由 false 变 true,
base64url 保持 true,空值/空串/明文垃圾值仍为 false,ACL 与数据无变化。

同步更新 finance-store-account-password-reveal.md 中已过时的
"生产 passwordConfigured 尚未落库" 结论与验收记录。
2026-09-09 11:15:22 +08:00
..
2026-07-20 13:06:44 +08:00
2026-07-03 15:00:15 +08:00
…
…

由壹点「产品开发平台」

最后更新:2026-04-15
当前默认主线:资产中心 -> 辅助装配 -> 草稿组 -> 正式入库 -> 轻仓库

这是当前正在持续开发的主项目。 旧 CAD -> 装配编辑 -> 装配步骤 -> 3D 回放 链继续保留,但它属于兼容链,不再代表当前业务主线。 包装结果当前挂在草稿组、PreSku 和轻仓库承接口里,不作为独立顶层页面阶段。

开始前先读

  1. docs/workflow/团队协作模式.md
  2. docs/workflow/模块边界说明.md
  3. docs/workflow/主线同步操作手册.md
  4. docs/README.md

当前项目目标

  • 用资产族和规格款作为开品基础数据
  • 在辅助装配工作台完成组合、吸附、3D 预览和保存前校验
  • 让用户在草稿组里确认组合、预览,并承接包装相关信息
  • 再进入正式入库和轻仓库
  • 保留旧 CAD 链服务历史数据、兼容导入、装配编辑和回放

快速开始

环境要求

  • Node.js 18+
  • PostgreSQL
  • MinIO / S3 兼容对象存储
  • Redis 可选

本地启动

npm install
npm run dev

常用命令

npm run type-check
npm run build
npm test

当前模块分层

新平台主链

  • /asset-center
  • /assisted-assembly
  • /draft-groups
  • /intake
  • /warehouse

旧兼容链

  • /products
  • /products/[id]
  • /products/[id]/assembly
  • /products/[id]/skus/[skuId]
  • /products/[id]/skus/[skuId]/assembly

架构硬约束

  • 后端固定分层:Route -> Service -> Repository -> Database
  • 前端优先复用现有 UI 元组件和平台骨架
  • 交付必须做规范审查
  • 优先修根因,不接受表面补丁

关键文档

  • docs/项目总览.md
  • docs/README.md
  • docs/部署指南.md
  • docs/运维指南.md

说明

  • 一次性阶段报告、测试报告和旧设计稿已清理,不再占用项目入口。
  • 项目内不再维护前端交接单、会话交接或 agent-memory 这类台账入口。
  • 历史文档里如果还出现 auto-combinations、自动组合、自动拼装,统一按旧称呼理解,不再代表当前主线入口。