@finebi/finebi-cli 1.4.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -1
- package/package.json +5 -4
- package/skills/finebi-cli-agent/SKILL.md +8 -4
- package/skills/finebi-cli-agent/references/command-workflows.md +61 -7
- package/skills/finebi-cli-agent/references/dashboard-data-result.md +219 -0
- package/skills/finebi-cli-agent/references/dashboard-dsl-api.md +12 -1005
- package/skills/finebi-cli-agent/references/dashboard-dsl-core.md +194 -0
- package/skills/finebi-cli-agent/references/dashboard-dsl-examples.md +378 -0
- package/skills/finebi-cli-agent/references/dashboard-dsl-items.md +456 -0
- package/skills/finebi-cli-agent/references/file-to-dashboard.md +1 -1
- package/skills/finebi-cli-agent/references/handoff-contract.md +2 -0
- package/skills/finebi-cli-agent/references/mapping-rules.md +15 -15
- package/skills/finebi-cli-agent/references/scenario-workflows.md +1 -1
- package/skills/finebi-cli-agent/references/web-app.md +13 -0
- package/skills/finebi-cli-agent/references/widget-dsl-api-examples.md +21 -4
- package/skills/finebi-cli-agent/references/widget-dsl-api.md +10 -1336
- package/skills/finebi-cli-agent/references/widget-dsl-contexts.md +142 -0
- package/skills/finebi-cli-agent/references/widget-dsl-core.md +374 -0
- package/skills/finebi-cli-agent/references/widget-dsl-encodings.md +457 -0
- package/skills/finebi-cli-agent/references/widget-dsl-styles.md +413 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/package.json +1 -1
- package/skills/finebi-cli-agent/scripts/finebi-cli/src/app.js +189 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/src/help.js +33 -2
- package/skills/finebi-cli-agent/scripts/finebi-cli/src/index.js +5 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/src/schema-options.js +44 -8
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/AGENTS.md +27 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/README.md +30 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/docs/auth-and-deploy.md +17 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/docs/data-contract.md +21 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/docs/design.md +13 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/docs/filters.md +89 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/index.html +2 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/package-lock.json +2191 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/package.json +15 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/public/app-config.json +11 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/scripts/dev-proxy.mjs +56 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/src/App.tsx +31 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/src/components/Chart.tsx +31 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/src/components/DataTable.tsx +14 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/src/components/FilterBar.tsx +42 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/src/components/Widget.tsx +28 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/src/components/calendar.ts +14 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/src/finebi/client.ts +37 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/src/finebi/date.d.ts +1 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/src/finebi/date.js +5 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/src/finebi/filters.d.ts +4 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/src/finebi/filters.js +106 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/src/finebi/normalize.ts +77 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/src/finebi/types.ts +18 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/src/main.tsx +5 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/src/services/view-data.ts +18 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/src/styles.css +8 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/tests/calendar.test.mjs +25 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/tests/proxy.test.mjs +84 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/tests/runtime.test.mjs +136 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/tsconfig.json +4 -0
- package/skills/finebi-cli-agent/scripts/finebi-cli/templates/web-app/vite.config.ts +13 -0
- package/src/app.js +189 -0
- package/src/help.js +33 -2
- package/src/index.js +5 -0
- package/src/schema-options.js +44 -8
- package/templates/web-app/AGENTS.md +27 -0
- package/templates/web-app/README.md +30 -0
- package/templates/web-app/docs/auth-and-deploy.md +17 -0
- package/templates/web-app/docs/data-contract.md +21 -0
- package/templates/web-app/docs/design.md +13 -0
- package/templates/web-app/docs/filters.md +89 -0
- package/templates/web-app/index.html +2 -0
- package/templates/web-app/package-lock.json +2191 -0
- package/templates/web-app/package.json +15 -0
- package/templates/web-app/public/app-config.json +11 -0
- package/templates/web-app/scripts/dev-proxy.mjs +56 -0
- package/templates/web-app/src/App.tsx +31 -0
- package/templates/web-app/src/components/Chart.tsx +31 -0
- package/templates/web-app/src/components/DataTable.tsx +14 -0
- package/templates/web-app/src/components/FilterBar.tsx +42 -0
- package/templates/web-app/src/components/Widget.tsx +28 -0
- package/templates/web-app/src/components/calendar.ts +14 -0
- package/templates/web-app/src/finebi/client.ts +37 -0
- package/templates/web-app/src/finebi/date.d.ts +1 -0
- package/templates/web-app/src/finebi/date.js +5 -0
- package/templates/web-app/src/finebi/filters.d.ts +4 -0
- package/templates/web-app/src/finebi/filters.js +106 -0
- package/templates/web-app/src/finebi/normalize.ts +77 -0
- package/templates/web-app/src/finebi/types.ts +18 -0
- package/templates/web-app/src/main.tsx +5 -0
- package/templates/web-app/src/services/view-data.ts +18 -0
- package/templates/web-app/src/styles.css +8 -0
- package/templates/web-app/tests/calendar.test.mjs +25 -0
- package/templates/web-app/tests/proxy.test.mjs +84 -0
- package/templates/web-app/tests/runtime.test.mjs +136 -0
- package/templates/web-app/tsconfig.json +4 -0
- package/templates/web-app/vite.config.ts +13 -0
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
6. 对最终选定或新建的分析表调用 `analysis-ds.info` 确认主题归属、引擎类型和字段元数据。DIRECT 不以 `dataStatus`、`updateStatus` 或摘要 `usable` 阻断,不执行数据集 `data-update`,使用只读 `preview` 验证查询能力;SPIDER 保留状态、可用性和 preview 校验。
|
|
21
21
|
7. 用 `subject.info` 和必要的 `widget.info` 确认已有组件引用。
|
|
22
22
|
8. 对 Dashboard 按名称引用的组件,证明每个已有引用全局唯一,并证明待创建组件名称在创建前不存在冲突。
|
|
23
|
-
9.
|
|
23
|
+
9. 模型指标集按来源探查与主题内模型分别解析。仅探查来源或尚无主题时,用 `public-ds.search` 发现 `type=METRIC_SET` 来源,再以来源 ID 调用 `model.source-info`,读取字段目录与来源展示提示;判读边界见 [Model 工作流](command-workflows.md#76-model-metric-set)。生成制品时,先从 `subject.info` 返回的 `resources.models` 查看摘要,再用 `model.search --subject-id <subjectId>` 遍历主题内候选,并对选定模型调用 `model.info --subject-id <subjectId> --id <modelId>` 获取指标、数据集字段和模型计算字段。若用户要求使用的指标集尚未属于主题,确认唯一来源和目标主题可编辑性;执行 `model.add --subject-id <subjectId> --id <sourceId>` 后,使用响应中的主题内模型 ID 执行 `model.info` 回查,才可构建交接对象。来源 ID 不得传给 `model.info/delete` 或写进 DSL。模型目录命令未出现在实时 capability 时,既有 `widget dsl` 输出中的 `model(...)` 可作为只读证据;否则进入 `BLOCKED`。不得查询同名分析表后改写成 `model(...)`。
|
|
24
24
|
|
|
25
25
|
不得把公共数据集 ID 当作 Analysis DS ID。物理 DSL 字段语义使用 `analysis-ds.info.name` 返回的表名和字段原始 `name`;模型 DSL 字段语义使用已确认的模型展示名和字段展示名。数据集、模型和字段 ID 仅作为可选验证证据,不进入 DSL。
|
|
26
26
|
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# 生成动态 HTML 数据应用
|
|
2
|
+
|
|
3
|
+
用户要求生成动态页面、HTML看板或FineBI Web应用时,先选择同一CLI安装的本地 `app create`,再按生成项目AGENTS.md开发。创建模板不需要连接;读取/绑定FineBI资源才检查认证和实时命令help。
|
|
4
|
+
|
|
5
|
+
1. `finebi-cli app create --name <name> --path <parent>` 创建工程,不安装/运行/发布。
|
|
6
|
+
2. 用dashboard search/info/data确认唯一来源、板内entryId、结果字段dId、真实控件filterName;样本仅用于理解和测试。
|
|
7
|
+
3. 在public/app-config.json填写非敏感绑定。图表库和UI组件库按页面需求选择,默认实现及替换约定见生成项目的docs/design.md。请求、认证、解析复用模板src/finebi;业务代码按项目指南开发。
|
|
8
|
+
4. `finebi-cli app inspect --path <project>`只校验本地配置,不能证明字段/权限在远端存在。按项目README配置开发身份,再安装、启动、测试与构建。
|
|
9
|
+
5. 浏览器验收实际请求、空/错误/权限状态、图表与刷新;生产部署必须用访问者Cookie,不携带开发身份。
|
|
10
|
+
|
|
11
|
+
内置CLI同样通过 `node "<skill-dir>/scripts/finebi-cli/src/index.js" app ...` 调用,不走动态业务runner。生产页面不调用CLI。禁止将开发时查到的业务数据或token写入HTML/JS/config;无筛选控件不能伪造服务端过滤。pageLimit不是分页,hasNext和warnings必须呈现。v1不提供发布上传/目录来源/服务端续页,先说明缺口,不发明命令。
|
|
12
|
+
|
|
13
|
+
模板内置文本、单选/多选、数值选择、日期及日期区间、年月季度、年月区间和已配置时间标签;草稿统一应用,恢复默认与筛选空值分开。配置、状态、请求编码和代理校验共用 src/finebi/filters.js。数值范围、滑块、树/级联和动态候选项暂不支持,不得换成其他类型绕过检查。绑定前核实源控件类型和作用范围,候选项不得冒充完整数据。通用约定、完整支持矩阵、值格式及扩展步骤见生成项目 docs/filters.md。
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
# Widget DSL
|
|
1
|
+
# Widget DSL 推荐写法示例
|
|
2
2
|
|
|
3
|
-
> 本文件是 [`widget-dsl-api.md`](widget-dsl-api.md)
|
|
4
|
-
> §1-§9(根入口 / 字段工厂 / Builder / 图表上下文 / SeriesModel / 过滤 / 配色 / 数值格式 / 枚举)留在主册。
|
|
3
|
+
> 本文件是 Widget DSL API 的示例分册:可运行的推荐写法示例,与 API 面分离维护;API 总导航见 [`widget-dsl-api.md`](widget-dsl-api.md)。
|
|
5
4
|
|
|
6
5
|
### 10.1 分区折线图
|
|
7
6
|
|
|
@@ -445,7 +444,7 @@ WidgetDsl.create("门店流量")
|
|
|
445
444
|
|
|
446
445
|
使用 `finebi-cli widget template --chart-type radar --scenario basic` 获取模板,按响应中的变量元数据
|
|
447
446
|
替换组件名、表名、分类维度及两个不同的数值字段;变量值按 JSON 字面量编码。
|
|
448
|
-
API 与配置边界见 [雷达图编码](widget-dsl-
|
|
447
|
+
API 与配置边界见 [雷达图编码](widget-dsl-encodings.md#427-折线雷达图)。
|
|
449
448
|
|
|
450
449
|
```javascript
|
|
451
450
|
WidgetDsl.create("手机参数对比").chart().radar()
|
|
@@ -455,3 +454,21 @@ WidgetDsl.create("手机参数对比").chart().radar()
|
|
|
455
454
|
.radarOptions(RadarOptions.polygon().marker(true).symbol("triangle"))
|
|
456
455
|
.build();
|
|
457
456
|
```
|
|
457
|
+
|
|
458
|
+
### 隐藏展示字段
|
|
459
|
+
|
|
460
|
+
设计器"展示字段"开关的 DSL 表达:维度绑定进轴但查看态不展示(`used=false`,槽位保留)。
|
|
461
|
+
`.hidden()` 叠加在维度表达式末尾,可与分组、别名、经纬度组合;回读输出同一后缀。
|
|
462
|
+
|
|
463
|
+
```js
|
|
464
|
+
WidgetDsl.create("区域销售表")
|
|
465
|
+
.chart().table()
|
|
466
|
+
.dimension(from("销售表").dim("地区"))
|
|
467
|
+
.dimension(from("销售表").dim("月份",
|
|
468
|
+
DimensionGrouping.dateGranularity("YEAR_MONTH"), "月份").hidden())
|
|
469
|
+
.measure(from("销售表").sum("销售额"))
|
|
470
|
+
.build()
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
适用场景:按隐藏粒度参与分组/计算,但界面只展示地区一级;或反读设计器组件时
|
|
474
|
+
保留其"已关闭展示"的字段设置。同一字段多处引用须 hidden 状态一致,否则保存报错(明细表例外:同字段多列按列独立生效)。
|