Files
orbit/docs/console.md

3.5 KiB
Raw Blame History

Orbit Console · 星轨控制台

Orbit 内置了一个不依赖 Node.js、外部 CDN 或额外文件挂载的管理控制台第一版。静态资源编译进 Orbit 二进制,入口为:

http://127.0.0.1:8080/console/

当前能力

  • 读取 /health/live、/health/ready 和 /version 展示服务、Schema 与工具链状态。
  • 通过用户选择的本地凭据 JSON 或手工 Token/队列 ID 调用现有授权 API。
  • 展示任务、定时计划、流程实例和结果订阅的最近摘要。
  • 点击任务查看任务详情、执行尝试时间线、最终结果和操作审计摘要。
  • 在具备对应权限时提交任务取消和安全重试,沿用服务端的版本校验、幂等键、队列范围和审计规则。
  • 点击定时计划查看当前版本、规则、下一次触发和触发记录;在具备 schedules:manage 权限时可暂停或恢复计划。
  • 点击流程实例查看当前权威状态、固定版本、步骤状态和事件时间线;步骤读取沿用 workflows:read,事件时间线没有 workflows:audit:read 时会明确显示权限提示。
  • 点击结果订阅查看冻结配置、游标、积压窗口和最近交付历史;页面不展示租约秘密,也不绕过 events:read / events:manage 权限。
  • 在具备 workflows:control 权限时,流程详情可以暂停、恢复或取消;操作原因、control_revision 和幂等键交给服务端做最终校验。
  • NEEDS_REVIEW 流程会显示按步骤类型划分的人工恢复入口:任务核查、步骤结论、继续、步骤重试、PENDING 接续和等待重建;每次提交都要求当前修订、证据引用和显式确认,服务端恢复 API 负责最终门控。
  • 在具备 events:manage 权限时,订阅详情可以启停订阅,并对 EXPIRED 交付追加次数预算后重试;原交付身份、已用次数和事件不会被页面重置。
  • 左侧五个模块是独立的控制台视图,使用 /console/#/overview、#/tasks、#/schedules、#/workflows 和 #/subscriptions 定位;切换视图不会把所有模块堆在一张长页面上。
  • 任务状态按 10 秒自动刷新;页面不会把凭据上传到独立服务,也不读取数据库。
  • 页面使用当前请求方的业务权限;没有权限的模块显示为空或等待权限,不绕过服务端授权。

本地打开

启动 Orbit 后直接访问 /console/。当前 Docker 开发环境可用:

http://127.0.0.1:8080/console/

点击“选择凭据 JSON”,选择 orbit-admin bootstrap 生成的私有凭据文件,例如 .local/local.credentials.json,再点击“连接”。文件只在浏览器内解析,Token 保留在当前页面会话中,不写入 Orbit 数据库。

安全边界

控制台不直接访问数据库,也不绕过 Bearer Token。取消和人工重试会使用当前任务版本生成一次性幂等键;网络结果不明时不要重复点击,应使用原始操作身份通过 API/SDK 核对。NEEDS_REVIEW 任务仍须使用带证据的核查 API/SDK 完成最终裁决。控制台不创建独立管理员身份,不支持跨命名空间聚合,不代替平台的权限与审计 API。

不能把业务 Token 长期放进浏览器本地存储,也不能让控制台直连 MySQL。计划版本发布、跨命名空间管理身份和其他高风险写操作仍应通过受保护 API/SDK 设计后再接入页面。流程恢复入口只调用已经定义的恢复 API,不自动猜测结果、不替操作者补齐证据,也不把冲突重试成“最新版本”。