fix: isolate provider egress tunnel diagnostics
This commit is contained in:
@@ -289,6 +289,10 @@ Web 哨兵的首条生产 canary 应覆盖 `workbench-dsflash-go-tool-call-10x`
|
||||
|
||||
provider egress tunnel 生命周期至少应记录:provider proxy 收到 client 请求、发出 `egress_tcp_open`、core 确认 opened、core connect failed/timeout、remote close、本地 open timeout、client close、pending buffer 超限和 idle close。日志和受控摘要必须包含 `providerId`、`connectionId`、目标 `host`/`port`、`method`、`ageMs`、`pendingBytes` 和低基数 failureKind;不得记录 TCP payload、PostgreSQL DSN 密码、HTTP Authorization、Secret、token 或完整业务正文。
|
||||
|
||||
针对 GitHub release、k3s installer、dependency pull 等大二进制下载,egress tunnel 观测与控制面观测必须分离:provider labels 至少分别暴露 `host.ssh.tcp-pool` readiness 与 egress active/pending/opened/stale tunnel 数,CLI 必须提供独立的 egress drill-down。egress drill-down 只能展示目标 host/port、路径摘要和 query key 摘要,不得展示 URL credential、header、token 或 query value;同时必须保留最近关闭 tunnel 的有界生命周期摘要,用于确认中断下载后的自动回收。
|
||||
|
||||
backend-core 向 provider WebSocket 写入大流量 `egress_tcp_data` 时,必须避免单个下载流无界挤占 control/dispatch 消息;实现可以使用独立通道、优先级队列、节流/yield 或等价 backpressure 策略,但验收必须证明大文件下载期间 `trans <provider> argv true` 仍可在可接受时间内返回。下载中断、provider 断开或发送通道关闭时,core 侧必须有有界时间内的 read/write loop 退出日志与 active connection drain 证据。
|
||||
|
||||
`server start|stop|rebuild|restart` 等创建 `.state/jobs` 的命令默认必须返回 async job 摘要,而不是完整 JSON payload、完整 command、完整 runtime env 或 stdout/stderr。摘要至少包含 job id、目标 service、当前状态、stdout/stderr 路径、`job status` 查询命令和必要的 `server logs`/`server status` 后续命令。完整结构只能通过 `--full`/`--raw` 或 `job status <id>` 渐进展开。`job` 与常见自然输入 `jobs`、`status|get|read` 应指向同一受控状态入口,避免调用者因为别名缺失退回手工文件读取。
|
||||
|
||||
#### 6.9.1 目标架构图
|
||||
|
||||
Reference in New Issue
Block a user