halo icon indicating copy to clipboard operation
halo copied to clipboard

支持在控制台查看版本等信息

Open wan92hen opened this issue 2 years ago • 7 comments

你当前使用的版本

2.1.0-rc.1

描述一下此特性

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

附加信息

No response

wan92hen avatar Dec 27 '22 03:12 wan92hen

/kind feature /milestone 2.2.x

ruibaby avatar Dec 27 '22 04:12 ruibaby

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

minliacom avatar Dec 27 '22 04:12 minliacom

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

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

ruibaby avatar Dec 27 '22 04:12 ruibaby

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

guqing avatar Dec 27 '22 04:12 guqing

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

image

minliacom avatar Dec 27 '22 04:12 minliacom

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

JohnNiang avatar Dec 27 '22 06:12 JohnNiang

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

minliacom avatar Dec 27 '22 09:12 minliacom

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

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

JohnNiang avatar Jan 16 '23 03:01 JohnNiang

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

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

wan92hen avatar Jan 16 '23 05:01 wan92hen

目前开发环境已经暴露 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"
  }
}

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

JohnNiang avatar Jan 16 '23 07:01 JohnNiang

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

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

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

JohnNiang avatar Jan 18 '23 09:01 JohnNiang

/assign

JohnNiang avatar Jan 29 '23 03:01 JohnNiang

/reopen

等待 https://github.com/halo-dev/console/pull/832 完成。

ruibaby avatar Jan 30 '23 07:01 ruibaby

@ruibaby: Reopened this issue.

In response to this:

/reopen

等待 https://github.com/halo-dev/console/pull/832 完成。

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

f2c-ci-robot[bot] avatar Jan 30 '23 07:01 f2c-ci-robot[bot]