41 lines
2.0 KiB
Markdown
41 lines
2.0 KiB
Markdown
## Why
|
|
|
|
Host Agent 已经能够通过受限的内部协议为自身提交目标任务,但本地
|
|
Console 只能查看已经在本机 Runtime 中留下记录的任务,操作员仍需借助
|
|
Cloud Console 或 SDK 才能发起工作。这使最接近设备的运维入口无法完成
|
|
最基本的“选择本机设备并下发目标”的闭环。
|
|
|
|
## What Changes
|
|
|
|
- 在已登录的 Host Agent 本地 Console 的 Tasks 页面提供目标任务提交表单。
|
|
- 支持选择“由本 Host 自动选择设备”或一个当前注册的本地设备;提交始终
|
|
经既有 Host 自限定内部接口进入 Cloud 队列。
|
|
- 将成功创建的 Cloud task id 和可安全展示的失败原因反馈给本地操作员,
|
|
保持现有任务历史和执行页面的行为不变。
|
|
- 对非幂等的任务创建请求取消自动重试;网络结果不确定时明确提示操作员先
|
|
查询 Cloud 状态,避免一次点击被客户端重复排队。
|
|
- 复用现有本地账号、cookie session、CSRF 防护和默认 loopback Console
|
|
绑定;不新增 Cloud 公共任务提交权限、跨 Host 目标或入站 Cloud 连接。
|
|
|
|
## Capabilities
|
|
|
|
### New Capabilities
|
|
|
|
- `host-agent-console-task-submission`: 允许经过本地 Console 身份验证的
|
|
操作员向当前 Host 的 Cloud 队列提交目标任务,并安全反馈提交结果。
|
|
|
|
### Modified Capabilities
|
|
|
|
<!-- None. The existing Host-scoped Cloud protocol is reused without changing its contract. -->
|
|
|
|
## Impact
|
|
|
|
- `apps/device-host-agent/host_agent/web/` 与 `host_agent/client.py`: Tasks
|
|
页面、注入的 Host Agent 客户端依赖,以及安全的一次性提交语义。
|
|
- `apps/device-host-agent/host_agent/app.py`: 将已拥有的异步 Host 客户端
|
|
交给嵌入式 Console,生命周期仍由 Host Agent 统一管理。
|
|
- `apps/device-host-agent/tests/`: 覆盖登录、CSRF、目标选择、成功反馈、
|
|
Cloud 拒绝和传输失败。
|
|
- 依赖现有 `cloud-console-governance` 中的 Host 自限定任务提交接口;本
|
|
变更不修改 Cloud API、调度器、数据库或公开 SDK。
|