51 行
2.8 KiB
Markdown
51 行
2.8 KiB
Markdown
# 租户平台 SDK V2 页面接手说明
|
|
|
|
SDK 平台的完整服务端契约见 Server 仓库 `docs/SDK_PLATFORM_V2_HANDOFF.md`。
|
|
RN 对外文档的内容边界、事实来源和自动检查见
|
|
[`RN_PUBLIC_DOCUMENTATION_POLICY.md`](./RN_PUBLIC_DOCUMENTATION_POLICY.md)。
|
|
|
|
当前 Web 变更:
|
|
|
|
- 应用详情展示 Config 的配置 ID、版本、签发时间和到期时间。
|
|
- 重新生成 Config 时必须明确选择长期有效或指定到期时间;指定时间必须晚于当前时间,并以 ISO 8601 UTC 传给服务端。
|
|
- BugCollect 页面统一展示 `RN_SOURCEMAP` 和 `R8_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`。
|
|
|
|
验证:
|
|
|
|
```bash
|
|
yarn install --frozen-lockfile
|
|
yarn build:tenant
|
|
yarn build:ops
|
|
yarn workspace @xuqm/docs-site check:rn-contract
|
|
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.50`;
|
|
`xuqmgroup-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 入口。
|