BI Workbench Overview
The BI Workbench (frontend/bi-workbench/) is the platform's primary interface for data analysis, dashboard creation, and AI-assisted data exploration. With 64 components, it provides a comprehensive suite for building interactive dashboards, creating chart visualizations, managing semantic models, curating metrics libraries, and collaborating in real-time.
Architecture
bi-workbench/src/
App.tsx # Root application with routing
module.tsx # Module federation export
components/
dashboard/ # DashboardBuilder, DashboardGrid, DashboardHeader, RefreshControl
DashboardBuilder/ # Enhanced builder with WidgetPalette, WidgetConfigPanel
DashboardViewer/ # Read-only dashboard viewer
charts/ # BarChart, LineChart, PieChart, AreaChart, KPICard, VegaChart
filters/ # FilterBar, SingleSelect, MultiSelect, DateRange, Boolean, etc.
widgets/ # BaseWidget, MetricCardWidget, TableWidget, GaugeWidget, etc.
SemanticModel/ # ERDViewer, EntityNode, EntityDetailPanel, SemanticModelDesigner
MetricsLibrary/ # MetricsLibrary, ApprovalWorkflow
BIAssistant/ # AI chat interface for BI
BILifecycle/ # Lifecycle stepper and stage panels
collaboration/ # CollaboratorCursors, CollaboratorPresence
advanced/ # DrillDown, DataTable, ChartAnnotations, ExportManager
Home/ # DashboardGrid, LifecycleProgressCard, RecentQueriesWidget
hooks/
useDashboard.ts # Dashboard CRUD operations
useFilters.ts # Filter state management
useWidgets.ts # Widget lifecycle hooks
useCollaboration.ts # Real-time collaboration
useRealTimeRefresh.ts # Auto-refresh scheduling
useWidgetDataSubscription.ts # Widget data streaming
store/
dashboard-store.ts # Zustand dashboard state
services/
api-client.ts # BI-specific API client
dashboard-service.ts # Dashboard service layer
filter-service.ts # Filter service layer
widget-service.ts # Widget service layer
collaboration-service.ts # Collaboration service
types/
dashboard.ts # Dashboard types
widget.ts # Widget types
filter.ts # Filter types
semantic.ts # Semantic model types
collaboration.ts # Collaboration types
utils/
chartGenerators.ts # Vega-Lite spec generators
chartPresets.ts # Chart configuration presets
dataTransformers.ts # Data transformation utilities
colors.ts # Color palette utilities
format.ts # Number/date formattingKey Features
| Feature | Components | Description |
|---|---|---|
| Dashboard Builder | DashboardBuilder, DashboardGrid, WidgetPalette | Drag-and-drop dashboard creation |
| Charts | BarChart, LineChart, PieChart, VegaChart, KPICard | 8+ chart types with Vega-Lite |
| Filters | FilterBar, 7 filter types | Interactive dashboard filtering |
| Widgets | BaseWidget, 6 widget types | Configurable dashboard widgets |
| Semantic Model | ERDViewer, SemanticModelDesigner | Visual entity-relationship design |
| Metrics Library | MetricsLibrary, ApprovalWorkflow | Curated metric definitions |
| Collaboration | CollaboratorCursors, CollaboratorPresence | Real-time multi-user editing |
| Export | ExportManager | PDF/PNG dashboard export |
| BI Assistant | BIAssistant | AI-powered data exploration |
| Advanced | DrillDown, DataTable, ChartAnnotations | Advanced analytics features |
Widget Types
The BI Workbench supports 11 widget types defined in types/widget.ts:
| Type | Description | Default Size |
|---|---|---|
BAR_CHART | Compare values across categories | 4x3 |
LINE_CHART | Show trends over time | 6x3 |
PIE_CHART | Show proportions | 3x3 |
DONUT_CHART | Pie with center cutout | 3x3 |
AREA_CHART | Volume over time | 6x3 |
SCATTER_PLOT | Correlation between values | 4x4 |
HEATMAP | Data density with colors | 6x4 |
TABLE | Tabular data display | 6x4 |
METRIC_CARD | Single value with trend | 2x2 |
GAUGE | Progress towards goal | 2x2 |
TEXT | Markdown text content | 4x2 |