Documentation
¶
Overview ¶
Package console 把 Vite 构建出的 Console SPA 嵌入二进制并提供静态资源服务。
dist 目录由 `task console:build` 生成(见 Taskfile.yml),不入库。 仓库只保留 dist/.gitkeep 占位,保证未构建前端时后端依然可以编译。
本包的 Handler 期望被挂载在 MountPath 下,调用方需自行 StripPrefix。
Index ¶
Constants ¶
const MountPath = "/console/"
MountPath 是 Console 的挂载前缀,必须与 console/vite.config.ts 的 base 一致。
NavPath 是菜单接口的路径,挂在 Console 平面之下。
Variables ¶
This section is empty.
Functions ¶
Types ¶
type BuildHandler ¶ added in v0.1.8
type BuildHandler struct {
// contains filtered or unexported fields
}
BuildHandler 提供当前运行构建的版本信息。
提交号与构建时间不放进 /healthz:那是免认证的运维探针,只回答「活着没有」, 没有理由对匿名请求多给构建细节。这里对所有已登录用户开放、不要求权限串, 与菜单接口同一档——关于页的「构建信息」卡片人人可见,提 issue 时贴的就是它。
func NewBuildHandler ¶ added in v0.1.8
func NewBuildHandler(info version.Info) *BuildHandler
NewBuildHandler 构造构建信息处理器。构建信息在进程内不变,构造时取定。
func (*BuildHandler) Register ¶ added in v0.1.8
func (h *BuildHandler) Register(console huma.API)
Register 挂载构建信息接口。
type BuildView ¶ added in v0.1.8
type BuildView struct {
Version string `json:"version" doc:"语义化版本号;源码直接构建时为 0.0.0-dev"`
Commit string `json:"commit" doc:"git 提交短哈希;构建时未注入且取不到 VCS 信息时为 unknown"`
Date string `json:"date" doc:"构建时间(RFC 3339);取不到时为 unknown"`
GoVersion string `json:"goVersion" doc:"编译所用的 Go 版本"`
Platform string `json:"platform" doc:"操作系统/架构,如 linux/amd64"`
}
BuildView 是构建信息接口的响应体。
不直接用 version.Info 作响应类型:huma 按类型名全局登记 Schema,Info 这种名字迟早撞车。
type NavHandler ¶
type NavHandler struct {
// contains filtered or unexported fields
}
NavHandler 提供 Console 的菜单。
菜单为什么由服务端给而不是前端写死:插件的页面要出现在侧边栏里, 而前端不可能事先知道有哪些插件。清单一旦写死在前端, 它就必须与后端的模块构成保持同步,而那种同步只能靠人记着。
**权限在这里不过滤**:本接口对所有已登录用户开放,携带每一项所需的权限串, 由前端决定显示与否。理由是菜单的过滤规则与前端已有的 can() 必须是同一套—— 服务端过滤一遍、前端再判一遍,两套规则迟早分叉。 菜单不是安全边界,真正的拦截在各页面的服务端接口上。
func NewNavHandler ¶
func NewNavHandler(navigation func() app.Navigation) *NavHandler
NewNavHandler 构造菜单处理器。
接受一个取菜单的函数而不是一份清单:设置分组的登记要等模块 Start, 而设置页的入口是从那份分组列表推导出来的。构造时取一次会漏掉它们。