stackql/stackql
GitHub: stackql/stackql
一个用 SQL 语义统一查询、配置和操作多云及 SaaS 资源的开源框架。
Stars: 838 | Forks: 79
[![logo]][homepage]
![badge1]
![badge2]
![badge3]
![badge4]









### 使用 SQL 部署、管理和查询云资源,并与 API 交互
## 关于本项目
[__StackQL__][homepage] 是一个使用 Golang 构建的开源项目,允许您使用 SQL 语义创建、修改和查询不同本地及远程接口中的服务和资源状态。此类接口通常包括(但不限于)云和 SaaS 提供商(Google、AWS、Azure、Okta、GitHub 等)。
[__阅读文档 »__][docs] [提交 Issue][issues] · [功能请求][features] · [开发者指南][developers] · [自带 Provider][registrycont]
  ### 工作原理 StackQL 是一个独立应用程序,可在客户端模式下使用(通过 __`exec`__ 或 __`shell`__),也可在服务器模式(__`srv`__)下通过 Postgres wire protocol 客户端(如 `psycopg2` 等)进行访问。 StackQL 解析 SQL 语句并将其转换为对(云)资源提供商的 API 请求。然后执行 API 调用并将结果返回给用户。 StackQL 的 Provider 接口通常在 Provider 规范的 OpenAPI 扩展中定义。这些定义随后用于生成 SQL schema 和 API 客户端。Provider 定义的源代码存储在 [__StackQL Registry__][registry] 中。Provider 交互的语义定义在 [我们的 `any-sdk` 库](https://github.com/stackql/any-sdk) 中。有关具体实现的更多细节,请参阅 [本地的 `AGENTS.md` 文件](/AGENTS.md) 以及 [`any-sdk` 的相关文件](https://github.com/stackql/any-sdk/blob/main/AGENTS.md)。
StackQL 上下文图
以下上下文图从高层次描述了 StackQL 的架构: ``` flowchart LR subgraph StackQL direction BT subgraph ProviderDefs Registry[Provider Registry Docs] end subgraph App Proc[$ stackql exec\n$ stackql shell\n$ stackql srv] style Proc fill:#000,stroke:#000,color:#fff,text-align:left; %% ,font-family:'Courier New', Courier, monospace end end User((User)) <--> StackQL <--> Provider[Cloud Provider API] ProviderDefs --> App ``` 更详细的设计文档可以在 [这里][designdocs] 找到。