feat: add azure key vault resource discovery

This commit is contained in:
gongzhiyong
2026-05-25 17:41:43 +08:00
parent 23ec354eb5
commit e1b9de2a49
48 changed files with 1649 additions and 694 deletions
+1 -1
View File
@@ -38,7 +38,7 @@ Heicode 是一款覆盖软件生命周期的智能开发 Code 工具。它面向
| Heicode Manager / 浏览器控制台 | 辅助控制台,负责账号与安全、客户端下载、Git/云资源绑定、Agnet 部署、任务状态总览、模型余额与用量、审计与日志查看 |
| Agnet 平台 | 执行层,负责部署和运行子 Agnet,在任务推进过程中完成需求、开发、测试、修复、交付与部署,并回传日志、状态、事件和指标 |
| CodeGW | 内部模型网关与计费服务,普通用户不直接进入后台 |
| 密钥保管器 | OpenBao 实现,保存长期凭证,按审批和权限提供短期凭证租约 |
| 密钥保管器 | Azure Key Vault 实现,保存长期凭证引用,按审批和权限提供短期访问能力 |
说明:Heicode 客户端是用户主体验,用户不在网页上编码。Heicode Manager 是浏览器里的辅助控制台,承担资源、部署、状态、余额、审计和下载等辅助操作。真正持续推进任务的是 Heicode 调度下的 Agnet 执行闭环,Agnet 在过程中还可以调用已授权的 SK 工具和外部能力,最终完成交付与部署并把结果回传到客户端。
@@ -136,7 +136,7 @@
| 客户端 | 主对话体验、任务推进和高危审批 |
| Agnet 平台 | AKS 执行层 |
| CodeGW | 模型网关与用量 |
| OpenBao | 密钥保管器 |
| Azure Key Vault | 密钥保管器 |
补充说明:
@@ -170,4 +170,4 @@
- 信息密度适中,避免空泛大词。
- 主色与 Heicode 和客户端保持一致。
- 图片优先使用真实界面和流程,不使用无意义装饰图。
- 首页文案避免出现 CodeGW 后台、OpenBao 控制台、模型提供方配置等内部概念。
- 首页文案避免出现 CodeGW 后台、Azure Key Vault 控制台、模型提供方配置等内部概念。
@@ -12,7 +12,7 @@
https://code.xinghanlab.com
```
用户只需要登录 Heicode。普通用户不需要登录 CodeGW 后台,也不需要登录 OpenBao。
用户只需要登录 Heicode。普通用户不需要登录 CodeGW 后台,也不需要登录 Azure Key Vault。
## 第一步:登录 Heicode
+5 -5
View File
@@ -65,7 +65,7 @@ Heicode 是一款全流程智能开发 Code 工具。它让用户输入想法,
讲述:
用户不需要直接操作 CodeGW 后台,也不需要直接管理 OpenBao。所有操作都在 Heicode 和客户端内完成。
用户不需要直接操作 CodeGW 后台,也不需要直接管理 Azure Key Vault。所有操作都在 Heicode 和客户端内完成。
## Slide 5:核心能力
@@ -91,13 +91,13 @@ Heicode 是一款全流程智能开发 Code 工具。它让用户输入想法,
-> Heicode Manager
-> Agnet 平台
-> CodeGW
-> OpenBao
-> Azure Key Vault
-> Git / SK / 云资源
```
讲述:
客户端是主体验,Manager 是辅助控制台。Agnet 平台是执行层,执行过程中可调用 SK。CodeGW 是模型网关和计费服务。OpenBao 是密钥保管器。
客户端是主体验,Manager 是辅助控制台。Agnet 平台是执行层,执行过程中可调用 SK。CodeGW 是模型网关和计费服务。Azure Key Vault 是密钥保管器。
## Slide 7:安全模型
@@ -108,7 +108,7 @@ Heicode 是一款全流程智能开发 Code 工具。它让用户输入想法,
要点:
- Heicode 服务端数据库只保存 `secret_ref`。
- 长期密钥进入 OpenBao。
- 长期密钥进入 Azure Key Vault。
- 子 Agnet 只获得短期、最小权限凭证。
- 高危操作必须在客户端审批。
- 日志、Markdown、前端响应不包含明文密钥。
@@ -141,7 +141,7 @@ Heicode 是一款全流程智能开发 Code 工具。它让用户输入想法,
> 当前 MVP 先闭环三件事
1. Heicode、CodeGW、OpenBao 解耦部署。
1. Heicode、CodeGW、Azure Key Vault 解耦部署。
2. 资源绑定、Resource Grant、manifest 和密钥保管。
3. 客户端只登录 Heicode,只使用 Heicode 模型。
@@ -26,17 +26,17 @@ Heicode 是 SaaS 产品,不能把凭证管理转嫁给用户,也不能让密
用户可见名称:密钥保管器。
技术实现:OpenBao,兼容 Vault API。
技术实现:Azure Key Vault。生产环境中 Manager 通过 VM Managed Identity 访问 Key Vault,不在业务数据库保存明文密钥。
用户不需要直接登录 OpenBao,也不需要看到 OpenBao 控制台。
用户不需要直接登录 Azure Key Vault,也不需要看到 Key Vault 控制台。
## Secret Broker 流程
```text
用户绑定资源
-> Heicode 接收授权结果
-> Heicode Secret Broker 写入 OpenBao
-> OpenBao 返回或形成 secret_ref
-> Heicode Secret Broker 写入 Azure Key Vault
-> Azure Key Vault 返回或形成 azkv://... 形式的 secret_ref
-> Heicode DB 保存 secret_ref
-> 前端只展示脱敏引用和状态
```
@@ -87,7 +87,7 @@ Heicode 生成 Resource Grant
3. 禁止前端返回明文密钥。
4. 禁止在日志中打印密钥。
5. 禁止把长期云密钥注入子 Agnet。
6. 禁止把 OpenBao 暴露为普通公网入口。
6. 禁止把 Azure Key Vault 管理入口作为普通用户入口暴露。
7. 禁止把 CodeGW key 原文交给客户端长期保存。
## 用户侧解释
@@ -105,4 +105,4 @@ Heicode 生成 Resource Grant
| 日志 | 不包含 token、password、private key、access key |
| 子 Agnet | 不保存长期凭证 |
| 高危操作 | 有客户端审批记录 |
| OpenBao | 不对普通公网暴露 |
| Azure Key Vault | 普通用户不可直接进入;Manager 仅通过受控后端身份访问 |
@@ -1,8 +1,8 @@
# 07. CodeGW、OpenBao、Agnet 平台边界说明
# 07. CodeGW、Azure Key Vault、Agnet 平台边界说明
## 目标
本文用于讲清楚 Heicode 与 CodeGW、OpenBao、Agnet 平台之间的产品和技术边界,避免再次变成缝合式系统。
本文用于讲清楚 Heicode 与 CodeGW、Azure Key Vault、Agnet 平台之间的产品和技术边界,避免再次变成缝合式系统。
## 总体边界
@@ -10,7 +10,7 @@
|------|----------|----------------------|
| Heicode | 产品总入口,包含客户端主体验与 Manager 辅助控制台 | 是 |
| CodeGW | 模型网关、模型调用、余额、额度、用量日志 | 否 |
| OpenBao | 长期凭证保管、短期凭证租约 | 否 |
| Azure Key Vault | 长期凭证托管、密钥引用、后端受控读取 | 否 |
| Agnet 平台 | AKS 执行层、状态、日志、事件、指标 | 否 |
## Heicode 与 CodeGW
@@ -34,20 +34,20 @@ Heicode 不做:
> CodeGW 是 Heicode 的模型网关和计费底座,用户在 Heicode 中查看模型和用量,不直接使用 CodeGW 后台。
## Heicode 与 OpenBao
## Heicode 与 Azure Key Vault
Heicode 使用 OpenBao 的方式:
Heicode 使用 Azure Key Vault 的方式:
- 写入用户授权后的长期凭证。
- 保存和管理 `secret_ref`。
- 执行密钥 health、metadata、轮换、禁用、撤销。
- 执行密钥健康检查、metadata、轮换、禁用、撤销。
- 为高危操作申请短期凭证。
Heicode 不做:
- 在数据库保存明文密钥。
- 把 OpenBao token 交给前端。
- 把 OpenBao 作为普通公网服务暴露。
- 把 Azure Key Vault access token 交给前端。
- 把 Azure Key Vault 管理入口作为普通用户入口暴露。
产品口径:
@@ -86,7 +86,7 @@ Heicode 不传:
- 长期明文密钥。
- CodeGW key 原文。
- OpenBao root token。
- Azure Key Vault 管理凭据。
- 数据库密码。
产品口径:
@@ -117,7 +117,7 @@ Manager 主做:
- 选择模型提供方。
- 配置 CodeGW 渠道。
- 直接访问 OpenBao。
- 直接访问 Azure Key Vault。
- 直接保存长期云密钥。
Manager 不做:
@@ -144,5 +144,5 @@ Heicode 到 Agnet 平台真实部署 API 的完整联调仍可延期。
1. 普通用户只进入 Heicode。
2. 客户端只登录 Heicode。
3. CodeGW 独立服务运行。
4. OpenBao 只通过受控内网或后端访问。
4. Azure Key Vault 只通过 Manager 后端受控身份访问,普通用户不直接进入。
5. Agnet 平台接口只收结构化上下文和 `secret_ref`,不收长期明文密钥。
+1 -1
View File
@@ -104,7 +104,7 @@ macOS 注意:
2. 旧登录入口。
3. 第三方路由登录入口。
4. CodeGW 后台入口。
5. OpenBao 地址或 token。
5. Azure Key Vault 地址、access token 或密钥保管器后台信息。
6. 长期云密钥输入框。
7. 无法解释的个人 API key 自动复制。
+2 -2
View File
@@ -166,7 +166,7 @@
1. 不展示真实密钥。
2. 不进入 CodeGW 管理后台。
3. 不展示 OpenBao token。
3. 不展示 Azure Key Vault access token。
4. 不强调底层配置复杂度,强调用户流程。
5. 如果 Agnet 真实部署尚未联调,明确说当前展示的是 Heicode 侧 payload、manifest 和占位控制面。
@@ -174,4 +174,4 @@
话术:
> Heicode 是从想法到上线的智能开发工具。用户主要在客户端输入想法和继续推进任务,在 Manager 绑定 Git、文档、SK 和云资源并部署 Agnet。Heicode 生成子 Agnet 团队、角色和权限,密钥进入密钥保管器,子 Agnet 只拿短期凭证。Agnet 在执行中可以调用 SK 工具,最后完成交付与部署;CodeGW 提供模型、余额和用量,Heicode 展示日志、状态和审计。用户不需要进入 CodeGW 后台,也不需要管理 OpenBao,只在 Heicode 和客户端完成整个开发流程。
> Heicode 是从想法到上线的智能开发工具。用户主要在客户端输入想法和继续推进任务,在 Manager 绑定 Git、文档、SK 和云资源并部署 Agnet。Heicode 生成子 Agnet 团队、角色和权限,密钥进入密钥保管器,子 Agnet 只拿短期凭证。Agnet 在执行中可以调用 SK 工具,最后完成交付与部署;CodeGW 提供模型、余额和用量,Heicode 展示日志、状态和审计。用户不需要进入 CodeGW 后台,也不需要管理 Azure Key Vault,只在 Heicode 和客户端完成整个开发流程。
@@ -38,7 +38,7 @@ Heicode 不以后台菜单作为主体验。建议使用顶部轻量入口和主
- CodeGW 后台。
- 渠道管理。
- 模型供应商配置。
- OpenBao 控制台。
- Azure Key Vault 控制台。
- 模型提供方选择。
- 旧服务入口。
@@ -322,7 +322,7 @@ Heicode 只追问影响执行路径的少量问题:
## 文案规则
- 用“任务上下文”或“资源上下文”,不要把主流程叫成资源管理。
- 用“密钥保管器”,不用“OpenBao”作为普通用户标题。
- 用“密钥保管器”,不要用具体实现名作为普通用户标题。
- 用“客户端”,不用“本地模型提供方”。
- 用“模型与余额”,不用“CodeGW 后台”。
- 用“执行计划”,不用“控制面草案”。
@@ -334,7 +334,7 @@ Heicode 会复用之前的项目上下文、资源绑定和 Agnet 角色,生
## 口述时不要说
1. 让用户去 CodeGW 后台配置模型。
2. 让用户去 OpenBao 控制台管理密钥。
2. 让用户去 Azure Key Vault 控制台管理密钥。
3. 让客户端选择模型提供方。
4. 让用户手写复杂 manifest。
5. 把 tenant/project 当作当前产品主轴。
@@ -256,7 +256,9 @@ Heicode 通过服务端调用 CodeGW,并把普通用户需要的信息展示
### 5.5 密钥保管器
密钥保管器用于保存长期凭证。当前技术实现是 OpenBao。
密钥保管器用于保存长期凭证。当前技术实现是 Azure Key Vault。
生产环境中 Manager 使用 VM Managed Identity 访问 Azure Key Vault。用户绑定资源后,Manager 将敏感凭证写入 Key Vault,并在 Heicode 数据库中只保存 `azkv://<vault>/secrets/<name>` 形式的 `secret_ref`。
它负责:
@@ -334,7 +336,7 @@ Heicode 判断当前任务需要哪些上下文
用户不需要直接使用:
- CodeGW 后台。
- OpenBao 控制台。
- Azure Key Vault 控制台。
- Agnet 平台后台。
用户不应该看到:
@@ -342,7 +344,7 @@ Heicode 判断当前任务需要哪些上下文
- 模型提供方选择。
- 旧服务入口。
- 明文密钥。
- OpenBao token。
- Azure Key Vault access token。
- CodeGW 管理员配置。
## 十一、常见问题
+2 -2
View File
@@ -14,7 +14,7 @@
| [`04-platform-usage-guide.md`](./04-platform-usage-guide.md) | 登录平台和使用平台指南,面向真实用户上手 |
| [`05-ppt-copy.md`](./05-ppt-copy.md) | 产品 PPT 文案,面向路演、客户介绍和团队同步 |
| [`06-security-and-credential-management.md`](./06-security-and-credential-management.md) | 安全与凭证管理说明,解释密钥保管器、`secret_ref`、高危审批 |
| [`07-integration-boundaries.md`](./07-integration-boundaries.md) | CodeGW、OpenBao、Agnet 平台边界说明 |
| [`07-integration-boundaries.md`](./07-integration-boundaries.md) | CodeGW、Azure Key Vault、Agnet 平台边界说明 |
| [`08-client-guide.md`](./08-client-guide.md) | Heicode 客户端说明,强调只登录 Heicode、只使用 Heicode 模型 |
| [`09-demo-script.md`](./09-demo-script.md) | 5 分钟演示脚本,用于产品演示和录屏 |
| [`10-frontend-detail-spec.md`](./10-frontend-detail-spec.md) | 前端细节说明,覆盖 Heicode 和客户端页面、组件、状态、文案规则 |
@@ -37,7 +37,7 @@ Heicode 是一款面向全流程智能开发的 SaaS Code 工具。用户注册
- `Heicode Manager` 是浏览器里的辅助控制台,负责账号与安全、客户端下载、Git/云资源绑定、Agnet 部署、任务状态、余额与审计。
- 继续开发时,Heicode 会持续调用 Agnet 推进需求、开发、测试、修复和部署等子环节。
- Agnet 在执行过程中可以调用已授权的 SK 工具,最终完成交付与部署并把结果回传给客户端和 Manager。
- 用户侧叫 `密钥保管器`,技术实现可以说明是 OpenBao。
- 用户侧叫 `密钥保管器`,技术实现可以说明是 Azure Key Vault;Manager 通过 VM Managed Identity 访问,不要求普通用户进入 Key Vault 后台。
- 用户侧叫 `资源绑定`,不要叫 Git 来源。
- 客户端不出现 `模型提供方`、`旧服务入口`、`第三方路由入口`。
- CodeGW 是内部模型网关和计费服务,不作为普通用户产品入口。