bruin-data/dac
GitHub: bruin-data/dac
DAC 是一款使用 YAML 和 TSX 代码构建交互式数据仪表板的工具,通过语义层和 AI 集成简化开发与审查。
Stars: 661 | Forks: 28
# DAC
DAC 是一款仪表板即代码工具,用于从 YAML 和 TSX 定义、验证和提供仪表板。
- 使用 TSX 实现动态图表、选项卡、循环和条件判断。
- 通过 Codex 内置 AI 代理:实时与您的仪表板对话并获取更新。
- 通过 [Bruin](https://github.com/bruin-data/bruin) 支持所有主流数据库:Postgres、MySQL、Snowflake、BigQuery、Redshift、Databricks 等。
- 内置语义层:在 `semantic/` 中一次性定义指标和维度,即可在任何小组件中引用它们。DAC 会生成相应的 SQL 语句。
它专为 AI 代理以可靠且可审查的方式构建仪表板而设计。

## 安装
安装最新稳定版 DAC:
```
curl -LsSf https://getbruin.com/install/dac | sh
```
从 `main` 分支安装最新的边缘构建版本:
```
curl -LsSf https://getbruin.com/install/dac | sh -s -- --channel edge
```
DAC 使用您现有的 Bruin 连接,并通过调用 `bruin query` 来执行查询。当您的 `PATH` 中没有 `bruin` 时,安装脚本会先安装 Bruin CLI。
## 快速入门
创建一个新的入门项目:
```
dac init my-dashboards
cd my-dashboards
dac validate --dir .
dac validate --dir . --with-database
dac serve --dir . --open
```
该入门项目包含一个基于 SQL 的 YAML 仪表板、一个语义 YAML 仪表板和一个位于 `semantic/` 下的语义模型。
`dac init` 还会为 Claude 和 Codex 安装 DAC 内置的仪表板编写技能:
```
ls .claude/skills/create-dashboard/SKILL.md
ls .codex/skills/create-dashboard
```
对于现有项目,运行 `dac skills install --dir .`。
如果您克隆了仓库并已安装 `dac`,也可以运行一个内置的示例项目:
```
dac serve --dir examples/basic-yaml
```
## 示例
仓库在 [`examples/`](examples) 目录下包含四个独立的示例项目:
| 示例 | 展示内容 |
| --- | --- |
| [`examples/basic-yaml`](examples/basic-yaml) | 一个标准的 YAML 仪表板,带有过滤器、SQL 查询和查询文件。 |
| [`examples/basic-tsx`](examples/basic-tsx) | 一个 TSX 仪表板,使用加载时查询从数据库生成布局。 |
| [`examples/semantic-yaml`](examples/semantic-yaml) | 一个 YAML 仪表板,从 `semantic/` 读取语义模型并在后端编译小组件。 |
| [`examples/semantic-tsx`](examples/semantic-tsx) | 一个 TSX 仪表板,使用外部语义模型和后端语义查询编译。 |
## 项目结构
```
.
├── cmd/ CLI entrypoints
├── pkg/ Dashboard loading, semantic engine, server, query backends
├── frontend/ React frontend embedded into the DAC binary
├── docs/ VitePress documentation source
├── examples/ Runnable example projects for YAML, TSX, and semantic dashboards
├── resources/ README and documentation assets
└── testdata/ Internal fixtures used by tests
```
## 开发
```
make deps
make test
make build
make dev
```
主要的开发命令定义在 [`Makefile`](Makefile) 中。请使用 `make` 目标,而不是临时使用 `go build` 或 `npm run build` 命令,以确保前端嵌入和构建标志保持一致。
## 遥测
DAC 会发送匿名使用事件,以帮助我们了解哪些命令被使用以及它们在哪里失败。每个事件包含命令名称、运行时长、操作系统/架构、DAC 版本以及一个存储在 `~/.dac/telemetry.json` 中的匿名安装 ID。
我们不收集:
- SQL 查询、查询结果或行数
- 仪表板或小组件的内容、名称或文件路径
- 连接名称、主机、凭据、项目 ID 或数据集名称
- 任何环境变量或 shell 历史记录
要禁用遥测,请设置以下任一环境变量:
```
export TELEMETRY_OPTOUT=1
# 或行业标准:
export DO_NOT_TRACK=1
```
没有遥测写入密钥的构建(`make build` 的默认设置)是静默的,不会发送任何数据。
## 文档
- 文档源代码:[`docs/`](docs)
- 示例项目:[`examples/`](examples)
- 贡献指南:[`CONTRIBUTING.md`](CONTRIBUTING.md)
- 安全策略:[`SECURITY.md`](SECURITY.md)
## 许可证
AGPL-3.0-only。参见 [`LICENSE`](LICENSE)。
| TSX | YAML |
|---|---|
|
|
标签:AI代理, BI工具, Bruin集成, Codex集成, DevOps工具, EVTX分析, JSX, SQL, TSX, YAML, 交互式图表, 代码化仪表板, 代码示例, 仪表板工具, 动态内容, 可审查性, 多线程, 安全库, 数据分析, 数据库集成, 日志审计, 标准化仪表板, 系统审计, 语义层