fix(api): honor upstream docker repair success
This commit is contained in:
@@ -46,12 +46,13 @@
|
||||
- 新增安全 legacy SSH write 路由:只允許簡單 `docker restart <container>` 或 `{container}` placeholder,且必須能解析出安全 container name。
|
||||
- 將該路由轉進 AwoooP MCP Gateway `ssh_docker_restart/write`,注入 `trust_score=0.85`、MCP audit context、`auto_repair_executor` agent 與 deterministic run id。
|
||||
- 對 write scope 先投影短效 Gate 5 key `approved:auto_repair_policy`;`requires_approval=true` 時仍 fail-closed,不會繞過人工審批。
|
||||
- 若 alert labels 已明確標示 `repair_action=restarted` 且 `repair_result=success`,視為上游 host monitor 已完成修復,execute stage 記成功 no-op,避免二次 Docker restart。
|
||||
- 保留 read-only `ssh_diagnose` 原路徑;含 command substitution、pipe、fallback shell、systemd/prune 的複雜命令仍拒絕自動寫入。
|
||||
- `apps/api/migrations/awooop_awoooi_mcp_auto_repair_executor_docker_restart_2026-06-01.sql`
|
||||
- 將 `auto_repair_executor` agent contract 升到 v1.1。
|
||||
- 僅新增 `ssh_docker_restart/write` grant,邊界寫入 contract:只允許安全 Docker container restart,其他寫入工具仍不授權。
|
||||
- `apps/api/tests/test_auto_repair_service.py`
|
||||
- 補上 write MCP route、複雜 shell 封鎖與 Gate 5 approval projection 測試。
|
||||
- 補上 write MCP route、上游已修復 no-op、複雜 shell 封鎖與 Gate 5 approval projection 測試。
|
||||
|
||||
**驗證**:
|
||||
|
||||
@@ -60,7 +61,7 @@ PYTHONPATH=apps/api python -m py_compile apps/api/src/services/auto_repair_servi
|
||||
DATABASE_URL=sqlite+aiosqlite:///:memory: PYTHONPATH=apps/api python -m pytest apps/api/tests/test_auto_repair_service.py -q
|
||||
→ 26 passed
|
||||
DATABASE_URL=sqlite+aiosqlite:///:memory: PYTHONPATH=apps/api python -m pytest apps/api/tests/test_auto_repair_service.py apps/api/tests/test_approval_execution_mcp_audit.py -q
|
||||
→ 29 passed
|
||||
→ 30 passed
|
||||
production owner-fallback rollback check:
|
||||
apps/api/migrations/awooop_awoooi_mcp_auto_repair_executor_docker_restart_2026-06-01.sql
|
||||
→ migration rollback syntax ok with owner fallback
|
||||
|
||||
Reference in New Issue
Block a user