rbookki/lineagepatch
GitHub: rbookki/lineagepatch
LineagePatch 是一个基于 DataHub 元数据的的事件响应工作流工具,通过血缘分析将数据契约破坏转化为可审查的修复补丁。
Stars: 0 | Forks: 0
# LineagePatch
[](https://github.com/rbookki/lineagepatch/actions/workflows/ci.yml)
[](LICENSE)
[](https://docs.datahub.com/docs/features/feature-guides/mcp)
**从受损的数据契约到可解释、可审查的补丁。**
LineagePatch 是一个元数据感知的事件响应工作流。它从 DataHub 读取治理上下文,追踪下游影响范围,生成代码补丁,并可将已批准的调查结果发布回 DataHub,以便下一位响应者能够继承该决策。
专为 [Build with DataHub 黑客松](https://datahub.devpost.com/) 打造。

## 为什么开发它
重命名的字段可能会破坏相隔数跳的转换、Dashboard 和 ML 特征。这种破坏会立即显现,但修复它所需的上下文却分散在 schema、血缘关系、所有权、查询历史和团队知识中。
LineagePatch 将这项调查转化为一个受控的工作流:
1. **观察:** 通过官方 DataHub MCP Server 解析受影响的资产、受治理的 schema、所有权、使用情况和三跳血缘关系。
2. **推理:** 将事件信号与目录基准进行比较,并根据运营风险对下游路径进行排序。
3. **提议:** 生成兼容性补丁和 schema 契约更新,并将其与产生这些更新的证据相关联。
4. **安全执行:** 下载补丁以进行仓库审查,只有在明确批准后,才调用 `save_document` 将调查结果保存在 DataHub 中。
现场展示分析找到了**跨七个平台的 41 个下游资产**,包括三个关键路径和 14 个所有者身份。
## 30秒演示
Node.js 20 或更高版本是离线评审体验的唯一要求。
```
npm ci
npm run dev
```
打开 `http://127.0.0.1:4173`,选择 **Customer email field renamed**,然后选择 **Analyze impact**。当没有可用的实时 DataHub 连接时,应用程序将使用确定性的 DataHub 形状的 MCP fixture。
对于生产级别的构建:
```
npm run build
npm start
```
然后打开 `http://127.0.0.1:4174`。
[](https://render.com/deploy?repo=https://github.com/rbookki/lineagepatch)
托管的配置运行离线 MCP fixture,且不需要任何凭证。
## 使用 DataHub Core 运行
要求:推荐使用 Docker Desktop、Docker Compose v2 和 Python 3.11。
```
python3.11 -m venv .venv-datahub
.venv-datahub/bin/python -m pip install --upgrade pip wheel setuptools
.venv-datahub/bin/python -m pip install 'acryl-datahub==1.6.0.13' 'mcp-server-datahub==0.6.0'
.venv-datahub/bin/datahub docker quickstart --version stable -f datahub-compose.yml
.venv-datahub/bin/datahub init --username datahub --password datahub
.venv-datahub/bin/datahub datapack load showcase-ecommerce
npm ci
npm run dev
```
DataHub 将在 `http://localhost:9002` 打开,本地 Quickstart 凭证为 `datahub` / `datahub`。LineagePatch 从 `~/.datahubenv` 读取 GMS URL 和短期 token,通过 stdio 启动官方 MCP server,并将 token 保存在服务器上。
如果配置了 DataHub 但暂时不可用,分析将明确回退到 fixture,而不是导致演示中断。
## 已批准的回写
默认情况下,Mutation 工具是关闭的。为了演示针对 DataHub Core 的完整读取-推理-写入闭环:
```
DATAHUB_MCP_MUTATIONS=true npm run dev
```
运行实时分析,打开 **Evidence trail**,选择 **Publish to DataHub**,审查确切的范围,然后选择 **Approve write**。随后,服务器将使用以下参数调用官方的 `save_document` MCP 工具:
- 证据摘要和建议
- 受影响的 DataHub 资产 URN
- 提议的工件列表
- 安全决策和批准边界
自动分析从不调用 mutation 工具。在一个服务器会话中重复批准是幂等的,并返回第一个发布的文档。
## DataHub 集成
官方 MCP 客户端在 runtime 发现工具,并使用:
| 工具 | 用途 |
| --- | --- |
| `get_entities` | 解析源实体、所有权、标签和断言 |
| `list_schema_fields` | 将契约比较建立在受治理的字段基础之上 |
| `get_lineage` | 追踪直接和传递性的下游影响 |
| `get_dataset_queries` | 检查实际的使用证据 |
| `save_document` | 将已批准的事件记忆持久化回 DataHub |
支持本地 stdio 和 DataHub Cloud 流式 HTTP 传输。在 `.env` 中配置 DataHub Cloud:
```
DATAHUB_MCP_URL=https://.acryl.io/integrations/ai/mcp/
DATAHUB_MCP_TOKEN=your-service-account-token
DATAHUB_MCP_MUTATIONS=false
```
## 架构
```
flowchart LR
UI[Review workspace] --> API[LineagePatch API]
API --> MCP[Official MCP client]
MCP --> DH[DataHub MCP Server]
MCP -. offline fallback .-> FX[Deterministic MCP fixture]
DH --> CTX[Schema, lineage, owners, queries]
FX --> CTX
CTX --> PLAN[Evidence-grounded planner]
PLAN --> PATCH[Reviewable patch bundle]
PLAN --> GATE{Human approval}
GATE -->|approved| DOC[save_document]
DOC --> DH
```
## 输出示例
评委无需运行应用程序即可检查提议的工件:
- [兼容性 SQL](examples/models/staging/stg_customers.sql)
- [Schema 契约](examples/models/staging/stg_customers.yml)
- [便携式补丁包](examples/inc-2048-lineagepatch.diff)
- [已批准的事件记忆](examples/incident-memory.md)
## 透明度
三个传入的事件信号是现实的演示场景。在实时模式下,schema 字段、血缘关系、所有者、平台、健康信号和查询使用情况来自 DataHub `showcase-ecommerce` 目录。界面会分别标记 fixture 运行和实时 DataHub MCP 运行;回退永远不会作为实时数据呈现。
提议的代码不是自动的生产变更。在合并之前,它必须通过仓库审查和测试。
## 安全模型
- DataHub 凭证保留在服务器端,永远不会返回给浏览器。
- 只读工具自动运行;mutation 工具需要环境门控和产品内的批准步骤。
- 回写 endpoint 仅接受由服务器生成的缓存实时分析。
- 密钥、本地虚拟环境、构建输出和 `.env` 文件被排除在 Git 之外。
## 验证
```
npm test
npm run build
```
该仓库包含针对特定事件规划、MCP 协商、血缘响应和已批准事件记忆工件的单元测试。GitHub Actions 会在每个 pull request 中运行相同的检查。
## 项目结构
```
src/ React review workspace
server/ API, MCP adapters, planner, and write-back gate
tests/ Unit and MCP protocol tests
examples/ Proposed artifacts for judge review
media/ Submission screenshots
submission/ Devpost copy and three-minute demo script
datahub-compose.yml Reproducible DataHub Core environment
```
## 许可证
Apache License 2.0。参见 [LICENSE](LICENSE)。
标签:DataHub, GNU通用公共许可证, MITM代理, Node.js, 元数据, 数据治理, 数据血缘, 自动化攻击, 自动化补丁, 请求拦截, 逆向工具