How bruin-data/dac works
DAC turns YAML or TSX dashboard definitions into validated dashboards, resolves widget queries, and serves interactive dashboards through a Go API and React UI. Users can also validate/query projects, manage connections, export dashboards, and import Metabase content. The README documents semantic metrics and dimensions, TSX-driven layouts, multiple database providers through Bruin, and static output. Several subsystems are represented from the README or source index rather than inspected implementation; edges are limited to relationships visible in excerpts or documented there.
Main entry points: cmd DAC Commands · loader.go YAML and TSX Loading · DashboardView.tsx Dashboard View · api.go Dashboard API
Components 28
CLI and Projects
- DAC Commands
cmd - Project Config
pkg/config/config.go - Usage Telemetry
pkg/telemetry/telemetry.go
Dashboard Domain
- YAML and TSX Loading
pkg/dashboard/loader.go - TSX Evaluation
pkg/dashboard/jsloader.go - Dashboard Model
pkg/dashboard/model.go - Dashboard Validation
pkg/dashboard/validator.go - Semantic Queries
pkg/dashboard/semantic_query.go
Query and Serving
- Dashboard API
pkg/server/api.go - HTTP Server
pkg/server/server.go - Widget Query Jobs
pkg/server/semantic.go - Bruin Query Backend
pkg/query/bruin.go - Query Cache
pkg/query/cache.go
Dashboard UI
- React Application
frontend/src/App.tsx - API Client
frontend/src/api/client.ts - Dashboard View
frontend/src/components/DashboardView.tsx - Widget Data Hook
frontend/src/hooks/useWidgetQuery.ts - Dashboard Data Hook
frontend/src/hooks/useDashboardData.ts - Widget Rendering
frontend/src/components/widgets - Dashboard Filters
frontend/src/themes/bruin/FilterBar.tsx - Theme Registry
frontend/src/themes/TemplateProvider.tsx - Connection Admin
frontend/src/components/Admin.tsx
Integrations and Export
- Metabase Import
pkg/importer/metabase/convert.go - Static Dashboard Export
pkg/render/render.go - Slide Export
pkg/slides/export.go
Other components
- Dashboard Author
- Bruin CLI
- Dashboard User
Connections 31
- Dashboard Author → DAC Commands: runs commands
README.md - DAC Commands → Project Config: reads settings
cmd/query.go - DAC Commands → YAML and TSX Loading: loads dashboards
cmd/query.go - DAC Commands → Bruin Query Backend: executes queries
cmd/query.go - DAC Commands → Metabase Import: imports dashboards
- YAML and TSX Loading → TSX Evaluation: evaluates TSX
- YAML and TSX Loading → Dashboard Model: creates model
- Dashboard Author → Dashboard User: views dashboards
README.md - Dashboard User → React Application: opens UI
frontend/src/App.tsx - React Application → Dashboard View: routes to
frontend/src/App.tsx - React Application → Theme Registry: provides template
frontend/src/App.tsx - Dashboard View → Widget Data Hook: requests widget data
frontend/src/components/DashboardView.tsx - Dashboard View → Dashboard Data Hook: streams dashboard data
- Dashboard View → Widget Rendering: renders widgets
- Dashboard View → Dashboard Filters: renders filters
frontend/src/components/DashboardView.tsx - Widget Data Hook → API Client: fetches widget data
frontend/src/hooks/useWidgetQuery.ts - Dashboard Data Hook → API Client: streams dashboard data
frontend/src/hooks/useDashboardData.ts - API Client → Dashboard API: calls HTTP API
frontend/src/api/client.ts - Connection Admin → API Client: manages connections
frontend/src/components/Admin.tsx - HTTP Server → Dashboard API: registers routes
pkg/server/server.go - Dashboard API → YAML and TSX Loading: loads dashboards
pkg/server/api.go - Dashboard API → Widget Query Jobs: resolves query jobs
- Widget Query Jobs → Bruin Query Backend: executes widget queries
- Bruin Query Backend → Bruin CLI: runs bruin query
README.md - Dashboard API → Semantic Queries: compiles semantic queries
- YAML and TSX Loading → Dashboard Validation: validates dashboards
- Static Dashboard Export → YAML and TSX Loading: loads dashboards
pkg/render/render.go - Static Dashboard Export → Widget Query Jobs: resolves widget jobs
pkg/render/render.go - Static Dashboard Export → Bruin Query Backend: executes widget queries
pkg/render/render.go - Slide Export → Bruin Query Backend: exports query results
- DAC Commands → Usage Telemetry: reports usage