feat: add embedded Orbit console

This commit is contained in:
2026-09-21 01:05:38 +08:00
parent bf76f13430
commit 05ebc812df
10 changed files with 324 additions and 1 deletions

View File

@@ -34,6 +34,10 @@
已按用户要求推送仓库 `main` 及 `v0.1.0` 接入版本,独立 SDK 标签为 `sdk/go/v0.1.0`,供业务项目直接 `go get`。两个标签固定提交 `0e8b2ef2975df6b55f2240dd14eda83adf30ea94`;仓库外空模块缓存下载、固定版本、无 `replace` 编译、HTTP smoke 和校验和验证已通过,见[远端发布报告](reports/phase-7-sdk-remote-release.md)。本机验证沿用系统网络代理及公开 Go 模块代理,保持 sumdb 校验。该交付不关闭上方目标环境及完整跨版本生产验收项。
### 控制台第一版
已将 [Orbit Console](console.md) 编译进服务端,入口为 `/console/`。第一版读取健康、版本、任务、计划、流程和结果订阅接口,支持本地凭据 JSON、响应式总览和有界自动刷新;不直接访问数据库,也不绕过现有 Bearer Token 与动作范围。独立管理员身份、跨命名空间聚合及写操作在管理 API 与权限模型明确后再接入。
## 2. 持续推进方式
每个阶段按以下顺序推进:

View File

@@ -30,6 +30,7 @@
| [流程状态时间线](api/workflow-events.md) | 原始流程/步骤/信号状态事件、分页和历史详情 |
| [接口手册](api/README.md) | 实际接口状态、调用说明与后续接口规划 |
| [SDK 与场景](sdk/README.md) | 可运行示例、接入方法及分阶段 SDK 交付 |
| [Orbit Console](console.md) | 内置控制台、本地打开方式与权限边界 |
## 已确认的决策

31
docs/console.md Normal file
View File

@@ -0,0 +1,31 @@
# Orbit Console · 星轨控制台
Orbit 内置了一个不依赖 Node.js、外部 CDN 或额外文件挂载的管理控制台第一版。静态资源编译进 Orbit 二进制,入口为:
```text
http://127.0.0.1:8080/console/
```
## 当前能力
- 读取 `/health/live`、`/health/ready` 和 `/version` 展示服务、Schema 与工具链状态。
- 通过用户选择的本地凭据 JSON 或手工 Token/队列 ID 调用现有授权 API。
- 展示任务、定时计划、流程实例和结果订阅的最近摘要。
- 任务状态按 10 秒自动刷新;页面不会把凭据上传到独立服务,也不读取数据库。
- 页面使用当前请求方的业务权限;没有权限的模块显示为空或等待权限,不绕过服务端授权。
## 本地打开
启动 Orbit 后直接访问 `/console/`。当前 Docker 开发环境可用:
```text
http://127.0.0.1:8080/console/
```
点击“选择凭据 JSON”,选择 `orbit-admin bootstrap` 生成的私有凭据文件,例如 `.local/local.credentials.json`,再点击“连接”。文件只在浏览器内解析,Token 保留在当前页面会话中,不写入 Orbit 数据库。
## 安全边界
当前版本是管理查询控制台,不提供独立管理员账号、SSO、跨命名空间聚合或直接操作数据库。所有任务/计划/流程/订阅读取仍经过现有 Bearer Token、动作和队列范围校验;敏感凭据不进入页面源码。
下一阶段增加写操作前,应先补独立的管理身份与权限模型,再接入取消、重试、暂停、恢复、交付重试和审计操作。不能把业务 Token 长期放进浏览器本地存储,也不能让控制台直连 MySQL。