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

HeaderComponent

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

Metadata

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

TableFormattingRule

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