refactor(admin): удалить мёртвый updater/config-write API и его UI

Маршруты, операциями которых продукт не владеет, отвечали заглушкой
"managed by orchestrator" или пустым списком:

  POST /hysteria2ChangeVersion
  GET  /listRelease
  POST /config/updateHysteria2Config
  POST /config/importHysteria2Config
  POST /config/restartServer
  POST /config/uploadCertFile
  GET  /config/hysteria2AcmePath   (не имел потребителя вовсе)

Они удалены, а не оставлены заглушками. Причины две. API-контракт не
должен обещать updater, которого у продукта принципиально нет:
маршрут, всегда возвращающий отказ, вводит в заблуждение. И это лишняя
attack surface плюс технический мусор от прежней архитектуры.

Вместе с маршрутами убраны мёртвые сервисы (StartHysteria2,
StopHysteria2, RestartHysteria2, SetHysteria2Config,
UpdateHysteria2Config, GetAuthHttpUrl, Hysteria2AcmePath), неиспользуемые
типы и клиентские функции фронтенда.

Отдельно - кнопки. "Перезапустить панель" и загрузка сертификатов
обращались к заглушкам, то есть гарантированно возвращали ошибку.
Кнопка, которая всегда падает, - не точка расширения на будущее, а
дефект UX. Удалены вместе со строками i18n.

Конфигурация Hysteria остаётся доступной панели на чтение и на
выгрузку: getHysteria2Config и exportHysteria2Config.
This commit is contained in:
2026-08-27 12:15:53 +05:00
parent 10d2c48cf0
commit 19ffc80130
15 changed files with 20 additions and 357 deletions
+5 -5
View File
@@ -5,6 +5,11 @@ import (
"hy2xs-admin/controller"
)
// Серверный конфиг Hysteria в HY2XS доступен только на чтение и на выгрузку:
// его владелец — install-оркестратор. Маршруты записи (updateHysteria2Config,
// importHysteria2Config), перезапуска панели и загрузки сертификатов удалены,
// а не оставлены заглушками: маршрут, который всегда отвечает «feature
// disabled», вводит в заблуждение и остаётся точкой входа.
func initConfigRouter(configApi *gin.RouterGroup) {
config := configApi.Group("/config")
{
@@ -12,13 +17,8 @@ func initConfigRouter(configApi *gin.RouterGroup) {
config.GET("/getConfig", controller.GetConfig)
config.POST("/listConfig", controller.ListConfig)
config.GET("/getHysteria2Config", controller.GetHysteria2Config)
config.POST("/updateHysteria2Config", controller.UpdateHysteria2Config)
config.POST("/exportHysteria2Config", controller.ExportHysteria2Config)
config.POST("/importHysteria2Config", controller.ImportHysteria2Config)
config.POST("/exportConfig", controller.ExportConfig)
config.POST("/importConfig", controller.ImportConfig)
config.GET("/hysteria2AcmePath", controller.Hysteria2AcmePath)
config.POST("/restartServer", controller.RestartServer)
config.POST("/uploadCertFile", controller.UploadCertFile)
}
}