chore: 导入旧记忆备份供恢复

This commit is contained in:
2026-09-23 22:38:40 +08:00
parent 5313fcee7a
commit 6a6a895eaf
638 changed files with 29816 additions and 1 deletions
@@ -0,0 +1,31 @@
---
title: 关键技术选型与取舍
type: decision
permalink: main/projects/d44c219a-0b31-4de1-b160-323eb34a4c6a/关键技术选型与取舍
stable_id: ae318134-8651-4563-bc22-491c51f87af4
scope: project
memory_type: decision
project_id: d44c219a-0b31-4de1-b160-323eb34a4c6a
usage_profile_id: 7aee455b-24cc-4008-bdaf-443721e6f939
status: active
revision: 1
request_id: artveris-migrate-2026-09-03-decision-02
created_at: '2026-09-03T03:43:49.600038+00:00'
updated_at: '2026-09-03T03:43:49.600038+00:00'
tags:
- 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 不脱敏仅后台可见。