[halo-dev/halo]支持在控制台查看版本等信息

2022-12-27 880 views
8
你当前使用的版本

2.1.0-rc.1

描述一下此特性

目前查看 Halo 版本需要在后台通过查看容器信息的方式获取。建议在控制台中增加关于页面,展示 Halo 版本、站点 URL 等相关信息。 具体展示的信息可以参考 WordPress 的站点健康页面。 image

回答

8

通过插件的形式好还是核心系统里面包含的形式好些呢?

3

个人认为这个应该添加到 Core。试想一下,如果我们要在 issue 中让使用者提供这些信息来做判断,还需要让他先安装一个插件吗?

2

core 本身也是需要包含版本信息的,否则插件/主题安装和升级将无法检查版本

4

嗯嗯 目前情况来看在这里添加一个关于菜单还比较合适

image
3

可以的。不过可以考虑自定义 actuator endpoint 来实现。

5

感觉有点不妥当,actuator接口一般都用来做内部系统间通讯了,有可能出现鉴权体系跟本系统管理后台不同的情况,比如当在kubernetes环境下拿来给 k8s 用了,这时候没有鉴权,如果管理后台也用了这个 actuator 接口,那就成了一个开放接口,暴露系统信息在安全层面不太妥当。有没有更好的方案可以搞定?可否考虑新开一个系统管理员级别的接口出来如 /api/system/probe 这种呢?

6

我们可以试着扩展 actuator endpoint 来实现获取系统信息的逻辑。该接口期望匿名用户也能够访问到。

6

匿名用户还是要限制部分信息的,不能将所有系统信息全部匿名暴露出去

3

目前开发环境已经暴露 info 端口,请看下面的结果:

curl -s http://172.19.144.1:8090/actuator/info | jq .
{
  "build": {
    "artifact": "halo",
    "name": "halo",
    "time": "2023-01-16T03:48:34.919Z",
    "version": "2.2.0-SNAPSHOT",
    "group": "run.halo.app"
  }
}

以上信息需要允许匿名用户查看么?

7

@minliacom 直接暴露 /actuator/info 确实存在安全性问题。我计划的实现方案如下:

  • 扩展 Actuator Endpoint:/actuator/globalconfig,返回结果仅包含一些关于 Halo 的系统级别配置,例如是否允许注册,是否允许评论。
  • 允许 /actuator/health 匿名访问。主要是为了方便 Kubernetes Probe 配置。
  • 其他 Actuator Endpoints 仅允许管理员访问。