0308490aef
Resolves the remaining Minor items from the 2026-05-15 review so the web-UI dashboard work has no open follow-ups: a real-HubConnection end-to-end test for the SignalR feed, stable mbproxy.admin.broadcast.* log-event names, keyboard/aria accessibility on the fleet table, frontend JS hardening (URL-decode guard, NaN guards, shared util.js), reconciler<->capture-registry coverage, throwing-sink and embedded-asset tests, broadcaster polish, and a soft upper bound on AdminPushIntervalMs. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
73 lines
2.1 KiB
JSON
73 lines
2.1 KiB
JSON
// mbproxy smoke-test configuration for the web-UI browser smoke tests.
|
|
// NOT a deployment config. The Resilience and Cache sections are intentionally
|
|
// omitted — the smoke run relies on their built-in defaults.
|
|
//
|
|
// Topology:
|
|
// * line-a / line-b → the dl205 simulator on 127.0.0.1:5020 (run-dl205-sim.ps1).
|
|
// line-a carries a 16-bit BCD tag, line-b a 32-bit BCD tag,
|
|
// so the connection-detail debug view has content in both
|
|
// widths. Both listeners bind and reach a live backend.
|
|
// * line-dead → an unreachable backend (192.0.2.1, TEST-NET-1, RFC 5737).
|
|
// The listener binds fine but every backend connect fails,
|
|
// so the row surfaces connect failures / heartbeat failures
|
|
// and exercises the dashboard's "problems only" filter.
|
|
{
|
|
"Mbproxy": {
|
|
"BcdTags": {
|
|
"Global": []
|
|
},
|
|
"Plcs": [
|
|
{
|
|
"Name": "line-a",
|
|
"ListenPort": 6020,
|
|
"Host": "127.0.0.1",
|
|
"Port": 5020,
|
|
"BcdTags": {
|
|
"Add": [
|
|
{ "Address": 1072, "Width": 16 }
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"Name": "line-b",
|
|
"ListenPort": 6021,
|
|
"Host": "127.0.0.1",
|
|
"Port": 5020,
|
|
"BcdTags": {
|
|
"Add": [
|
|
{ "Address": 1072, "Width": 32 }
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"Name": "line-dead",
|
|
"ListenPort": 6022,
|
|
"Host": "192.0.2.1",
|
|
"Port": 502
|
|
}
|
|
],
|
|
"AdminPort": 8080,
|
|
"AdminPushIntervalMs": 1000,
|
|
"Connection": {
|
|
"BackendConnectTimeoutMs": 2000,
|
|
"BackendRequestTimeoutMs": 2000,
|
|
"GracefulShutdownTimeoutMs": 5000,
|
|
"Keepalive": {
|
|
"Enabled": true,
|
|
"TcpIdleTimeMs": 30000,
|
|
"TcpProbeIntervalMs": 5000,
|
|
"TcpProbeCount": 4,
|
|
"BackendHeartbeatIdleMs": 10000,
|
|
"BackendHeartbeatProbeAddress": 0
|
|
}
|
|
}
|
|
},
|
|
"Serilog": {
|
|
"Using": [ "Serilog.Sinks.Console" ],
|
|
"MinimumLevel": { "Default": "Information" },
|
|
"WriteTo": [
|
|
{ "Name": "Console" }
|
|
]
|
|
}
|
|
}
|