Files
MemRelay/projects/d44c219a-0b31-4de1-b160-323eb34a4c6a/关键技术选型与取舍.md
T

2.5 KiB
Raw Blame History

title, type, permalink, stable_id, scope, project_id, memory_type, status, revision, restored_from_commit, created_at, updated_at, tags
title type permalink stable_id scope project_id memory_type status revision restored_from_commit created_at updated_at tags
关键技术选型与取舍 decision main/projects/d44c219a-0b31-4de1-b160-323eb34a4c6a/关键技术选型与取舍 ae318134-8651-4563-bc22-491c51f87af4 project d44c219a-0b31-4de1-b160-323eb34a4c6a decision active 1 6a6a895eaf 2026-09-23T15:07:19.579757+00:00 2026-09-23T15:07:19.579829+00:00
architecture
decision
security
config
  • UserKey 明文存库、AppKey 加密存库:UserKey 是全系统唯一无外部恢复途径的凭据(天河链不留存),明文使备份跨重装可恢复、不依赖 SETTING_ENCRYPTION_KEY;单有 UserKey 无 AppKey(仍加密、可向天河重取)用不了钱包。UI 掩码,揭示/复制/轮换二次确认且记操作日志。
  • 单一根 .env + 安装向导(取代早期 config/ JSON 方案):消除 JSON+.env+config 三套并存;Prisma CLI 自动读 cwd .env、compose 自动读同级 .env,根 .env 最兼容。Docker 因 compose 约束必须有 .env。
  • 安装向导并入 admin(删除独立 apps/install):减少一个工程;admin 路由守卫探测 /api/install/status 未安装强制进 /install。
  • 核心部署 = 单 Node 服务 + 安装向导,Docker/SSH 为可选自动化;本地 dev 不引入 PM2(前台阻塞 + Windows Job Object 整树清理)。
  • 追溯码链接动态生成不固化 DB:换域名全部自动跟随;/t/:code 302 保留兼容历史二维码。
  • 预览用类 TOTP 无状态令牌:不落库、外泄最长 2 窗口失效;预览 URL 仅点击瞬间拼接,不进行数据/导出。
  • 防伪状态模块可排序隐藏但副作用后端固定:页面配置不能关闭激活/计数/日志。
  • 历史 revision 快照持旧存储 key:媒体归位后历史审核详情旧图可能 404,开发期无线上数据已确认不处理。
  • 选型:PhotoSwipe v5(MIT,用户确认)替代自写查看器;NestJS 11 + Express 5 + Node 24(Node 20 已 EOL);Vite 6;echarts 6;archiver/unzipper 流式备份;@aws-sdk/lib-storage multipart。根 pnpm.overrides:multer 2.2.0、exceljs>uuid 11、qs 6.15.3;不要跨主版本覆盖 file-type/path-to-regexp。
  • 明确不做:NFC、多机构隔离、主动预警、C 端骨架屏、查询日志地区解析(已移除)、父子树状时间轴节点。证书:C 端水印图、后台原件。查询日志 IP/UA 不脱敏仅后台可见。