Files
Nexus/docs/release/20260708/Nexus-正式环境遗漏补发记录-20260707.md
T
r 9b583ccc91
Nexus CI/CD / test (push) Waiting to run
Nexus CI/CD / e2e (push) Blocked by required conditions
Nexus CI/CD / deploy (push) Blocked by required conditions
Nexus Pre-commit Checks / quick-check (push) Waiting to run
docs(release): 主与 release 分支合并功能清单 + 导入 release 文档目录
便于 Gitea 上 main ↔ release/20260708-axs 合并评审与冲突对照。
2026-07-09 01:14:32 +08:00

3.6 KiB
Raw Blame History

Nexus 正式环境遗漏补发记录(2026-07-07)

背景

用户反馈:正式页面里“全局 API Key / API Key”仍可见。排查后确认:此前正式环境只热更新了宝塔 diagnostics 相关后端文件,524acd5 fix-stop-exposing-global-api-key-in-settingsfa44439 fix btpanel ssh temp login python env 未完整补发到正式容器。

本次补发范围

来源:局域网测试机 /opt/nexus-dev-current

补发到正式容器 nexus-prod-nexus-1 的文件:

  • server/api/settings.py
    • GET /api/settings/ 对敏感设置不再返回明文值。
    • api_key / secret_key / encryption_key / Telegram Bot Token 返回 value="" + value_set=true/false
  • server/infrastructure/btpanel/ssh_login.py
    • 补发 SSH 临时登录 Python 环境兼容修复。
  • web/app/index.html
  • web/app/assets/
    • 补发 SettingsPage 前端构建产物,使当前设置页不再展示旧的全局 API Key 明文字段。

补丁包

测试机生成:

  • /tmp/nexus-settings-frontend-patch-20260707.tar.gz
  • SHA256a56153c16ca74a80597ffd134bed3aa2bcdcef1c77b7e67a0998bdd1b85a13d6

本地留存:

  • C:\Users\uzuma\Documents\Codex\2026-07-06\yuu\work\nexus-settings-frontend-patch-20260707.tar.gz

正式机上传:

  • /tmp/nexus-settings-frontend-patch-20260707.tar.gz

正式环境热更新结果

正式主机:20.24.218.235

容器:nexus-prod-nexus-1

执行动作:

  1. 校验补丁包 SHA256。
  2. 解压到 staging 目录。
  3. 备份容器旧文件。
  4. docker cp 覆盖后端与前端构建产物。
  5. python -m py_compile 检查两个 Python 文件语法。
  6. 重启容器。
  7. 访问 /health 健康检查。

结果:

  • 备份目录:/tmp/nexus-settings-patch-backup-20260707-170246
  • staging 目录:/tmp/nexus-settings-patch-20260707-170246
  • 健康检查:ok

验证结果

1. API 不再返回全局 API Key 明文

通过正式域名 https://api.synaglobal.vip 登录后调用:

  • GET /api/settings/

验证结果:

  • 登录:HTTP/1.1 200 OK
  • SettingsHTTP/1.1 200 OK
  • settings_count33
  • sensitive_keys_presentapi_key, secret_key, telegram_bot_token, telegram_offline_bot_token
  • sensitive_values_plaintextNO
  • api_key_value_setTrue

说明:正式 API 仍会告诉前端“已配置过 API Key”,但不会返回真实值。

2. 当前前端入口已更新

正式容器当前入口:

  • /app/web/app/index.html
  • 引用入口 JS/app/assets/index-CASoZdpL.js
  • 当前 SettingsPage 构建文件:SettingsPage-DFgw8KT9.js

检查当前 SettingsPage 构建文件未发现 API 文案输出;目录内旧的 SettingsPage-*.js 残留不代表正在被当前入口使用。

用户侧注意事项

如果浏览器还看到旧的“全局 API Key / API Key”区块,优先按以下顺序处理:

  1. 强制刷新页面(WindowsCtrl + F5)。
  2. 退出 Nexus 后重新登录。
  3. 清除 api.synaglobal.vip 站点缓存。
  4. 确认访问的是正式域名 https://api.synaglobal.vip,不是本地 http://localhost:18600/app/ 旧代理页面。

回滚方式

如需回滚本次热更新,可从正式机备份目录恢复:

  • /tmp/nexus-settings-patch-backup-20260707-170246/settings.py
  • /tmp/nexus-settings-patch-backup-20260707-170246/ssh_login.py
  • /tmp/nexus-settings-patch-backup-20260707-170246/web-app

恢复后重启容器并检查 /health

结论

本次已经把之前遗漏的正式环境文件补发完成。当前正式 API 不再泄露全局 API Key 明文;前端当前入口也已切到新的 SettingsPage 构建产物。