使用指南
Specification
Lattice Hub 生态共享的 protobuf / gRPC 契约层,覆盖服务、配置、九类治理、安全身份与 MCP。
Specification(仓库 lattice-hub/specification)是 Lattice Hub 的跨组件契约层:它定义消息、gRPC 接口与 Thin SDK(Sidecar Session / TargetService)契约,不负责具体运行时实现。pole-control-plane 是主要服务端实现;Rust SDK、Thin SDK、Pole Sidecar、Controller 与兼容协议适配层作为客户端或数据面消费同一套 wire contract。
在产品中的位置
| 角色 | 职责 |
|---|---|
| Specification | 定义 api/v1 protobuf、错误码、Discover/Config 请求类型与治理 release 枚举 |
| Control Plane | 实现服务端、存储、缓存、鉴权与多协议入口 |
| SDK / Sidecar / Controller | 按契约发起发现、配置、凭证或消费 active 视图 |
契约存在不等于每个 runtime 都实现了全部字段。接入前应对照目标组件文档确认能力矩阵。
模块覆盖
| 目录 | 内容 |
|---|---|
api/v1/model | Namespace、通用类型、响应、错误码 |
api/v1/service_manage | 服务、实例、客户端、契约、心跳、DiscoverGRPC |
api/v1/config_manage | 配置文件与 ConfigGRPC |
api/v1/traffic_manage | 路由、限流、泳道、无损、镜像、Mock;含 RateLimit gRPC |
api/v1/fault_tolerance | 熔断、故障探测 |
api/v1/security | 管理鉴权、调用鉴权、Workload 身份凭证 |
api/v1/ai | MCP Server / Tool 模型(mcp.proto) |
治理规则发布类型与产品九类能力对齐:Route、RateLimit、CircuitBreaker、FaultDetect、Lane、Lossless、TrafficSecurity、TrafficMirror、TrafficMock。
主要协议入口
| 契约 | 作用 | 控制面默认端口 |
|---|---|---|
DiscoverGRPC | 注册/发现实例、拉取多类规则与契约 | 8091 |
ConfigGRPC | 配置创建、更新、发布与发现 | 8093 |
WorkloadCredentialService | 工作负载凭证签发/续期,与控制面管理鉴权分离 | 由控制面配置决定 |
RateLimitGRPCV2 | 限流配额相关 | 由限流组件/控制面配置决定 |
| MCP proto | Server/Tool 资源模型;管理 API 在控制面 HTTP 侧 | 8090 / MCP SSE |
Discover 可请求的资源类型包括 Namespaces、Services、Instances、Service Contracts、九类治理规则、Service Identity 等。配置发现覆盖 Config File、File Names、Groups。
AI Native 边界
mcp.proto定义 MCP Server 与 Tool 元数据;没有把 MCP 执行引擎放进 specification。- A2A Agent 在 specification 中主要通过鉴权资源枚举(如
A2AAgentResources)出现;完整 Registry 消息与 HTTP API 在 control-plane 实现。 - 不要把 specification 描述成 Agent Runtime。
安全与身份约定
- 管理鉴权(用户/策略)与工作负载凭证分离。
- Discover 可下发 identity descriptor / trust bundle;凭证通过独立
WorkloadCredentialService获取。 - 数据面凭证 Header 约定为
x-pole-workload-credential,不得与 Console/API 管理 token 混用。
多语言消费
当前仓库可验证的构建入口:
| 语言 | 入口 | 版本事实 |
|---|---|---|
| Go | cd source/go && bash build.sh | Go 1.19;module github.com/pole-io/specification |
| Rust | cd source/rust && bash build.sh | crate pole-specification 0.1.0 |
| Java | README 仍写 source/java | 当前仓库无 Java 源码目录;勿写死 v1.3.0 为已发布事实 |
根 VERSION 为 0.1.0。官网与依赖声明应以仓库真实版本为准,而不是 README 历史示例。