Repository navigation
数据中台全阶段交付:Phase 1-4 七大业务服务 + 安全修复(升级见 #19) - #20
Merged
Merged
Conversation
- Go 1.17→1.26,grpc 1.84 / protobuf 1.36,jwt 迁 golang-jwt/v4(修 CVE-2020-26160) - 七牛 SDK 迁 go-sdk/v7(旧仓库已归档);olivere/elastic v7.0.32 - redis.NewRedis 新签名修复(3 处);合并 user/votes/common 三组重复 main - 参数解析适配新版 tag 规则:GET 类型补 form tag(.api 与 types.go 同步) - 全部 .api 补 syntax="v1" 并适配新版 goctl 语法 - server.sh 镜像升级:MySQL 8.4 / Redis 8 / etcd 3.5.21 / 官方 ES 7.17.28 - sql.sql 全库统一 utf8mb4,修复 3 处导入报错的存量语法问题 - 修复存量 bug:按次数计票 SQL 参数错位(Sprintf 参数不匹配)、ES 日志占位符、占位 URL 测试 - 新增 docs/UPGRADE.md(升级明细与验证记录)、docs/ROADMAP.md(数据中台演进路线图)
- 4 个 proto 契约定稿(数据源/元数据/数据服务API/资产目录) - goctl 1.10.2 生成 rpc 骨架(pb+_grpc 分离,config/example yaml 就绪) - docs/schema/phase1.sql:9 张 dc_ 前缀表 DDL(utf8mb4,beid 多租户) - docs/PHASE1.md:并行开发契约(目录/端口/架构约定/交付清单)
- datasource-rpc(:8085):数据源登记/探活,密码 AES-GCM 加密存储,with_secret 供内部服务换取 DSN - metadata-rpc(:8086):information_schema 采集(24表276列实测),contains/lineage 关系,BFS 血缘,定版快照与版本对比 - datasvc-rpc(:8087):OneService 模式数据 API 执行器——HMAC 签名→IP白名单→限流→授权→参数白名单→:name 占位→Redis 缓存→field_mask 出口脱敏(实测脱敏+cache_hit 全通过) - catalog-rpc(:8088):资产分类/登记(快照冗余)/申请审批状态机(乐观锁防并发重复审批) - 网关:4 个 .api 契约 + 30 个路由 + 28 个编排 logic + ServiceContext 装配 - 修复 4 处 RawFieldNames 反引号失配(新 go-zero 对少列查询扫宽 struct 严格校验) - 新增 42 个单元测试全部通过;docs/PHASE1.md 契约文档 Closes #14 Closes #15 Closes #16 Closes #17
- 3 个 proto 契约定稿 + goctl 骨架 + config/yaml - docs/schema/phase2.sql:7 张 dc_ 表(质量规则/任务/结果、指标/关系、标签对象/定义/值) - 端口 :8089/:8090/:8091
- quality-rpc(:8089):6 种质量规则(行数/非空/唯一/值域/一致性/波动),标识符正则白名单+数值占位符防注入,RunJob 真实跑库校验并落结果(实测 2 规则 2 通过) - metric-rpc(:8090):原子/派生指标体系,聚合白名单校验(非法 agg_type 实测拒绝),派生引用原子绑定与级联删除保护 - tag-rpc(:8091):标签对象/定义/打标/画像;规则 SQL 强校验(仅 SELECT 单语句+as object_id/as tag_value 别名,分号注入实测拒绝);打标实测 1001→yes/1002→no 画像正确 - 网关:3 个 .api 契约 + 21 路由 + 21 编排 logic + ServiceContext 装配 - docs/schema/phase2.sql:7 张 dc_ 表
- UsercheckMiddleware:恢复 x-user-id 与 JWT claims uid 的防越权比对(此前整段注释直接放行) - AdminCheckMiddleware:恢复 BasicAuth,凭据读 ADMIN_USER/ADMIN_PASS 环境变量,未配置 fail-closed 拒绝所有 - 新增 8 个单测;注意:客户端调用 votes/questions 等接口需携带 x-user-id 头
…P1) - JS-SDK ticket+签名与 OAuth2 登录迁移,jsapi 签名以微信官方向量锁定单测 - 修复存量 bug:Country 误取 City(2 处)、GetUserInfo 错误被掩盖、ticket 缓存 key 多租户串写 - TODO(回归):需真实公众号凭据验证 OAuth 与 JS-SDK(代码已标注) - README:新增数据中台能力区块与快速体验指引
This was referenced Oct 10, 2026
- 3 个 proto 契约 + goctl 骨架 + config(ai 含可配置 LlmConf) - docs/schema/phase3.sql:dc_sync_task/dc_ide_script/dc_ask_log 三表 - 端口 :8092/:8093/:8094
- job-rpc(:8092):同步任务管控面(DolphinScheduler OpenAPI 客户端以 httptest 22 用例锁定协议),DS 未配置/不可达部署返回明确原因(实测),触发/状态聚合/调度器运维视图 - ide-rpc(:8093):SQL 脚本版本管理(保存自动 version+1,实测 1→2),RunScript 安全闸(仅 SELECT 单语句,非 SELECT 实测拒绝,行数保护截断),经 DSN 真实执行(实测返回 base_app 数据 3ms) - ai-rpc(:8094):AI 问数语义层——关键词提取(停用词)→检索元数据+指标→打分排序→可选 LLM(OpenAI 兼容/可配置)→LLM 失败降级纯检索→全程 dc_ask_log 审计(实测:'投票相关的表'命中 votecount/viewcount 等实体) - 元数据检索增强:keyword 增加 comment 匹配(中文场景按表/列注释命中,实测修复'投票'检索盲点) - docs/schema/phase3.sql:dc_sync_task/dc_ide_script/dc_ask_log - 网关:3 个 .api + 13 路由 + 13 编排 logic Closes #22 Closes #23 Part of #13(#21 job-rpc 代码就绪,真实 DolphinScheduler 联调待实例)
This was referenced Oct 10, 2026
Closed
- 10 个 .api 的 @server 增加 jwt: Auth(datasvc 拆管理组与 execute 外部入口,后者由 app_key+HMAC 签名保护) - 14 组路由重新生成挂 WithJwt;无 token 实测 401、带 token 实测 200 - 中台管理接口(删数据源/执行质量任务/打标/IDE 等)不再匿名可调
- ai-rpc 新增 AskAndRun:检索→LLM 生成 SQL→经 ide 安全闸自动执行→返回数据(执行失败降级业务态,9 单测);网关 /ai/ask_and_run 路由与编排 - CI:GitHub Actions(build/vet 存量告警过滤/test -race/go mod verify) - 部署:docker-compose 一键全栈(11 服务+依赖 healthcheck+initdb 自动导表)+ 多阶段 Dockerfile + deploy/docker 11 份容器化配置 - Postman 中台集合:11 组 67 请求(自动 Bearer token + login Tests 联动) - 存量修复:etc/datacenter-api.example.yaml 的 questions.rpc 与 DataSourceRpc 连行(原文件复制即坏)
首跑失败原因:存量 pb 值传递告警有两种措辞('lock by value' 与 'copies lock value'/'copies lock'), 原过滤只匹配前者,导致 15 条存量告警误报为新增。本地复现验证过滤后零残留。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #14
Closes #15
Closes #16
Closes #17
Closes #22
Closes #23
Part of #13
Fixes #18(P0/P1;P2 pb 清理随下次重生成)
Ref #21(job-rpc 代码就绪,真实 DolphinScheduler 3.x 联调待实例)
交付总览(10 个 rpc 服务 + 网关 13 组路由)
Phase 1:数据中台最小闭环 ✅(实测)
Phase 2 ✅(实测)
Phase 3/4 ✅(代码+单测就绪,外部引擎联调待实例)
安全(#18)
质量数字
dc_表(phase1/2/3.sql),13 组网关路由(.api 真源同步)待真实环境联调(均有 TODO 标注 + issue)