量潮数据云项目,用命令行、Provider 后端服务和 Flutter Studio 串起数据交付中容易打断进度的环节。
| 模块 | 语言 | 当前状态 |
|---|---|---|
src/cli |
Rust | 主力业务逻辑,qtcloud-data-cli v0.1.16 已发布到 crates.io;本地 [Unreleased] 已补充 doctor、process/catalog/transfer 记录闭环和 Specification envelope。 |
src/provider |
Go | Provider 后端骨架正在对齐 CLI;本地 [Unreleased] 已支持读取 Specification YAML、浏览/运行 Blueprint,并提供可持久化的 process job 记录。 |
src/studio |
Flutter | Studio 客户端骨架;本地 [Unreleased] 已对接 Provider 的 Blueprint 列表、详情、运行入口和 process job 详情。 |
cd src/cli
cargo build
cargo test
# 检查本机 DataOps 环境
cargo run -- doctor --no-failCLI 已覆盖的核心工作流:
clarify from-chat -> design contract/blueprint -> implement -> review/version -> process/transfer
本地 [Unreleased] 版本会把 process job、最终产物和 transfer 交付链接都落到 catalog,并提供 spec wrap / spec validate 固化 Specification YAML envelope,方便内部同事和 Provider 后端按文件交接。
更多命令见 src/cli/README.md。
cd src/provider
go test ./...
go run ./cmd/qtcloud-providerProvider 当前主要能力:
- Provider 接口骨架、Dropbox provider、S3 stub。
GET /blueprints和GET /blueprints/{name}:读取 CLI 生成的 Blueprint / Specification YAML。POST /blueprints/{name}/runs:按 Blueprint 中的 Pipeline 执行一次本地 run,并写入可持久化 process job。GET /process/jobs:查看 Provider 侧 process job 记录。GET /process/jobs/{id}:查看单个 run 的 step 输入、输出和状态。
读取 Specification 的目录优先级:SPEC_DIR -> DATA_ROOT/spec -> 当前目录 .quanttide/data/spec -> monorepo 中 CLI 默认输出目录 src/cli/.quanttide/data/spec。
Blueprint 是设计与实现之间的 YAML 中间规格,参考 AWS Step Functions 的状态机模型表达 start_at、states、next/end;implement 再把这个规格转换成 Python 等代码。CLI 本地 [Unreleased] 生成 Blueprint 时会默认写入 resource: builtin:copy,用于 Provider 端到端 smoke test;实际业务脚本生成后再替换为 python:<script> 等资源。Provider 执行器会读取 resource 字段,当前支持 builtin:copy 和受 PIPELINE_SCRIPT_DIR 限制的 python:<script> / bash:<script>。部署时可用 PIPELINE_INPUT_DIR 和 PIPELINE_WORK_ROOT 限制 run API 可读输入目录和可写工作目录,Provider 会解析真实路径以拒绝 symlink/junction 逃逸;PIPELINE_WORK_ROOT 不存在时会自动创建。
Provider job 默认持久化到 catalog:JOB_STORE_PATH -> CATALOG_DIR/provider-jobs.json -> DATA_ROOT/catalog/provider-jobs.json -> .quanttide/data/catalog/provider-jobs.json。
当前 v0.2.0 收口状态见 RELEASE_STATUS.md。
最小本地执行示例:
curl -X POST http://localhost:8080/blueprints/customer-chat/runs \
-H "Content-Type: application/json" \
-d '{"customer_id":"demo","input_path":"D:/tmp/raw.csv","work_dir":"D:/tmp/qtcloud-run"}'cd src/studio
flutter pub get
flutter test
flutter runStudio 当前用于给产品经理浏览数据蓝图和处理流程。本地 [Unreleased] 已通过 Provider API 读取 GET /blueprints、GET /blueprints/{name}、GET /process/jobs 和 GET /process/jobs/{id},并可在 Blueprint 详情页调用 POST /blueprints/{name}/runs 发起一次本地 run;Provider 不可用时保留本地样例兜底,但样例模式只用于浏览,不显示运行入口。
- crates.io:
qtcloud-data-cli最新发布版本0.1.16 - GitHub Release:
cli/v0.1.16提供 Linux 和 Windows 二进制包
Apache 2.0