Skip to content

Tags: gokele/ovh

Tags

v0.0.8

Toggle v0.0.8's commit message
v0.0.8: VPS 控制中心 + 合同期切换 + DDoS Mitigation

后端
- 新增 32 个 VPS 控制 endpoint (list/电源/重装/快照/任务/二级 DNS/options/终止/续费/合同期/DDoS/统计 等)
- US 区适配:reinstall 走 /rebuild + imageId,template 走 /images/available,变更联系人/重置密码在 US 直接拒
- 服务器控制新增 6 个合同期 endpoint (查/订/撤/到期策略) + 3 个 DDoS Mitigation endpoint
- 反向 DNS 重写走 /ip/{block}/reverse 正确路径,加 DELETE
- ListVps 把 lockStatus 对象拍平成字符串,避免前端渲染崩
- 续费策略 PUT serviceInfos 接口(已有)接 VPS 端点

前端
- 新页面 /vps-control:概览/快照/DDoS/维护 四 tab,顶部状态/系统/到期/续费胶囊条
- 复用现有 RenewalDialog / EngagementDialog / ChangeContactDialog (加 mutation/hooks props 解耦)
- 新增 VpsSnapshotPane / VpsReinstallDialog / VpsMitigationPane / VpsTasksDialog
- 服务器控制顶部续费 + OS pill 可点击触发对应 dialog
- 概览异常时显示告警:VPS 锁定 / 救援模式
- 区域字段中文化(OpenStack 代号 + 老机房代号映射 27 个区域)
- DDoS state 状态机校准 (creationPending/ok/removalPending),过渡态自动 5s 轮询
- IPv6 IP 不显示 Mitigation 按钮(OVH 只支持 IPv4)
- axios 拦截器 /vps-control 路径加入账户注入白名单

bug 修复
- 移除 VPS 监控 (OVH 2024 年废弃 /monitoring + /statistics,无替代端点)
- 模板列表 10 路并发拉取 + 后端缓存 10 分钟(冷加载 15s → 2s)
- TaskType/TaskState 翻译表对齐 OVH 真实 enum(rebootVm/startVm 等带 Vm 后缀)
- 反向 DNS PUT 改 read-modify-write 避免字段被清

v0.0.7

Toggle v0.0.7's commit message
v0.0.7: OVH API 返回类型对齐 + 多账户 VPS 区域修复

后端
- changeContact 返回 long[] (任务 ID 数组) 而非对象,之前用 map 解析直接 500
- terminate / confirmTermination 返回 string (确认 token),改用 string 接收
- spla POST 返回 long (新建 ID),不再当对象解析
- ola/ungroup 返回 Task[] 数组 (与 group/aggregation 单 Task 不同)
- vps.go 新增 vpsAPIBaseURL(subsidiary),替代多账户用户为空的旧 state.Config.APIBaseURL()

前端
- ChangeContactDialog: 收到 "contact change task is already running" 时自动切到「待审请求」tab,toast 提示用户先处理已有请求
- 错误读取兼容 message / error 双字段,显示 OVH 真实错误而非泛 500

v0.0.6

Toggle v0.0.6's commit message
重装对话框: OS 模板加载动画

把单块 Skeleton 换成跟正式列表完全同尺寸的左右两栏骨架 + 中央
转圈 spinner + "正在加载操作系统模板…" 文案,避免首次拉 OVH
3-8 秒期间用户看空白不知道在等什么。加载完成切换时面板尺寸不抖。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

v0.0.5

Toggle v0.0.5's commit message
前端 v0.0.4: 队列对话框 chip 选择器 + 价格修复 + Combobox 滚动

- 新增 components/common/OptionGroupSection.tsx 共享 chip 选择器
  (servers.tsx 和 queue.tsx 共用)
- queue 新建抢购任务:planCode 在 catalog → 显示 chip 选择器,
  不在 → 显示手填文本框。二选一不混用,完全用户驱动不预选默认。
  切换 planCode 自动清空已选;切换 DC 后 chip 红/绿点收紧到选中 DC
- servers.tsx 卡片价格用 catalog defaultOptions 走 computePriceFromOptions,
  跟详情对话框初始价格一致(消除"卡片 236 / 弹窗 183"对不上)
- 修复 monthlyPrice 把"安装费"条目当月费返回的 bug:
  OVH 同 plan pricings 数组里安装费跟月费都满足 interval=1+month+default,
  只是 capacities 不同。漏掉过滤 capacities=installation 导致月费被错叠
- hasStockWithOption 加 dcCodes 参数,选中 DC 后 chip 收紧只看这些 DC
- PlanCodeCombobox 加 onWheel/onTouchMove stopPropagation + overscroll-contain,
  修复嵌在 Dialog 里时下拉列表滚不动的问题
- VERSION → 0.0.4

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

v0.0.4

Toggle v0.0.4's commit message
抢购对话框: 选配可用性可视化(option 绿红点 + DC 联动) v0.0.3

- 每个 RAM / 存储 / 系统盘 option chip 左边加 1.5px 圆点:
  绿 = 该 addon 出现在某个有 DC 有货的 FQN;红 = 没货
- 选中 DC 后 chip 收紧到"只看这些 DC 内"重判,
  避免"chip 绿但目标 DC 不卖"
- 带宽 / vRack / CPU / other 永远绿(OVH FQN 不含这些段,跟主机库存解耦)
- DC 红绿沿用聚合("该 DC 任意配置有货"),跟外面卡片一致
- chip 去掉长技术 ID 显示(如 softraid-4x3840nvme-pcie-gen4-24adv01-v2),
  只留友好名 SOFTRAID 4× 3840GB NVME

实现:
- use-availability: buildVariantIndex / variantCoversAll / hasStockWithOption /
  fqnMatchesOption / variantDcStatus + 双向前缀匹配
  (OVH availability FQN 段是短前缀,catalog option.value 带 plan 后缀,
   strict equality 永远不命中 → 全红 bug)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

v0.0.3

Toggle v0.0.3's commit message
docs: README 同步多账户 / 自动检测更新 / 表结构调整

- 项目定位改为"灵感来自 coolci/OVH-BUY",澄清非二开
- 主要功能加"多账户"小节、删"配置绑定狙击"、加"自动检测更新"
- OvhCredsGate 描述改为"至少一个账户",首次访问流程同步
- 持久化表 7 → 8: 加 ovh_accounts,删 config_sniper_tasks,
  queue / history / monitor 等加 account_id 关联说明
- 鉴权白名单同步 /version 系列

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

v0.0.2

Toggle v0.0.2's commit message
版本号系统 + 仪表盘显示真实版本

- 新增 VERSION 文件 (0.0.1) 作单一来源
- 后端: handlers.Version 包级变量, GET /api/version 端点 (加白名单, 登录前可读)
  build.ps1 会用 -ldflags "-X .../handlers.Version=$ver" 注入
- 前端: useAppVersion hook, 仪表盘"系统状态"卡版本号从写死 v3.0.0 改成 v{useAppVersion().data}

v0.0.1

Toggle v0.0.1's commit message
清掉抢购趋势死代码: usePurchaseTrend / usePerfTrend / PerfPoint / SparkPoint /…

… PurchaseTrend

仪表盘已经不显示抢购趋势了,这套纯前端聚合的 hook 没人调用。
后端从来没有抢购趋势端点,所以无需后端清理。