Files
Migu2.0/MiGu.Server/appsettings.json
T
2026-07-27 14:29:46 +08:00

145 lines
4.7 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"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,
"ExecutablePath": "D:\\Code\\Products\\MIGU2.0\\SimpleLite\\SimpleLite.exe",
"WorkingDirectory": "D:\\Code\\Products\\MIGU2.0\\SimpleLite",
"Arguments": "",
"ReadinessTimeoutMs": 15000,
"ReadinessPollIntervalMs": 250,
"ProjectionPort": 8222,
"FollowParent": false
},
"Auth": {
"Users": {
"admin": { "Password": "admin" },
"ops": { "Password": "ops" }
}
},
"_comment_Ops": "运维操作真实下发映射(M4)。opCode → 'kind:Method'Method 必须是 SimpleLite 反射 [MethodMember] 的真实方法名(车辆 kind=car,见 Car.csOnlineCar/OfflineCar/DisableCar/EnableCar/Repair/Blown/Reset 等;任务 kind=mission)。运营白名单的 pause/resume/gohome/manualCharge 内核暂无一一对应方法——留空则仅记审计并向前端如实返回『未下发』,按现场内核能力填写后即真实生效。示例: 'ops.car.gohome': 'car:Reset'",
"Ops": {
"Dispatch": {
}
},
"_comment_Ota": "车辆 OTA:包与任务落盘 DataRootWatchDog:9776。拉包时车会 POST 到 WatchDog 配置的 serverIP:ReceivePort/upload-mdcs/*(默认 8000,与旧 Electron OTA 一致)。请把各车 watch_dog.json 的 serverIP 设为本机局域网 IP。",
"Ota": {
"DataRoot": "data/ota",
"WatchDogPort": 9776,
"ReceivePort": 8000,
"RequestTimeoutMs": 60000,
"UploadTimeoutMs": 600000,
"PublicBaseUrl": ""
},
"_comment_ReverseProxy": "sl-route 兜底 AnyAuthed(投影只读 + SSE)。管理面路径(map-edit / ai-config / reflection 写操作)单独拆路由挂 PlatformScope,防止运营账号经反代直达地图编辑与任意反射调用。",
"ReverseProxy": {
"Routes": {
"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-assistant-route": {
"ClusterId": "sl-cluster",
"AuthorizationPolicy": "PlatformScope",
"Order": -2,
"Match": { "Path": "/api/sl/projection/assistant/{**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" }
]
},
"sl-route": {
"ClusterId": "sl-cluster",
"AuthorizationPolicy": "AnyAuthed",
"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/" }
}
}
}
},
"Database": {
"Provider": "sqlite",
"SchemaMode": "Migrate",
"ApplyDataMigratorsOnStartup": true
},
"ConnectionStrings": {
"Platform": "Data Source=data/platform.db"
}
}