// the find
bruin-data/dac
DaC is a dashboard-as-code tool. Build interactive dashboards using YAML and JSX. Built-in semantic layer. Get your agents to build standardized, reviewable dashboards.
DAC defines dashboards as YAML or TSX files in a project directory, validates them with `dac validate`, and serves them locally with `dac serve`. It runs on Bruin's connection layer, so the databases Bruin already supports work here too, and it includes a semantic layer for defining metrics once. It is aimed at data teams who want dashboard changes to go through code review, whether a person or an agent wrote them.
- The semantic layer is the most useful part. Metrics and dimensions live in `semantic/` YAML and widgets reference them by name, so DAC generates the SQL and two dashboards are less likely to disagree about what revenue means.
- Dashboards are plain files checked against a published JSON schema in `schemas/dac`, and `dac validate --with-database` checks them against a live connection. That is the right gate for a pull request.
- Reusing Bruin connections means DAC carries no credential store or per-warehouse driver code of its own. The cost is the dependency on the Bruin CLI noted below.
- Query execution shells out to `bruin query`, so each widget query starts a child process and the Bruin binary must be on PATH. The README says nothing about the latency this adds or how Bruin's errors reach the user.
- The README describes no authentication for `dac serve`. Anyone who can reach the port can presumably see every dashboard and its query results, so sharing beyond a laptop is a separate project.
- AGPL-3.0 requires anyone who runs a modified DAC as a network service to offer their source to its users. Many companies will not adopt that for internal tooling without legal review.