Skip to content

Field Reference

Complete reference of all fields available in Dataface.


Board

The fundamental building block of Dataface. A Board is a container that defines content, layout, and data resources. Boards are recursive: a board can contain other boards.

# Board
title: string                   # Optional: display title
description: string             # Optional: description
tags: [string]                  # Optional: tags for organization

# Layout (Use exactly one of these keys)
# The presence of one of these keys identifies this object as a Board.
rows: [...]                     # Stack items vertically
cols: [...]                     # Stack items horizontally
grid: {...}                     # Arrange items in a grid
tabs: {...}                     # Organize items in tabs
content: string                 # Optional: markdown content (can be used with layout)

# Styling & Dimensions (When nested)
id: string                      # Optional: unique ID for referencing (e.g. "file.id")
style: {...}                    # Optional: style overrides
width: string | number          # Optional: explicit width (e.g. "50%", 6)
height: string | number         # Optional: explicit height (e.g. "400px", 4)

# Definitions (Scoped Resources)
# Variables, queries, and charts defined here are available to this board and its children.
variables: {...}                # Optional: variable definitions
queries: {...}                  # Optional: query definitions
charts: {...}                   # Optional: shared chart definitions
style: {...}                    # Optional: styling options

Layout Configuration

Grid Configuration

Used when the grid: key is present.

# Grid Layout
grid:
  columns: number                 # Required: number of columns (e.g., 12)
  row_height: string              # Optional: height of rows (e.g., "100px")
  gap: string                     # Optional: gap size (sm, md, lg, xl)
  items:                          # Required: list of grid items
    - item: string | Board | Chart # The content to place
      x: number                   # Optional: column start
      y: number                   # Optional: row start
      width: number               # Optional: column span
      height: number              # Optional: row span

Tab Configuration

Used when the tabs: key is present.

# Tab Layout
tabs:
  position: top | left            # Optional: tab bar position
  items:                          # Required: list of tabs
    - title: string               # Required: tab label
      icon: string                # Optional: icon name
      # ... plus any Board properties (rows, cols, etc.)

Chart

Charts visualize data. They can be defined inline within a layout or in the charts: definition block.

# Chart
title: string                   # Optional: display title
type: string                    # Required: chart type (bar, line, etc.)
query: string                   # Required: query name reference
description: string             # Optional: help text/tooltip

## Chart Data Mapping
x: string                       # Optional: x-axis field
y: string | [string]            # Optional: y-axis field(s)
color: string                   # Optional: color encoding field
size: string                    # Optional: size encoding field
shape: string                   # Optional: shape encoding field

## Chart Configuration
limit: number                   # Optional: maximum rows
sort:                           # Optional: sort configuration
  by: string
  order: asc | desc

## Chart Formatting & Interactivity
style: {...}                    # Optional: styling options
interactions: {...}             # Optional: interaction configuration
filters: {...}                  # Optional: chart-level filters

Query

Queries define how to fetch data.

# Query (MetricFlow)
metrics: [string]               # Required: list of metric names
dimensions: [string]            # Optional: list of dimension names
filters: {...}                  # Optional: filter conditions
time_grain: string              # Optional: day|week|month|quarter|year
limit: number                   # Optional: maximum rows
# Query (dbt Model)
model: string                   # Required: dbt model reference
columns: [string]               # Required: columns to select
filters: {...}                  # Optional: filter conditions
limit: number                   # Optional: maximum rows
# Query (SQL)
type: sql                       # Required: must be "sql"
sql: string                     # Required: SQL query (supports Jinja)

Variable

Variables allow for dynamic dashboard filtering and interaction.

# Variable
input: string                   # Required: select|daterange|text|number|bool
label: string                   # Optional: display label
description: string             # Optional: helper text
default: any                    # Optional: default value (undefined by default)
required: boolean               # Optional: is value required?

# Select Options
options:
  static: [string]              # List of static values
  query: string                 # Query to fetch options dynamically
  column: string                # Column name to tie the variable to
  label_column: string          # Optional other column to use for labels

Styling

# Style (Board-level)
style:
  palette: string                 # Optional: color palette name
  font: string                    # Optional: font family name
  mode: light | dark              # Optional: default color mode
  density: compact | comfortable  # Optional: spacing density

# Style (Chart-level)
style:
  palette: string                 # Optional: override color palette
  color: string                   # Optional: specific color (hex/name)
  show_legend: boolean            # Optional: toggle legend
  show_grid: boolean              # Optional: toggle grid lines
  show_labels: boolean            # Optional: toggle data labels
  x_axis: {...}                   # Optional: axis config
  y_axis: {...}                   # Optional: axis config

Interaction

Coming Soon

Click interactions are planned but not yet implemented. Hover tooltips work automatically.

# Interaction (planned)
interactions:
  click:                          # Not yet implemented
    action: string                # filter|open_link|set_variable
    target: string                # Target variable or link pattern
  hover:
    tooltip: boolean              # Show tooltip (default: true)