chengchengzhou7 403776cc1c
Client Quality Gates / Shared client and Web (push) Has been cancelled
Client Quality Gates / macOS Desktop (push) Has been cancelled
Storage Persistence Guard / storage-persistence-audit (push) Has been cancelled
Client Quality Gates / Shared client and Web (pull_request) Has been cancelled
Client Quality Gates / macOS Desktop (pull_request) Has been cancelled
Storage Persistence Guard / storage-persistence-audit (pull_request) Has been cancelled
release(main): 同步 v0.1.0 updater 信任根 (#9)
* docs: add desktop project plan

* feat(desktop): implement phase 1 tauri client

* refactor(client): unify web and desktop release workflow

* feat(desktop): implement phase 2 native capabilities

* 完善桌面端交互体验与发布检查

* 完善桌面端界面、发布检查与邮箱域名同步

* fix(deploy): 修复数据库初始化复用旧镜像

* fix(deploy): 增加部署更新实时进度

* fix(auth): 支持无邮箱后缀时手动输入

* feat(desktop): 稳定桌面端界面与文件操作反馈

- 重构 DesktopPreferences 为分栏式设置面板,整合连接、外观、通知、更新与诊断信息分区,并补充过渡动效与暗色主题样式
- DesktopLayout 侧边栏导航分组支持展开折叠,调整管理/项目区块顺序并统一图标与标题
- 新增 fileTaskFeedback 工具,统一 pickFiles/saveFile/openFile 的成功/取消提示,替换审计导出、权限日志、附件、文档、线程、项目配置等处的直接调用
- desktopUpdateManager 暴露更新状态快照与状态变更监听,区分检查中、安装中、已推迟、失败等状态
- DesktopServerSettings 增加连接诊断信息(检查时间、健康地址、耗时、HTTP 状态)
- unified-page.css 与 ProjectMilestones 引入 CSS 变量以适配暗色主题
- WebLayout 将服务器设置入口改为打开系统偏好面板,管理菜单中邮件服务归入系统设置分组
- ProfileSettings 移除已迁入偏好面板的桌面端专属区块
- 补充 Layout.desktop 布局与偏好面板契约测试

* feat(desktop): 支持桌面端三十天免登录

* 完善桌面端发布稳定化门禁

* 完善桌面端端到端回归收口

* 补齐桌面端附件文件流回归

* 完善桌面端回归与安全边界复审

* 完善桌面体验与系统通知收口

* feat(desktop): 收口桌面工作台视觉与活动反馈

* 优化桌面端界面布局

* style: 优化个人中心和偏好设置弹窗样式,重构工作入口为精致分屏布局并移除首字徽标

* 功能(桌面端):增加在线辅助本地缓存

* 优化桌面端标签导航与后台交互

* ci: 新增 Windows 桌面端内测构建

* fix: 修复桌面检查脚本的 Windows 路径判断

* test: 兼容 Windows 换行的桌面布局断言

* test: 兼容 Windows 换行的路由断言

* ci: 修复 Windows 内测构建配置传参

* ci: 避免 Windows 安装器构建交互等待

* 修复桌面端界面显示与稳定性问题

* feat(网页端): 完善登录后工作台与项目管理体验

* docs(desktop): 精简桌面端约束入口

* feat(admin): 完善审计访问上下文与后台布局

* fix(git): 跟踪原生图标资源

* fix(web): 修正工作台端侧标识

* feat(监控): 完善系统监控、登录状态与访问审计能力

* 修复(权限管理):统一 PM 系统导航与权限校验

* feat(工作台): 优化入口布局与连接安全状态

* feat(桌面与监控): 完善工作台导航和登录活动定位

- 优化桌面标签、上下文标题、前进后退、导航栏隐藏和原生菜单体验

- 补充登录会话 IP 采集、地理位置回退、管理端展示及数据库迁移

- 更新桌面发布检查、运维文档和前后端测试覆盖

* 功能(文档与桌面):完善文件预览下载与客户端构建基线

- 保存文档版本原始文件名,规范下载响应并持久化上传目录\n- 增加 PDF.js 预览、桌面保存打开流程及统一错误反馈\n- 统一 Node.js 22.13 构建基线并收紧临时文件权限门禁\n- 补充迁移、单元测试、发布检查与运维文档

* 功能(文档预览):集成 ONLYOFFICE 安全只读预览与工作台体验

新增 ONLYOFFICE 配置签名、内部内容接口、容器编排与反向代理。

打通网页端和桌面端独立预览工作区,完善文档入口、布局及帮助体验。

补充桌面安全发布门禁、开发脚本、使用文档和前后端测试。

* feat(collaboration): 完善在线文档协作与通知闭环

- 新增协作文件夹、文件、不可变修订、成员、会话、回调回执、编辑申请与分享链接数据模型。

- 补齐新建、导入、复制、下载、回收站、恢复、成员授权、所有权转让及文件级权限接口。

- 接入 ONLYOFFICE 共同编辑、历史版本预览与恢复、修订另存副本、导出下载审计和幂等回调保存。

- 增加编辑权限申请、审批通知、项目提醒聚合、通知 Feed、已读处理及历史待办数据回填。

- 支持公开分享的查看或编辑模式、有效期、密码哈希、失败锁定、短时访问凭证与固定分享地址。

- 增加协作者导出、申请编辑、工作表结构保护和所有权管理策略,并纳入项目接口权限矩阵。

- 新增协作文件库、编辑工作区、公开分享页、下载与另存为对话框,以及导航、路由和权限入口。

- 统一网页端与桌面端通知布局,增加沉浸式工作区和浏览器、Tauri 双端全屏能力。

- 扩展运行时文件下载适配、Tauri 环境识别和原生全屏命令,继续保持业务代码运行时边界。

- 加固 ONLYOFFICE 消息桥的同源下载、签名地址隔离和保存为能力校验,并更新桌面发布检查。

- 增加连续数据库迁移、50MB 上传限制、OnlyOffice 中文文案与开发启动路由校验。

- 补充协作、通知、权限、路由、运行时、布局和 OnlyOffice 相关测试及模块说明文档。

* refactor(frontend): 按需加载页面并清理未使用代码

- 将业务页面路由统一改为动态导入,拆分首屏入口与各功能模块构建产物。

- 将网页端和桌面端布局改为异步组件,避免两套平台布局同时进入初始包。

- 新增 Element Plus 按需安装入口,并通过全局配置组件统一注入中文语言包。

- 提取 API 运行时钩子,在应用启动时注入项目清理、令牌续期和认证失效退出能力。

- 将权限监控面板及地图资源改为延迟加载,补充地图加载状态、失败提示和切换竞态保护。

- 删除已被现有工作流替代的项目成员、接口权限、中心绑定、培训表单及旧项目首页等页面。

- 清理废弃的快捷操作、项目选择、用户选择、FAQ 表单、风险占位组件和旧地图辅助模块。

- 移除未使用的 API 方法、类型、字典、状态机、展示工具、样式和项目详情编辑逻辑。

- 开启 TypeScript 未使用变量与参数检查,并同步收紧相关测试和组件暴露类型。

- 移除未使用的 updater、date-fns 和 Sass 前端依赖,更新锁文件并删除旧 CSS 清洗插件。

- 更新路由、Axios、ETMF、通知、权限监控和桌面布局测试以覆盖重构后的边界。

* fix(审计): 移除共享库审计与预览噪声

* 功能(提醒):统一项目提醒中心与桌面通知链路

增加通用提醒状态、数据库迁移和定时同步,覆盖风险时效、文件回执、项目里程碑、访视窗口与协作申请。

新增网页端和桌面端提醒中心、真实投递诊断与固定隐私通知正文,并补齐登录来源聚合、测试和说明文档。

* feat(deploy): 默认安装 ONLYOFFICE 标准组件

* build(release): 加固 v0.1.0 桌面发布链路 (#3)

* build(release): 轮换 v0.1.0 updater 公钥 (#7)
2026-07-17 10:58:22 +08:00

CTMS 项目快速上手

交互安装入口

  • 推荐执行 ./install.sh,通过键盘 ↑/↓ 选择安装、更新、卸载、资源状态等操作;该入口不接受命令行参数。
  • 菜单顶部会常驻显示当前 CTMS 容器部署状态,包括已检测到的环境、Compose 项目和容器运行数量。
  • 底层脚本位于 scripts/install.shupdate.shuninstall.shstatus.sh;状态脚本使用 docker compose stats --no-stream 采集资源快照并美化展示。

生产部署

  • 生产入口:docker-compose.yaml
  • 初始化方式:docker compose run --rm --build backend-init
  • 启动方式:docker compose up -d --build
  • 运行拓扑:nginxbackenddbonlyoffice
  • 对外入口:nginx 提供前端静态资源,并同域反代后端 API
  • 数据库 schema 来源:Alembic migration,不再依赖 database/init.sql
  • 默认无任何业务预置数据;生产初始化只确保固定管理员 admin@huapont.cn / admin123 存在
  • 生产环境必须配置 LOGIN_RSA_PRIVATE_KEY;登录密码传输使用 RSA-OAEP 包裹 AES-GCM 密钥,数据库仍只保存 bcrypt 哈希
  • 浏览器端加密依赖 WebCrypto 安全上下文;生产访问必须使用 HTTPS,本地 localhost 例外
  • 当前 challenge 缓存在后端进程内,默认最多保留 1000 个;多实例或多 worker 部署需改为共享缓存或启用粘性会话
  • 验证方式:
    • docker compose config
    • curl -i http://127.0.0.1:8888/
    • curl -i http://127.0.0.1:8888/health
    • curl -i http://127.0.0.1:8888/readyz

账号与注册

  • 初始化管理员:admin@huapont.cn / admin123(通过生产初始化命令显式创建)
  • 自助注册:前端 /register 提交邮箱、密码、姓名、角色(CRA/PV/IMP/PM)、部门,状态为 PENDING。
  • 管理员审核:/admin/user-approval 列表查看待审核,支持通过/拒绝;仅 ACTIVE 用户可登录。
  • 更多账号:管理员也可在 /admin/users 直接创建 ACTIVE 账号,再在项目成员中赋予角色。

角色权限概要(前端操作级提示,后端仍最终裁决)

  • ADMIN:全权限
  • PM:里程碑/任务维护、参与者状态、AE 创建/关闭、Issue 创建/关闭、Finance 创建/审批/支付、IMP 交易、FAQ 维护
  • CRA:任务/参与者/AE/Data Query 创建,参与者状态更新,Finance 创建/提交,其他只读
  • PVAE 创建/关闭,Issue 创建/关闭,其余只读
  • IMP:IMP 交易/产品/批次维护,其余只读
  • 普通成员(无项目角色):仅浏览

访问方式

  • 前端:http://localhost:8888
  • 后端 API:同域 /api/v1/*
  • nginx 负责托管前端静态资源,并将 /api/health/readyz 转发到 backend

macOS 桌面端开发

  • 桌面端约束集中在 AGENTS.md:Tauri 在线客户端,不内嵌后端、不保存本地业务权威数据、不做离线同步;在线辅助缓存必须遵守 docs/desktop-local-cache-plan.md
  • 开发启动:进入 frontend/ 后执行 npm run desktop:dev
  • 生产构建:进入 frontend/ 后执行 npm run desktop:buildDMG 构建执行 npm run desktop:bundle:dmg
  • 首次启动桌面端会要求配置 CTMS 服务端地址,并在保存前检查 ${serverUrl}/health
  • 生产或非本地服务地址必须使用 HTTPS;本地开发允许 http://localhosthttp://127.0.0.1
  • Web 与桌面端共用产品版本;执行 npm run version:set -- <version> 统一升级,执行 npm run version:check 检查漂移。
  • 桌面端与 Web 端从同一发布标签和 Git 提交构建,具体流程见 docs/guides/client-release.md

ONLYOFFICE 标准组件

  • ./install.shbash scripts/install.sh dev|main|release 默认生成独立 JWT、持久化实例标识并启动 Document Server,不再需要额外启用 Compose profile。
  • bash scripts/onlyoffice-dev-up.sh 仅保留为开发环境重建、健康验证和密钥轮换入口;普通安装无需再执行。
  • 默认镜像、字体、安全配置和生产许可要求见 docs/guides/onlyoffice-preview.md

仓库治理文档

  • 分支治理规范:docs/branch-governance.md
  • 分支维护中文 SOPdocs/guides/branch-maintenance-sop-zh.md
  • 分支环境安装配置:docs/guides/branch-environment-installation.md
  • 发布检查清单:docs/guides/release-checklist.md
  • 系统监测简易运维:docs/guides/system-monitoring-operations.md

本地配置

  • 本地编辑器配置(如 .vscode/)不纳入版本库。
  • 前端环境变量请使用 frontend/.env,可从 frontend/.env.example 复制。
  • 根目录 .env 不作为当前默认启动流程的提交配置文件。
  • Postman 本地环境请基于 docs/postman/local.postman_environment.example.json 自行复制,不提交个人环境文件。
  • 文档入口见 docs/README.md;当前约束集中在分支治理、发布清单和治理审计文档,操作手册集中在 docs/guides/,历史交付记录集中在 docs/reports/docs/plans/

常用流程

  1. 用管理员账号登录前端(默认 admin@huapont.cn / admin123)。
  2. 进入左侧导航「账号治理」「项目治理」进行用户、项目、中心等全局管理;或在“项目列表”选择项目后进入项目内工作区。
  3. Dashboard 查看进度、待办;左侧导航进入“里程碑”“任务”等页面。
  4. 退出登录或切换项目可通过顶部右侧下拉。

管理员全局治理(前端入口)

  • 账号治理:/admin/users(新建/编辑/启用禁用用户,重置密码需二次确认)
  • 项目治理:/admin/projects(创建/编辑项目,成员配置 PM/CRA,中心管理)
  • 中心管理:/admin/projects/:projectId/sites(中心创建/编辑、CRA 绑定、启用停用)

ADMIN 具备所有 PM 权限,项目内操作与 PM 同步放行。

注意

  • 登录使用邮箱 + 密码,前端会先获取登录公钥并加密提交;未审核/已拒绝/已停用账号无法登录。
  • 令牌与当前项目上下文保存在浏览器 LocalStorage 中,清除后需重新登录/选择项目。
  • 若后端重启,确认数据库容器仍健康,前端会弹出错误提示。
S
Description
No description provided
Readme 71 MiB
Languages
Vue 44.3%
Python 34.6%
TypeScript 15.6%
Shell 1.9%
JavaScript 1.8%
Other 1.7%