2026-05-29 18:16:34 +08:00
|
|
|
|
{
|
|
|
|
|
|
"Logging": {
|
|
|
|
|
|
"LogLevel": {
|
|
|
|
|
|
"Default": "Information",
|
|
|
|
|
|
"Microsoft.AspNetCore": "Warning",
|
|
|
|
|
|
"Yarp": "Information"
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
"AllowedHosts": "*",
|
|
|
|
|
|
"Cors": {
|
|
|
|
|
|
"Origins": [
|
|
|
|
|
|
"http://localhost:5173",
|
|
|
|
|
|
"http://127.0.0.1:5173"
|
|
|
|
|
|
]
|
|
|
|
|
|
},
|
|
|
|
|
|
"Jwt": {
|
|
|
|
|
|
"Secret": "REPLACE_ME",
|
|
|
|
|
|
"Issuer": "migu.server",
|
|
|
|
|
|
"Audience": "migu.client",
|
|
|
|
|
|
"LifetimeMinutes": 1440
|
|
|
|
|
|
},
|
|
|
|
|
|
"Internal": {
|
|
|
|
|
|
"Token": "REPLACE_ME"
|
|
|
|
|
|
},
|
|
|
|
|
|
"_comment_SimpleLite": "登录后拉起 SimpleLite;改路径请编辑下方 SimpleLite 节点。诊断: http://localhost:8080/api/health/simplelite",
|
|
|
|
|
|
"SimpleLite": {
|
|
|
|
|
|
"Enabled": true,
|
2026-06-25 11:02:22 +08:00
|
|
|
|
"ExecutablePath": "D:\\Code\\Products\\MIGU2.0\\SimpleLite\\SimpleLite.exe",
|
|
|
|
|
|
"WorkingDirectory": "D:\\Code\\Products\\MIGU2.0\\SimpleLite",
|
2026-05-29 18:16:34 +08:00
|
|
|
|
"Arguments": "",
|
|
|
|
|
|
"ReadinessTimeoutMs": 15000,
|
|
|
|
|
|
"ReadinessPollIntervalMs": 250,
|
|
|
|
|
|
"ProjectionPort": 8222,
|
|
|
|
|
|
"FollowParent": false
|
|
|
|
|
|
},
|
|
|
|
|
|
"Auth": {
|
|
|
|
|
|
"Users": {
|
|
|
|
|
|
"admin": { "Password": "admin" },
|
|
|
|
|
|
"ops": { "Password": "ops" }
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
2026-06-08 16:09:29 +08:00
|
|
|
|
"_comment_Ops": "运维操作真实下发映射(M4)。opCode → 'kind:Method',Method 必须是 SimpleLite 反射 [MethodMember] 的真实方法名(车辆 kind=car,见 Car.cs:OnlineCar/OfflineCar/DisableCar/EnableCar/Repair/Blown/Reset 等;任务 kind=mission)。运营白名单的 pause/resume/gohome/manualCharge 内核暂无一一对应方法——留空则仅记审计并向前端如实返回『未下发』,按现场内核能力填写后即真实生效。示例: 'ops.car.gohome': 'car:Reset'",
|
|
|
|
|
|
"Ops": {
|
|
|
|
|
|
"Dispatch": {
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
2026-06-12 23:00:47 +08:00
|
|
|
|
"_comment_ReverseProxy": "sl-route 兜底 AnyAuthed(投影只读 + SSE)。管理面路径(map-edit / ai-config / reflection 写操作)单独拆路由挂 PlatformScope,防止运营账号经反代直达地图编辑与任意反射调用。",
|
2026-05-29 18:16:34 +08:00
|
|
|
|
"ReverseProxy": {
|
|
|
|
|
|
"Routes": {
|
2026-06-12 23:00:47 +08:00
|
|
|
|
"sl-mapedit-route": {
|
|
|
|
|
|
"ClusterId": "sl-cluster",
|
|
|
|
|
|
"AuthorizationPolicy": "PlatformScope",
|
|
|
|
|
|
"Order": -2,
|
|
|
|
|
|
"Match": { "Path": "/api/sl/projection/map-edit/{**catch-all}" },
|
|
|
|
|
|
"Transforms": [
|
|
|
|
|
|
{ "PathRemovePrefix": "/api/sl" }
|
|
|
|
|
|
]
|
|
|
|
|
|
},
|
|
|
|
|
|
"sl-aiconfig-route": {
|
|
|
|
|
|
"ClusterId": "sl-cluster",
|
|
|
|
|
|
"AuthorizationPolicy": "PlatformScope",
|
|
|
|
|
|
"Order": -2,
|
|
|
|
|
|
"Match": { "Path": "/api/sl/projection/ai-config/{**catch-all}" },
|
|
|
|
|
|
"Transforms": [
|
|
|
|
|
|
{ "PathRemovePrefix": "/api/sl" }
|
|
|
|
|
|
]
|
|
|
|
|
|
},
|
|
|
|
|
|
"sl-reflection-selection-route": {
|
|
|
|
|
|
"ClusterId": "sl-cluster",
|
|
|
|
|
|
"AuthorizationPolicy": "AnyAuthed",
|
|
|
|
|
|
"Order": -3,
|
|
|
|
|
|
"Match": { "Path": "/api/sl/projection/reflection/selection/{**catch-all}" },
|
|
|
|
|
|
"Transforms": [
|
|
|
|
|
|
{ "PathRemovePrefix": "/api/sl" }
|
|
|
|
|
|
]
|
|
|
|
|
|
},
|
|
|
|
|
|
"sl-reflection-write-route": {
|
|
|
|
|
|
"ClusterId": "sl-cluster",
|
|
|
|
|
|
"AuthorizationPolicy": "PlatformScope",
|
|
|
|
|
|
"Order": -1,
|
|
|
|
|
|
"Match": {
|
|
|
|
|
|
"Path": "/api/sl/projection/reflection/{**catch-all}",
|
|
|
|
|
|
"Methods": [ "POST", "PUT", "PATCH", "DELETE" ]
|
|
|
|
|
|
},
|
|
|
|
|
|
"Transforms": [
|
|
|
|
|
|
{ "PathRemovePrefix": "/api/sl" }
|
|
|
|
|
|
]
|
|
|
|
|
|
},
|
2026-05-29 18:16:34 +08:00
|
|
|
|
"sl-route": {
|
|
|
|
|
|
"ClusterId": "sl-cluster",
|
2026-06-08 16:09:29 +08:00
|
|
|
|
"AuthorizationPolicy": "AnyAuthed",
|
2026-05-29 18:16:34 +08:00
|
|
|
|
"Match": { "Path": "/api/sl/{**catch-all}" },
|
|
|
|
|
|
"Transforms": [
|
|
|
|
|
|
{ "PathRemovePrefix": "/api/sl" }
|
|
|
|
|
|
]
|
|
|
|
|
|
},
|
|
|
|
|
|
"vrender-route": {
|
|
|
|
|
|
"ClusterId": "vrender-cluster",
|
|
|
|
|
|
"Match": { "Path": "/vr/{**catch-all}" },
|
|
|
|
|
|
"Transforms": [
|
|
|
|
|
|
{ "PathRemovePrefix": "/vr" }
|
|
|
|
|
|
]
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
"Clusters": {
|
|
|
|
|
|
"sl-cluster": {
|
|
|
|
|
|
"Destinations": {
|
|
|
|
|
|
"sl1": { "Address": "http://127.0.0.1:8222/" }
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
"vrender-cluster": {
|
|
|
|
|
|
"Destinations": {
|
|
|
|
|
|
"vr1": { "Address": "http://127.0.0.1:8223/" }
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|