Dashboard configuration
Download JSON Schema
Example
apiVersion: leapview.dev/v1
kind: Dashboard
metadata:
workspace: movielens
name: genre-analysis
title: Genre Analysis
description: Genre-level rating volume, rating quality, trends, and release-decade comparisons.
tags: [movies, genres, ratings, experiment]
spec:
semanticModel: genre_ratings
filters:
rating_date:
label: Rating date
field: rating_date
predicates:
- kind: range
- kind: relative_period
genre:
label: Genre
field: genre
predicates:
- kind: set
operators: [in, not_in]
options:
kind: distinct
limit: 30
release_decade:
label: Release decade
field: release_decade
predicates:
- kind: set
operators: [in, not_in]
options:
kind: distinct
limit: 20
filter_bindings:
rating_date:
filter: rating_date
default: {kind: unfiltered}
url: {param: period, encoding: typed_v1}
pane: {visible: true, order: 10}
genre:
filter: genre
default: {kind: unfiltered}
selection: {mode: multiple, max_selected_values: 30}
url: {param: genre, encoding: typed_v1}
pane: {visible: true, order: 20}
release_decade:
filter: release_decade
default: {kind: unfiltered}
selection: {mode: multiple, max_selected_values: 20}
url: {param: decade, encoding: typed_v1}
pane: {visible: true, order: 30}
filter_application: {mode: immediate}
visuals:
genre_rating_count:
type: kpi
query:
measures:
genre_rating_count:
presentation:
note: Rating-genre rows
tone: ink
average_rating:
type: kpi
query:
measures:
average_rating:
presentation:
note: Mean rating
tone: warning
active_users:
type: kpi
query:
measures:
active_users:
presentation:
note: Distinct users
tone: success
rated_movies:
type: kpi
query:
measures:
rated_movies:
presentation:
note: Distinct movies
tone: danger
ratings_by_genre:
title: Ratings by genre
type: bar
query:
dimensions:
genre: rating_genres.genre
measures:
genre_rating_count:
sort:
- field: value
direction: desc
limit: 20
average_by_genre:
title: Average rating by genre
type: bar
query:
dimensions:
genre: rating_genres.genre
measures:
average_rating:
sort:
- field: value
direction: desc
limit: 20
genre_trend:
title: Genre ratings by year
type: column
presentation:
stacked: true
query:
dimensions:
rating_year: rating_genres.rating_year
series:
field: rating_genres.genre
alias: genre
measures:
genre_rating_count:
sort:
- field: rating_year
direction: asc
limit: 120
decade_genres:
title: Release decade by genre
type: heatmap
query:
dimensions:
decade: rating_genres.release_decade
genre: rating_genres.genre
measures:
average_rating:
sort:
- field: decade
direction: asc
- field: genre
direction: asc
limit: 240
pages:
- id: overview
title: Overview
canvas:
width: 1366
height: 920
grid:
columns: 12
row_height: 48
gap: 16
padding: 16
components:
- id: rating-date-filter
kind: slicer
binding: {scope: report, id: rating_date}
presentation: {style: date_range}
placement: {col: 1, row: 1, col_span: 4, row_span: 2}
- id: genre-filter
kind: slicer
binding: {scope: report, id: genre}
presentation: {style: dropdown, search: true}
placement: {col: 5, row: 1, col_span: 4, row_span: 2}
- id: decade-filter
kind: slicer
binding: {scope: report, id: release_decade}
presentation: {style: dropdown, search: true}
placement: {col: 9, row: 1, col_span: 4, row_span: 2}
- id: genre-ratings
kind: visual
visual: genre_rating_count
placement: {col: 1, row: 4, col_span: 3, row_span: 3}
- id: average-rating
kind: visual
visual: average_rating
placement: {col: 4, row: 4, col_span: 3, row_span: 3}
- id: active-users
kind: visual
visual: active_users
placement: {col: 7, row: 4, col_span: 3, row_span: 3}
- id: rated-movies
kind: visual
visual: rated_movies
placement: {col: 10, row: 4, col_span: 3, row_span: 3}
- id: ratings-by-genre
kind: visual
visual: ratings_by_genre
placement: {col: 1, row: 8, col_span: 6, row_span: 7}
- id: average-by-genre
kind: visual
visual: average_by_genre
placement: {col: 7, row: 8, col_span: 6, row_span: 7}
- id: genre-trend
kind: visual
visual: genre_trend
placement: {col: 1, row: 16, col_span: 6, row_span: 7}
- id: decade-genres
kind: visual
visual: decade_genres
placement: {col: 7, row: 16, col_span: 6, row_span: 7}
Fields
| Field |
Type |
Required |
Rules |
apiVersion |
APIVersion |
Yes |
|
kind |
Dashboard |
Yes |
|
metadata |
Metadata |
Yes |
|
spec |
DashboardSpec |
Yes |
|
Nested definitions
APIVersion
| Field |
Type |
Required |
Rules |
AnyObject
| Field |
Type |
Required |
Rules |
CartesianPresentation
| Field |
Type |
Required |
Rules |
area |
boolean |
No |
|
data_zoom |
boolean |
No |
|
dual_axis |
boolean |
No |
|
histogram_bins |
object |
No |
|
label_position |
object |
No |
one of automatic, inside, outside, top |
orientation |
object |
No |
one of horizontal, vertical |
series_types |
object |
No |
|
show_symbols |
boolean |
No |
|
smooth |
boolean |
No |
|
stacked |
boolean |
No |
|
step |
boolean |
No |
|
symbol_size |
number |
No |
|
CartesianVisual
| Field |
Type |
Required |
Rules |
presentation |
CartesianPresentation |
No |
|
query |
VisualQuery |
Yes |
|
type |
object |
Yes |
one of line, area, bar, column, scatter, heatmap, candlestick, boxplot, combo, waterfall, histogram |
CustomVisual
| Field |
Type |
Required |
Rules |
custom |
object |
Yes |
no additional fields |
query |
VisualQuery |
Yes |
|
type |
custom |
Yes |
|
DashboardSpec
| Field |
Type |
Required |
Rules |
filter_application |
FilterApplication |
No |
|
filter_bindings |
object |
No |
no additional fields |
filters |
object |
No |
no additional fields |
pages |
array of Page |
Yes |
|
semanticModel |
Identifier |
Yes |
|
visuals |
object |
Yes |
no additional fields |
DataTableVisual
| Field |
Type |
Required |
Rules |
query |
TableQuery |
Yes |
|
type |
table |
Yes |
|
FieldRef
| Field |
Type |
Required |
Rules |
FieldRefObject
| Field |
Type |
Required |
Rules |
alias |
Identifier |
Yes |
|
field |
object |
Yes |
|
FieldRefValue
| Field |
Type |
Required |
Rules |
FieldRefs
| Field |
Type |
Required |
Rules |
FilterApplication
| Field |
Type |
Required |
Rules |
mode |
object |
Yes |
one of immediate, deferred |
FilterBinding
| Field |
Type |
Required |
Rules |
default |
FilterExpression |
No |
|
filter |
Identifier |
Yes |
|
option_interactions |
object |
No |
no additional fields |
pane |
object |
No |
no additional fields |
reader_editable |
boolean |
No |
|
selection |
object |
No |
no additional fields |
targets |
object |
No |
no additional fields |
url |
object |
No |
no additional fields |
FilterBindingRef
| Field |
Type |
Required |
Rules |
id |
Identifier |
Yes |
|
scope |
object |
Yes |
one of page, report |
FilterBound
| Field |
Type |
Required |
Rules |
inclusive |
boolean |
Yes |
|
value |
FilterValue |
Yes |
|
FilterDefinition
| Field |
Type |
Required |
Rules |
description |
string |
No |
|
fact |
Identifier |
No |
|
field |
object |
Yes |
|
formatting |
object |
No |
no additional fields |
label |
string |
Yes |
|
options |
FilterOptionSource |
No |
|
predicates |
array of FilterPredicate |
Yes |
|
FilterExpression
| Field |
Type |
Required |
Rules |
FilterOptionSource
| Field |
Type |
Required |
Rules |
kind |
object |
No |
one of static, distinct |
limit |
object |
No |
|
values |
array of object |
No |
|
FilterPredicate
| Field |
Type |
Required |
Rules |
kind |
object |
Yes |
one of null_check, set, comparison, range, relative_period |
operators |
array of object |
No |
|
FilterValue
| Field |
Type |
Required |
Rules |
GeographicLayer
| Field |
Type |
Required |
Rules |
GeographicLayerCommon
| Field |
Type |
Required |
Rules |
category |
Identifier |
No |
|
color |
object |
No |
no additional fields |
id |
Identifier |
Yes |
|
label |
Identifier |
No |
|
opacity |
number |
No |
|
position |
object |
No |
one of below_labels, above_labels |
stroke |
object |
No |
no additional fields |
tooltip |
array of Identifier |
No |
|
value |
Identifier |
No |
|
visibility |
object |
No |
no additional fields |
GeographicVisual
| Field |
Type |
Required |
Rules |
geo |
object |
Yes |
no additional fields |
presentation |
object |
No |
no additional fields |
query |
VisualQuery |
Yes |
|
type |
map |
Yes |
|
| Field |
Type |
Required |
Rules |
kind |
header |
Yes |
|
HierarchyPresentation
| Field |
Type |
Required |
Rules |
breadcrumb |
boolean |
No |
|
curveness |
number |
No |
|
focus |
object |
No |
one of none, adjacency |
initial_depth |
object |
No |
|
layout |
object |
No |
one of standard, circular |
node_gap |
number |
No |
|
orientation |
object |
No |
one of horizontal, vertical |
roam |
boolean |
No |
|
HierarchyVisual
| Field |
Type |
Required |
Rules |
presentation |
HierarchyPresentation |
No |
|
query |
VisualQuery |
Yes |
|
type |
object |
Yes |
one of treemap, sankey, graph, tree, sunburst |
Identifier
| Field |
Type |
Required |
Rules |
Interaction
| Field |
Type |
Required |
Rules |
point_selection |
SelectionInteraction |
No |
|
row_selection |
SelectionInteraction |
No |
|
spatial_selection |
SpatialSelectionInteraction |
No |
|
KPIVisual
| Field |
Type |
Required |
Rules |
presentation |
KPIVisualPresentation |
No |
|
query |
VisualQuery |
Yes |
|
type |
kpi |
Yes |
|
KPIVisualPresentation
| Field |
Type |
Required |
Rules |
note |
string |
No |
|
thresholds |
array of Threshold |
No |
|
tone |
object |
No |
one of neutral, ink, success, warning, danger |
MatrixVisual
| Field |
Type |
Required |
Rules |
query |
TableQuery |
Yes |
|
type |
matrix |
Yes |
|
MeasureRefs
| Field |
Type |
Required |
Rules |
| Field |
Type |
Required |
Rules |
description |
string |
No |
|
name |
ResourceID |
Yes |
|
owner |
string |
No |
|
tags |
array of string |
No |
|
title |
string |
No |
|
workspace |
ResourceID |
No |
|
ObjectID
| Field |
Type |
Required |
Rules |
Page
| Field |
Type |
Required |
Rules |
canvas |
object |
No |
no additional fields |
components |
array of PageComponent |
Yes |
|
description |
string |
No |
|
filter_bindings |
object |
No |
no additional fields |
grid |
object |
No |
no additional fields |
id |
ObjectID |
Yes |
|
title |
string |
Yes |
|
PageComponent
| Field |
Type |
Required |
Rules |
PageComponentCommon
| Field |
Type |
Required |
Rules |
badges |
array of string |
No |
|
description |
string |
No |
|
eyebrow |
string |
No |
|
id |
ObjectID |
Yes |
|
placement |
object |
Yes |
no additional fields |
subtitle |
string |
No |
|
title |
string |
No |
|
PivotVisual
| Field |
Type |
Required |
Rules |
query |
TableQuery |
Yes |
|
type |
pivot |
Yes |
|
PolarPresentation
| Field |
Type |
Required |
Rules |
area |
boolean |
No |
|
maximum |
number |
No |
|
minimum |
number |
No |
|
progress_width |
number |
No |
|
target |
number |
No |
|
thresholds |
array of Threshold |
No |
|
PolarVisual
| Field |
Type |
Required |
Rules |
presentation |
PolarPresentation |
No |
|
query |
VisualQuery |
Yes |
|
type |
object |
Yes |
one of gauge, radar |
PresentationCommon
| Field |
Type |
Required |
Rules |
legend |
object |
No |
one of hidden, top, right, bottom, left |
show_labels |
boolean |
No |
|
ProportionalPresentation
| Field |
Type |
Required |
Rules |
align |
object |
No |
one of left, center, right |
center_label |
string |
No |
|
inner_radius |
number |
No |
|
label_position |
object |
No |
one of automatic, inside, outside, top |
orientation |
object |
No |
one of horizontal, vertical |
outer_radius |
number |
No |
|
rose |
boolean |
No |
|
sort |
object |
No |
one of ascending, descending |
ProportionalVisual
| Field |
Type |
Required |
Rules |
presentation |
ProportionalPresentation |
No |
|
query |
VisualQuery |
Yes |
|
type |
object |
Yes |
one of pie, donut, funnel |
ResourceID
| Field |
Type |
Required |
Rules |
SelectionInteraction
| Field |
Type |
Required |
Rules |
mappings |
array of object |
No |
|
targets |
array of Identifier |
No |
|
toggle |
boolean |
No |
|
SlicerComponent
| Field |
Type |
Required |
Rules |
binding |
FilterBindingRef |
Yes |
|
kind |
slicer |
Yes |
|
presentation |
object |
No |
no additional fields |
Sort
| Field |
Type |
Required |
Rules |
direction |
object |
No |
|
expr |
string |
No |
|
field |
string |
No |
|
SpatialSelectionInteraction
| Field |
Type |
Required |
Rules |
gestures |
array of object |
Yes |
|
latitude |
SpatialSelectionMapping |
Yes |
|
longitude |
SpatialSelectionMapping |
Yes |
|
targets |
array of Identifier |
Yes |
|
SpatialSelectionMapping
| Field |
Type |
Required |
Rules |
fact |
Identifier |
No |
|
field |
object |
Yes |
|
source |
Identifier |
Yes |
|
TableColumn
| Field |
Type |
Required |
Rules |
align |
string |
No |
|
column_value |
string |
No |
|
format |
object |
No |
|
formatting |
array of TableFormattingRule |
No |
|
group |
string |
No |
|
key |
string |
Yes |
|
label |
string |
No |
|
measure |
string |
No |
|
role |
string |
No |
|
width |
integer |
No |
|
| Field |
Type |
Required |
Rules |
background |
string |
No |
|
color |
string |
No |
|
high_color |
string |
No |
|
kind |
object |
Yes |
one of badge, text_color, background_scale, data_bar |
low_color |
string |
No |
|
max |
number |
No |
|
min |
number |
No |
|
values |
object |
No |
|
TableQuery
| Field |
Type |
Required |
Rules |
columns |
FieldRefs |
No |
|
fields |
array of FieldRef |
No |
|
measures |
MeasureRefs |
No |
|
rows |
FieldRefs |
No |
|
table |
Identifier |
No |
|
TabularVisualCommon
| Field |
Type |
Required |
Rules |
cardinality |
object |
No |
one of bounded, exact |
columns |
array of TableColumn |
No |
|
default_sort |
object |
No |
no additional fields |
measure_formatting |
object |
No |
|
presentation |
object |
No |
no additional fields |
title |
string |
Yes |
|
Threshold
| Field |
Type |
Required |
Rules |
tone |
object |
Yes |
one of neutral, ink, success, warning, danger |
value |
number |
Yes |
|
Visual
| Field |
Type |
Required |
Rules |
VisualCommon
| Field |
Type |
Required |
Rules |
accessibility |
object |
No |
no additional fields |
data_budget |
object |
No |
no additional fields |
description |
string |
No |
|
interaction |
object |
No |
|
title |
string |
No |
|
VisualComponent
| Field |
Type |
Required |
Rules |
kind |
visual |
Yes |
|
visual |
Identifier |
Yes |
|
VisualQuery
| Field |
Type |
Required |
Rules |
dimensions |
FieldRefs |
No |
|
limit |
integer |
No |
|
measures |
MeasureRefs |
No |
|
series |
FieldRefObject |
No |
|
sort |
array of Sort |
No |
|
table |
Identifier |
No |
|
time |
object |
No |
no additional fields |