forked from wangbo/easyai
feat(update): 发布双链路更新进度与线上验收审计
This commit is contained in:
+459
@@ -0,0 +1,459 @@
|
||||
[
|
||||
{
|
||||
"time": "2026-10-02T11:15:34.439Z",
|
||||
"path": "/api/app/update-jobs",
|
||||
"status": 200,
|
||||
"value": {
|
||||
"status": "success",
|
||||
"data": [],
|
||||
"message": "success"
|
||||
}
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:22:54.730Z",
|
||||
"path": "/api/app/update-jobs",
|
||||
"status": 500,
|
||||
"value": {
|
||||
"statusCode": 500,
|
||||
"timestamp": "2026-10-02T11:22:54.644Z",
|
||||
"path": "/app/update-jobs?active=true&limit=1",
|
||||
"message": "getaddrinfo EAI_AGAIN easyai-updater",
|
||||
"traceId": "yGyuK8eBkaXeNsMy",
|
||||
"appVersion": "3.22.0.20261002.1",
|
||||
"diagnosticCode": "RequestError"
|
||||
}
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:23:20.074Z",
|
||||
"path": "/api/app/update-capabilities",
|
||||
"status": 200,
|
||||
"value": {
|
||||
"status": "success",
|
||||
"data": {
|
||||
"mode": "legacy_watchtower",
|
||||
"jobApi": false,
|
||||
"executorReachable": false
|
||||
},
|
||||
"message": "success"
|
||||
}
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:23:26.733Z",
|
||||
"path": "/api/app/update",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:23:28.856Z",
|
||||
"path": "/api/health/update-ready",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:23:30.935Z",
|
||||
"path": "/api/health/update-ready",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:23:33.033Z",
|
||||
"path": "/api/health/update-ready",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:23:35.153Z",
|
||||
"path": "/api/health/update-ready",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:23:37.254Z",
|
||||
"path": "/api/health/update-ready",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:23:39.392Z",
|
||||
"path": "/api/health/update-ready",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:23:41.490Z",
|
||||
"path": "/api/health/update-ready",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:23:43.622Z",
|
||||
"path": "/api/health/update-ready",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:23:45.733Z",
|
||||
"path": "/api/health/update-ready",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:23:47.824Z",
|
||||
"path": "/api/health/update-ready",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:23:49.905Z",
|
||||
"path": "/api/health/update-ready",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:23:51.995Z",
|
||||
"path": "/api/health/update-ready",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:23:54.094Z",
|
||||
"path": "/api/health/update-ready",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:23:56.194Z",
|
||||
"path": "/api/health/update-ready",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:23:58.414Z",
|
||||
"path": "/api/health/update-ready",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:24:20.993Z",
|
||||
"path": "/api/health/update-ready",
|
||||
"status": 200,
|
||||
"value": {
|
||||
"status": "ok",
|
||||
"service": "easyai-server-main",
|
||||
"version": "3.22.0.20261002.2",
|
||||
"buildId": "3.22.0.20261002.2",
|
||||
"timestamp": "2026-10-02T11:24:20.920Z",
|
||||
"uptime": 42.086032874,
|
||||
"dependencies": {
|
||||
"mongo": "ok",
|
||||
"redis": "ok",
|
||||
"rabbitmq": "ok"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:25:52.477Z",
|
||||
"path": "/api/app/update-jobs",
|
||||
"status": 200,
|
||||
"value": {
|
||||
"status": "success",
|
||||
"data": [],
|
||||
"message": "success"
|
||||
}
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:25:58.757Z",
|
||||
"path": "/api/app/update-capabilities",
|
||||
"status": 200,
|
||||
"value": {
|
||||
"status": "success",
|
||||
"data": {
|
||||
"mode": "legacy_watchtower",
|
||||
"executor": "watchtower",
|
||||
"jobApi": true,
|
||||
"eventApi": true,
|
||||
"realtime": true,
|
||||
"executorReachable": true
|
||||
},
|
||||
"message": "success"
|
||||
}
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:25:58.910Z",
|
||||
"path": "/api/app/update-jobs",
|
||||
"status": 201,
|
||||
"value": {
|
||||
"status": "success",
|
||||
"data": {
|
||||
"id": "wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a",
|
||||
"idempotencyKey": "9bb11e4f-924a-4fd5-a501-86150a35e147",
|
||||
"action": "update",
|
||||
"source": "manual",
|
||||
"executor": "watchtower",
|
||||
"status": "queued",
|
||||
"phase": "queued",
|
||||
"message": "更新任务已保存,正在提交更新请求",
|
||||
"previousVersion": "3.22.0.20261002.1",
|
||||
"productVersion": "3.22.0.20261002.2",
|
||||
"createdAt": "2026-10-02T11:25:58.856Z",
|
||||
"updatedAt": "2026-10-02T11:25:58.856Z",
|
||||
"startedAt": "2026-10-02T11:25:58.856Z",
|
||||
"steps": [
|
||||
{
|
||||
"id": "queued",
|
||||
"title": "提交请求",
|
||||
"status": "running",
|
||||
"startedAt": "2026-10-02T11:25:58.856Z"
|
||||
},
|
||||
{
|
||||
"id": "applying",
|
||||
"title": "执行更新",
|
||||
"status": "pending"
|
||||
},
|
||||
{
|
||||
"id": "verifying",
|
||||
"title": "等待服务恢复",
|
||||
"status": "pending"
|
||||
},
|
||||
{
|
||||
"id": "finished",
|
||||
"title": "确认版本",
|
||||
"status": "pending"
|
||||
}
|
||||
],
|
||||
"components": []
|
||||
},
|
||||
"message": "success"
|
||||
}
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:25:59.020Z",
|
||||
"path": "/api/app/update-jobs/wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a/events",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:26:01.059Z",
|
||||
"path": "/api/app/update-jobs/wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a",
|
||||
"status": 200,
|
||||
"value": {
|
||||
"status": "success",
|
||||
"data": {
|
||||
"id": "wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a",
|
||||
"idempotencyKey": "9bb11e4f-924a-4fd5-a501-86150a35e147",
|
||||
"action": "update",
|
||||
"source": "manual",
|
||||
"executor": "watchtower",
|
||||
"status": "running",
|
||||
"phase": "applying",
|
||||
"message": "更新服务已开始执行,正在检查、下载并更新服务",
|
||||
"previousVersion": "3.22.0.20261002.1",
|
||||
"productVersion": "3.22.0.20261002.2",
|
||||
"createdAt": "2026-10-02T11:25:58.856Z",
|
||||
"updatedAt": "2026-10-02T11:25:58.893Z",
|
||||
"startedAt": "2026-10-02T11:25:58.856Z",
|
||||
"steps": [
|
||||
{
|
||||
"id": "queued",
|
||||
"title": "提交请求",
|
||||
"status": "completed",
|
||||
"startedAt": "2026-10-02T11:25:58.856Z",
|
||||
"finishedAt": "2026-10-02T11:25:58.893Z"
|
||||
},
|
||||
{
|
||||
"id": "applying",
|
||||
"title": "执行更新",
|
||||
"status": "running",
|
||||
"startedAt": "2026-10-02T11:25:58.893Z"
|
||||
},
|
||||
{
|
||||
"id": "verifying",
|
||||
"title": "等待服务恢复",
|
||||
"status": "pending"
|
||||
},
|
||||
{
|
||||
"id": "finished",
|
||||
"title": "确认版本",
|
||||
"status": "pending"
|
||||
}
|
||||
],
|
||||
"components": []
|
||||
},
|
||||
"message": "success"
|
||||
}
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:26:01.259Z",
|
||||
"path": "/api/app/update-jobs/wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a/events",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:26:03.159Z",
|
||||
"path": "/api/app/update-jobs/wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:26:03.288Z",
|
||||
"path": "/api/app/update-jobs/wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a/events",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:26:05.239Z",
|
||||
"path": "/api/app/update-jobs/wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:26:05.338Z",
|
||||
"path": "/api/app/update-jobs/wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a/events",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:26:07.353Z",
|
||||
"path": "/api/app/update-jobs/wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:26:07.462Z",
|
||||
"path": "/api/app/update-jobs/wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a/events",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:26:09.548Z",
|
||||
"path": "/api/app/update-jobs/wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:26:09.746Z",
|
||||
"path": "/api/app/update-jobs/wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a/events",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:26:11.619Z",
|
||||
"path": "/api/app/update-jobs/wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:26:11.842Z",
|
||||
"path": "/api/app/update-jobs/wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a/events",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:26:13.722Z",
|
||||
"path": "/api/app/update-jobs/wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:26:13.978Z",
|
||||
"path": "/api/app/update-jobs/wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a/events",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:26:15.817Z",
|
||||
"path": "/api/app/update-jobs/wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:26:15.916Z",
|
||||
"path": "/api/app/update-jobs/wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a/events",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:26:17.930Z",
|
||||
"path": "/api/app/update-jobs/wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:26:18.136Z",
|
||||
"path": "/api/app/update-jobs/wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a/events",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:26:20.053Z",
|
||||
"path": "/api/app/update-jobs/wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:26:20.233Z",
|
||||
"path": "/api/app/update-jobs/wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a/events",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:26:22.159Z",
|
||||
"path": "/api/app/update-jobs/wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:26:22.331Z",
|
||||
"path": "/api/app/update-jobs/wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a/events",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:26:24.287Z",
|
||||
"path": "/api/app/update-jobs/wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:26:24.428Z",
|
||||
"path": "/api/app/update-jobs/wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a/events",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:26:26.401Z",
|
||||
"path": "/api/app/update-jobs/wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:26:26.647Z",
|
||||
"path": "/api/app/update-jobs/wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a/events",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:26:28.491Z",
|
||||
"path": "/api/app/update-jobs/wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:26:28.654Z",
|
||||
"path": "/api/app/update-jobs/wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a/events",
|
||||
"status": 502
|
||||
},
|
||||
{
|
||||
"time": "2026-10-02T11:27:02.209Z",
|
||||
"path": "/api/app/update-jobs/wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a",
|
||||
"status": 200,
|
||||
"value": {
|
||||
"status": "success",
|
||||
"data": {
|
||||
"id": "wt-91612f117537604c18fc41bf214d06a8b0aeaa4956b2c42aad738d657c5f369a",
|
||||
"idempotencyKey": "9bb11e4f-924a-4fd5-a501-86150a35e147",
|
||||
"action": "update",
|
||||
"source": "manual",
|
||||
"executor": "watchtower",
|
||||
"status": "succeeded",
|
||||
"phase": "finished",
|
||||
"message": "更新完成,目标版本和核心服务均已确认可用",
|
||||
"previousVersion": "3.22.0.20261002.1",
|
||||
"productVersion": "3.22.0.20261002.2",
|
||||
"createdAt": "2026-10-02T11:25:58.856Z",
|
||||
"updatedAt": "2026-10-02T11:26:41.594Z",
|
||||
"startedAt": "2026-10-02T11:25:58.856Z",
|
||||
"steps": [
|
||||
{
|
||||
"id": "queued",
|
||||
"title": "提交请求",
|
||||
"status": "completed",
|
||||
"startedAt": "2026-10-02T11:25:58.856Z",
|
||||
"finishedAt": "2026-10-02T11:25:58.893Z"
|
||||
},
|
||||
{
|
||||
"id": "applying",
|
||||
"title": "执行更新",
|
||||
"status": "completed",
|
||||
"startedAt": "2026-10-02T11:25:58.893Z",
|
||||
"finishedAt": "2026-10-02T11:26:39.560Z"
|
||||
},
|
||||
{
|
||||
"id": "verifying",
|
||||
"title": "等待服务恢复",
|
||||
"status": "completed",
|
||||
"startedAt": "2026-10-02T11:26:39.560Z",
|
||||
"finishedAt": "2026-10-02T11:26:41.594Z"
|
||||
},
|
||||
{
|
||||
"id": "finished",
|
||||
"title": "确认版本",
|
||||
"status": "completed",
|
||||
"startedAt": "2026-10-02T11:26:41.594Z",
|
||||
"finishedAt": "2026-10-02T11:26:41.594Z"
|
||||
}
|
||||
],
|
||||
"components": [],
|
||||
"finishedAt": "2026-10-02T11:26:41.594Z"
|
||||
},
|
||||
"message": "success"
|
||||
}
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user