or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

api

features

charts

charts.mdconditional-formatting.mdvisualizations.md
authorization.mdchangesets.mdcharts-as-code.mdcompiler.mddashboards.mddbt.mdee-features.mdformatting.mdparameters.mdpivot.mdprojects-spaces.mdsql-runner.mdtemplating.mdwarehouse.md
index.md
tile.json

types-at-a-glance.mddocs/quick-reference/

Types at a Glance

Quick reference for key types in @lightdash/common. For detailed documentation, see the Core Types API.

Data Modeling

Explore

interface Explore {
  name: string;
  label: string;
  baseTable: string;
  tables: Record<string, CompiledTable>;
  joinedTables: CompiledExploreJoin[];
  // ... additional properties
}

Main data model containing tables, dimensions, and metrics.

Field Types

interface Dimension {
  fieldType: 'dimension';
  type: DimensionType;
  name: string;
  label: string;
  table: string;
  sql: string;
  // ... additional properties
}

interface Metric {
  fieldType: 'metric';
  type: MetricType;
  name: string;
  label: string;
  table: string;
  sql: string;
  // ... additional properties
}

Dimension Types: string, number, timestamp, date, boolean

Metric Types: count, count_distinct, sum, average, min, max, percentile, number

Queries

MetricQuery

interface MetricQuery {
  exploreName: string;
  dimensions: FieldId[];
  metrics: FieldId[];
  filters: Filters;
  sorts: SortField[];
  limit: number;
  tableCalculations: TableCalculation[];
  additionalMetrics?: AdditionalMetric[];
  customDimensions?: CustomDimension[];
}

Defines what data to fetch from an explore.

Filters

interface Filters {
  dimensions?: FilterGroup;
  metrics?: FilterGroup;
  tableCalculations?: FilterGroup;
}

type FilterGroup = {
  id: string;
  and: (FilterGroup | FilterRule)[];
} | {
  id: string;
  or: (FilterGroup | FilterRule)[];
};

interface FilterRule {
  id: string;
  target: { fieldId: string };
  operator: FilterOperator;
  values?: any[];
}

Common Operators: equals, notEquals, greaterThan, lessThan, inThePast, inTheNext, inBetween, startsWith, include

Dashboards & Charts

Dashboard

interface Dashboard {
  uuid: string;
  name: string;
  projectUuid: string;
  tiles: DashboardTile[];
  filters: DashboardFilters;
  // ... additional properties
}

SavedChart

interface SavedChart {
  uuid: string;
  name: string;
  projectUuid: string;
  tableName: string;
  metricQuery: MetricQuery;
  chartConfig: ChartConfig;
  // ... additional properties
}

Chart Types: bar, line, area, scatter, pie, table, big_number

Formatting

CustomFormat

interface CustomFormat {
  type: CustomFormatType;
  round?: number;
  separator?: NumberSeparator;
  currency?: string;
  compact?: Compact;
  prefix?: string;
  suffix?: string;
}

Format Types: default, percent, currency, number, date, timestamp

Compact Options: thousands (K), millions (M), billions (B), trillions (T)

Authorization

User Abilities

type MemberAbility = Ability<[AbilityAction, Subject]>;

// Usage
const ability = defineUserAbility(user, projectProfiles);
ability.can('view', 'Dashboard') // boolean
ability.can('update', 'SavedChart') // boolean

Actions: view, create, update, delete, manage, export, promote

Subjects: Dashboard, SavedChart, Space, Project, Organization, Explore, etc.

Warehouses

WarehouseClient

interface WarehouseClient {
  credentials: WarehouseCredentials;
  runQuery(sql: string): Promise<WarehouseResults>;
  getCatalog(): Promise<WarehouseCatalog>;
  // ... additional methods
}

Warehouse Types: bigquery, postgres, snowflake, redshift, databricks, trino, clickhouse

Compilation

ExploreCompiler

class ExploreCompiler {
  constructor(warehouseSqlBuilder: WarehouseSqlBuilder);

  compileExplore(uncompiledExplore: UncompiledExplore): Explore;
  compileDimension(dimension: Dimension, ...): CompiledDimension;
  compileMetric(metric: Metric, ...): CompiledMetric;
}

Compiles dbt models into executable explores.

Field Utilities

Common Functions

// Get fields from explore
getFields(explore: Explore): CompiledField[]
getDimensions(explore: Explore): CompiledDimension[]
getMetrics(explore: Explore): CompiledMetric[]

// Create maps for O(1) lookups
getFieldMap(explore: Explore, ...): Record<string, Field>
getItemMap(explore: Explore, ...): ItemsMap

// Formatting
formatItemValue(item: Item, value: any): string
formatDate(date: Date, timeInterval?: TimeFrames): string
formatNumberValue(value: number, format?: Format): string

Type Guards

// Field type checks
isField(value: any): value is Field
isDimension(field: Field): field is Dimension
isMetric(field: Field): field is Metric

// Filter checks
isFilterGroup(value: any): value is FilterGroup
isFilterRule(value: any): value is FilterRule

// Custom dimension checks
isCustomDimension(value: any): value is CustomDimension
isTableCalculation(value: any): value is TableCalculation

Common Enums

FilterOperator

NULL, NOT_NULL, EQUALS, NOT_EQUALS, STARTS_WITH, ENDS_WITH, INCLUDE, NOT_INCLUDE, LESS_THAN, GREATER_THAN, IN_THE_PAST, IN_THE_NEXT, IN_THE_CURRENT, IN_BETWEEN

ChartKind

VERTICAL_BAR, HORIZONTAL_BAR, LINE, AREA, SCATTER, PIE, TABLE, BIG_NUMBER, FUNNEL

TimeFrames

DAY, WEEK, MONTH, QUARTER, YEAR, HOUR, MINUTE, SECOND

DimensionType

STRING, NUMBER, TIMESTAMP, DATE, BOOLEAN

MetricType

COUNT, COUNT_DISTINCT, SUM, AVERAGE, MIN, MAX, PERCENTILE, NUMBER

More Information

For complete API documentation with examples, see:

  • Core Types
  • Queries
  • Charts
  • Authorization
  • Compiler