Loading...
Loading...
Create analytics question files (.question.yml) in Steedos projects. Questions are report/chart definitions stored as YAML seed data files, based on the @steedos-labs/analytics package (Metabase engine). Covers file format, dataset_query structure (MBQL), display types, visualization_settings, result_metadata, and file naming conventions.
npx skill4agent add steedos/steedos-platform questions.question.yml<package>/main/default/questions/.question.yml<package>/main/default/questions/<package>/main/default/questions/<问题名称>.question.ymlquestions/单位总数.question.ymlquestions/媒体类型统计.question.ymlquestions/从业人员数.question.ymlname: <问题名称>
created_at: <ISO8601 datetime>
creator_id: <MongoDB ObjectId>
database_id: 1
dataset_query:
database: 1
type: query # "query" for MBQL, "native" for SQL
query:
source-table: <object_name>
# optional: filter, aggregation, breakout, limit, order-by
display: <display_type>
enable_embedding: false
entity_id: <MongoDB ObjectId> # same as id
id: <MongoDB ObjectId>
parameter_mappings: []
parameters: []
query_type: query
result_metadata:
- ... # column metadata list
table_id: <object_name>
updated_at: <ISO8601 datetime>
visualization_settings: '{}'identity_id68a5805bb74676d1c8cb3614entity_ididdataset_query:
database: 1
type: query
query:
source-table: media_org_info
aggregation:
- - countdataset_query:
database: 1
type: query
query:
source-table: media_journalist
filter:
- '='
- - field
- media_journalist.open
- null
- true
aggregation:
- - countdataset_query:
database: 1
type: query
query:
source-table: media_infor
aggregation:
- - count
breakout:
- - field
- media_infor.type
- nulldataset_query:
database: 1
type: query
query:
source-table: media_org_info
limit: 10000dataset_query:
database: 1
type: native
native:
query: "SELECT status, COUNT(*) as cnt FROM contracts GROUP BY status" | Description |
|---|---|
| Single number (计数/合计等单值) |
| Data table (数据列表) |
| Bar chart (柱状图) |
| Line chart (折线图) |
| Pie chart (饼图) |
| Area chart (面积图) |
| Horizontal bar (横向柱状图) |
| Number with trend (带趋势的数值) |
| Funnel chart (漏斗图) |
| Pivot table (透视表) |
'{}'# Scalar — show specific column
visualization_settings: '{"table.cell_column":"count"}'
# Bar chart — specify axes
visualization_settings: >-
{"graph.dimensions":["type"],"graph.metrics":["count"],"graph.show_values":true,"graph.x_axis.labels_enabled":false,"graph.y_axis.labels_enabled":false}
# Table — specify pivot and cell columns
visualization_settings: >-
{"table.pivot_column":"status","table.cell_column":"count"}result_metadataresult_metadata:
- base_type: type/BigInteger
display_name: 计数
effective_type: type/BigInteger
field_ref:
- aggregation
- 0
name: count
semantic_type: type/Quantity
source: aggregationresult_metadata:
- id: type # field name (short form when no table prefix)
name: type
display_name: 媒体类型
base_type: type/Text
effective_type: type/Text
semantic_type: null
source: breakout
visibility_type: normal
table_id: media_infor
field_ref:
- field
- media_infor.type
- null
- base_type: type/BigInteger
display_name: 计数
effective_type: type/BigInteger
field_ref:
- aggregation
- 0
name: count
semantic_type: type/Quantity
source: aggregationid<table>.<field>result_metadata:
- id: media_org_info.name
name: name
display_name: 单位名称
base_type: type/Text
effective_type: type/Text
semantic_type: null
field_ref:
- field
- media_org_info.name
- null
source: fields
visibility_type: normal
table_id: media_org_info
- id: media_org_info.created
name: created
display_name: 创建时间
base_type: type/DateTime
effective_type: type/DateTime
semantic_type: null
field_ref:
- field
- media_org_info.created
- null
source: fields
visibility_type: normal
table_id: media_org_info| Steedos field type | base_type |
|---|---|
| text / select / lookup | |
| number / currency | |
| integer | |
| date | |
| datetime | |
| boolean | |
| count result | |
name: 单位总数
created_at: 2025-08-20T07:59:23.569Z
creator_id: 689c34199c7714afa7502547
database_id: 1
dataset_query:
query:
source-table: media_org_info
aggregation:
- - count
type: query
database: 1
display: scalar
entity_id: 68a5805bb74676d1c8cb3614
id: 68a5805bb74676d1c8cb3614
parameter_mappings: []
parameters: []
query_type: query
result_metadata:
- base_type: type/BigInteger
display_name: 计数
effective_type: type/BigInteger
field_ref:
- aggregation
- 0
name: count
semantic_type: type/Quantity
source: aggregation
table_id: media_org_info
updated_at: 2025-08-20T07:59:23.569Z
visualization_settings: '{}'name: 媒体类型统计
created_at: 2025-08-20T08:06:22.163Z
creator_id: 689c34199c7714afa7502547
database_id: 1
dataset_query:
database: 1
type: query
query:
source-table: media_infor
aggregation:
- - count
breakout:
- - field
- media_infor.type
- null
display: bar
enable_embedding: false
entity_id: 68a581feb74676d1c8cb361e
id: 68a581feb74676d1c8cb361e
parameter_mappings: []
parameters: []
query_type: query
result_metadata:
- id: type
name: type
display_name: 媒体类型
base_type: type/Text
effective_type: type/Text
semantic_type: null
source: breakout
visibility_type: normal
table_id: media_infor
field_ref:
- field
- media_infor.type
- null
- base_type: type/BigInteger
display_name: 计数
effective_type: type/BigInteger
field_ref:
- aggregation
- 0
name: count
semantic_type: type/Quantity
source: aggregation
table_id: media_infor
updated_at: 2025-08-20T08:06:22.163Z
visualization_settings: >-
{"graph.x_axis.labels_enabled":false,"graph.y_axis.labels_enabled":false,"graph.dimensions":["type"],"graph.metrics":["count"],"graph.show_values":true}name: 从业人员数
created_at: 2025-08-20T08:01:35.156Z
creator_id: 689c34199c7714afa7502547
database_id: 1
dataset_query:
database: 1
type: query
query:
source-table: media_journalist
filter:
- '='
- - field
- media_journalist.open
- null
- true
aggregation:
- - count
display: scalar
enable_embedding: false
entity_id: 68a580dfb74676d1c8cb3617
id: 68a580dfb74676d1c8cb3617
parameter_mappings: []
parameters: []
query_type: query
result_metadata:
- base_type: type/BigInteger
display_name: 计数
effective_type: type/BigInteger
field_ref:
- aggregation
- 0
name: count
semantic_type: type/Quantity
source: aggregation
table_id: media_journalist
updated_at: 2025-08-20T08:01:35.156Z
visualization_settings: '{"table.cell_column":"count"}'单位总数.question.ymlidentity_idtable_idmedia_org_infodatabase_iddataset_query.database1query_type"query""query"parameter_mappingsparameters[]visualization_settings