@aliyun-obv/dashboard-validator
v0.0.3
Published
Dashboard/Chart validator for obviz-explorer
Readme
dashboard-validator
用于校验仪表盘 JSON / 图表 JSON 的命令行工具。
安装后直接使用
全局安装:
npm i -g @aliyun-obv/dashboard-validator
dashboard-validator --help或不全局安装,使用 npx:
npx @aliyun-obv/dashboard-validator --help用法
在仓库根目录执行:
pnpm dashboard-validator --dashboard --json ./dashboard.json或校验单图:
pnpm dashboard-validator --chart --string '{"type":"linepro","title":"test","display":{"queryOptionMap":{"A":{"xAxisKey":"__time__","name":"A","yAxisKeys":["pv"]}},"graphOptions":{"lineWidth":2},"basicOptions":{"displayName":"test"}}}'校验来源
工具在构建阶段从真实实现抽取 compact resource:
- 从
packages/dashboard/src/allCharts/registerForValidator.ts和各图表的getOptionBuilder提取图表display配置结构,生成src/validator/chart-resources.json - 从
packages/interface/src/dashboard/core/dashboardChart.ts、packages/dashboard/src/NewDashboard/util.tsx、packages/dashboard/src/NewDashboard/constant.ts和默认 chart model 提取 dashboard / chart 顶层字段、ChartDisplay通用字段、布局常量和保存前清理策略,生成src/validator/dashboard-resources.json
发布后的 CLI 运行时只读取包内已打包的图表资源,不依赖业务仓库里的 dashboard 源码文件。
完整 dashboard 校验会额外检查:
- dashboard 根字段:
displayName、dashboardName、description、attribute、charts attribute.type:仅允许free或grid- 图表顶层字段:
type、title、display、search、action - 布局字段:
xPos、yPos、width、height、zIndex、version - dashboard 级关系:图表
title唯一,connect/ 容器类引用的 chart title 必须存在
未知图表类型会作为错误处理;attribute 中未知扩展字段只会产生 warning。
display 的结构会按真实保存结构校验,例如 linepro 的字段在分组下:
{
"queryOptionMap": {
"A": {
"xAxisKey": "__time__",
"name": "A",
"yAxisKeys": ["pv", "uv"]
}
},
"standardOption": {
"format": "none",
"unit": { "unit": "none" }
},
"yAxisOption": { "show": true, "position": 3, "stackingMode": "none" },
"graphOptions": { "lineWidth": 2, "fillOpacity": 40 },
"tooltipOption": { "mode": "all", "sortOrder": "none", "labelFormat": "" },
"basicOptions": { "displayName": "test" }
}