Files
orbit/docs/api/console-scope.md

3.3 KiB
Raw Permalink Blame History

控制台应用范围

此接口服务于内置控制台的单管理员,用于按应用环境读取列表、详情并执行已有管理操作;不是 SDK 的跨应用调用方式。业务服务继续使用自己应用的 Token 和队列。

查看范围元数据

GET /console/scope?after=<queue_id> 只接受登录 Cookie,返回 data:

{
  "entry": {
    "application_id": "11111111111111111111111111111111",
    "application": "sample-app",
    "namespace_id": "22222222222222222222222222222222",
    "namespace": "default",
    "environment": "test",
    "enabled": true
  },
  "queues": [{"id": "33333333333333333333333333333333", "name": "jobs"}],
  "can_switch": true
}

不指定范围头时返回账号原始应用及授权队列。队列按 ID 升序,每页最多 100 项,存在更多时返回 next,下次用 after=next;没有更多则省略。应用目录继续使用 GET /console/applications 的 50 项分页。名称全部来自数据库,ID 为授权身份,不按应用名称猜测关联。

显式选择应用环境

部署配置 ORBIT_CONSOLE_APPLICATION_ADMIN 指定的登录管理员可发送:

X-Orbit-Console: 1
X-Orbit-Namespace: 22222222222222222222222222222222

以上请求头只能搭配原登录 Cookie,不能搭配 Authorization。服务端不签发、不返回新业务 Token,不更改浏览器会话原始归属。部署配置为空或登录名不匹配时拒绝切换。

支持范围:

页面 请求 数据范围
任务执行 现有 /v1/tasks 列表、详情、历史及管理动作 所选命名空间 + 队列
定时计划 现有 /v1/schedules 查询、暂停/继续 所选命名空间 + 队列
流程实例 现有 /v1/workflows 查询、控制和人工恢复 所选命名空间,含流程固定版本所有队列
结果订阅 现有 /v1/subscriptions 查询、启停和交付重试 所选命名空间 + 队列,管理员可管理该范围内不同 SDK 凭据的已有订阅
保留策略 /console/retention、预览、导出 所选命名空间
归档作业 /console/archive/plans、jobs 及原管理动作 所选命名空间

队列选项仅对任务、计划、订阅生效。此桥接入口不提供创建任务/计划/订阅、发布定义、启动流程、发送信号、Worker 执行或结果消费权限。SDK 原有的权限与订阅归属校验不变。

每个业务事务重新核验管理员账号、原会话、绑定凭据有效性以及原/目标应用启用状态,再执行原有的资源归属、版本、幂等、核查证据和审计规则。管理审计操作者为 console:<user_id>,操作归入目标命名空间。读取其他范围的资源 ID 不会越权返回数据。不存在的范围、未授权范围不自动回退。

缺少 Cookie 或会话失效返回 401;不允许的范围切换、混用 SDK Bearer、跨站写操作返回 403;目标应用停用或资源不属于当前范围返回 404。非法范围 ID 返回 400。页面切换采用完整导航,旧详情和请求不会在新应用页面呈现;URL 只保留非敏感 ID。

任务列表沿用原有 SQL 筛选语义:请求其他应用的队列会得到空列表;该队列或任务的单条详情返回 404。页面会先核对 URL 中的队列归属,错误队列不会被当成正常空列表。