XuqmGroup-Web/docs/SDK_PLATFORM_V2_HANDOFF.md
2026-07-27 13:28:33 +08:00

2.6 KiB

租户平台 SDK V2 页面接手说明

SDK 平台的完整服务端契约见 Server 仓库 docs/SDK_PLATFORM_V2_HANDOFF.md

当前 Web 变更:

  • 应用详情展示 Config 的配置 ID、版本、签发时间和到期时间。
  • 重新生成 Config 时必须明确选择长期有效或指定到期时间;指定时间必须晚于当前时间,并以 ISO 8601 UTC 传给服务端。
  • BugCollect 页面统一展示 RN_SOURCEMAPR8_MAPPING,手动上传示例使用 /bugcollect/v1/artifacts/upload
  • 产物上传示例只使用 Authorization: Bearer XUQM_API_TOKEN,不得把 Token 放入 URL。
  • 已删除废弃的离线 license 服务页面、路由、API、菜单和日志入口。
  • 依赖管理统一为根 package.json 声明的 Yarn 1 与 yarn.lock
  • 租户端与运维端统一使用根 Jenkinsfile;流水线根据 Jenkins job 名确定构建目标, 不再维护两份内容重复的专用 Jenkinsfile。
  • Web 生产缓存使用版本目录协议:入口 HTML/manifest 禁止持久缓存,哈希资源使用 releases/<SERVICE_VERSION>/assets/ 和一年 immutable
  • Jenkins 构建会把上一 latest 镜像作为 PREVIOUS_IMAGE;新镜像只保留上一版本的 当前资源目录和本次资源目录。首次从旧布局迁移时保留一次旧 /assets,下一版本自动 淘汰,避免资源无限累积。
  • 哈希资源 location 使用 try_files $uri =404,不得回退到 SPA index.html

验证:

yarn install --frozen-lockfile
yarn build:tenant
yarn build:ops
yarn workspace @xuqm/docs-site build
yarn test:web-cache
nginx -t -p "$PWD/" -c scripts/nginx-test.conf

2026-07-27 缓存契约测试会使用固定 release ID 重新构建 tenant、ops 与 docs,并校验 HTML 引用、版本目录、Nginx 缓存头及 Docker 上一版本保留门禁。

2026-07-27 Jenkins 与生产验证

  • Windows Jenkins 节点统一使用 jenkins-ssh-key 私钥凭据和构建期临时 git-ssh.cmd 完成版本提交推送,流水线结束时删除临时脚本。
  • xuqmgroup-tenant-web #39 成功构建并部署 tenant-web:1.0.50xuqmgroup-ops-web #20 成功构建并部署 ops-web:1.0.4。两个作业均通过同一份根 Jenkinsfile 自动识别目标,并成功回写各自版本文件。
  • https://dev.xuqinmin.com/https://ops.xuqinmin.com/ 的入口 HTML 均返回 Cache-Control: no-cache, no-store, must-revalidate
  • 两个平台本次发布的 releases/<version>/assets/*.js 均返回 Cache-Control: public, max-age=31536000, immutable;不存在的版本资源均真实返回 HTTP 404,没有回退到 SPA 入口。