Files
Nexus/docs/design/specs/2026-06-02-server-form-redesign.md
T
2026-07-08 22:31:31 +08:00

2.6 KiB
Raw Blame History

服务器添加/编辑表单重设计

日期: 2026-06-02
状态: 已批准,实施中

背景

Vuetify 迁移后的 ServersPage 对话框与产品文档/后端 ServerCreate 严重偏离:

文档要求 当前 SPA 后端
认证方式(密码 / SSH 密钥) 缺失,仅密码框 auth_method
密码预设下拉,选后隐藏密码框 preset_id
SSH 密钥预设 + 路径 + 私钥粘贴 ssh_key_preset_id
目标路径必填,默认 /www/wwwroot target_path
Agent 端口隐藏 8601 agent_port
分类 combobox(可选已有/自定义) 纯文本 category
平台 / 节点(可选) 仅平台 platform_id / node_id

目标

单对话框分区块,与 web/app/servers.html2026-05-25/26 定稿)及 ServerCreate 对齐。

UI 结构

┌─ 添加服务器 ─────────────────────────────┐
│ 【基本信息】                              │
│  名称 *    域名/IP *    SSH 端口          │
│  SSH 用户名 *(默认 root)                │
│ 【认证方式】  ( ) 密码  ( ) SSH 密钥       │
│  [密码]  密码预设 ▼  (选预设则隐藏密码)  │
│  [密钥]  密钥预设 ▼  密钥路径  私钥 PEM    │
│ 【部署】                                  │
│  目标路径 *  默认 /www/wwwroot            │
│  分类 ▼(combobox,可自定义)             │
│ 【高级 ▼】                                │
│  平台  节点  文件管理提权                  │
│                    [取消] [保存]          │
└──────────────────────────────────────────┘

数据流

  • 打开对话框:GET /presets/GET /ssh-key-presets/GET /servers/categoriesGET /assets/platformsGET /assets/nodes
  • 保存:POST/PUT /api/servers/ 发送完整 ServerCreate/ServerUpdate 字段;preset_id / ssh_key_preset_id 仅传 ID,密码/私钥由后端解密预设
  • 新建校验:目标路径非空;密码模式需 preset_id 或手动密码;密钥模式需 ssh_key_preset_id 或私钥内容

验收标准

  1. 添加服务器可见认证切换、预设下拉、目标路径默认值
  2. 选密码预设后密码输入框隐藏
  3. 保存后 API 请求含 auth_methodtarget_pathpreset_id 等正确字段
  4. 编辑时回填 auth_methodpreset_idtarget_path、分类