chainguard-dev/sdk
GitHub: chainguard-dev/sdk
Chainguard 平台的官方 SDK,提供 gRPC proto 定义和 Go 代码,用于集成其加密文档管理与 OSV 漏洞查询服务。
Stars: 2 | Forks: 26
# SDK
本仓库包含支持我们服务的公开 [gRPC](https://grpc.io/) proto,以及旨在简化与 Chainguard 平台集成的软件包。
## 更新 `*.proto` 文件
更新 `*.proto` 后,您需要更新对应的生成的 Go 代码。
### 使用 Docker(推荐)
在预装所有依赖的临时容器中运行 codegen:
```
./hack/update-codegen-docker.sh
```
这需要 Docker,但无需在本地安装 `protoc` 或其插件。
### 本地运行
```
./hack/update-codegen.sh
```
#### 前置条件
安装 `protoc` [v34.1](https://github.com/protocolbuffers/protobuf/releases/tag/v34.1):
我们目前要求 `protoc` 版本为 v34.1。
安装 `protoc` codegen 依赖:
```
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.36.11
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.6.1
go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway@v2.22.0
go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2@v2.22.0
```
## Argos 平台服务
`proto/platform/argos/v1` 软件包通过平台 endpoint 暴露两个 gRPC 服务。
### ArgosDocuments
`ArgosDocuments` 用于管理组织范围(organization-scoped)且经过客户端加密的文档。
根据具体操作,调用方需要具备 `CAP_ARGOS_DOCUMENTS_CREATE`、`CAP_ARGOS_DOCUMENTS_LIST` 或 `CAP_ARGOS_DOCUMENTS_DELETE` 权限之一。文档在上传前会在客户端进行加密;服务器永远不会持有明文。
### ArgosOSV
`ArgosOSV` 提供对私有 OSV 共享语料库的 OSV 格式漏洞查询访问。所有持有 `CAP_ARGOS_OSV_READ` 的 Argos 成员都能看到相同的记录集——没有针对每个组织的过滤。该服务暴露三个 RPC:
| RPC | HTTP | 描述 |
|-----|------|-------------|
| `Query` | `POST /argos/v1/osv/query` | 查询特定版本的 package 受到的 vulnerabilities |
| `QueryBatch` | `POST /argos/v1/osv/querybatch` | Query 的批量请求形式 |
| `GetVuln` | `GET /argos/v1/osv/vulns/{id}` | 通过 ID 获取单个 OSV 记录 |
记录以 [OSV schema](https://ossf.github.io/osv-schema/) 格式返回。
## Breaking Changes
虽然我们尽一切努力保持向后兼容性并避免 breaking changes,但我们无法保证未来对此 SDK 的更新完全没有 breaking changes。随着我们平台的演进和新功能的增加,可能有必要对 API 接口进行一些修改。我们建议在生产环境中锁定特定版本,并在部署前对更新进行彻底的测试。
标签:Chainguard, EVTX分析, gRPC, Python工具, 日志审计, 漏洞查询, 请求拦截