feat(sense): add loopback NVR management console
Harness governance / validate (pull_request) Has been cancelled
Harness governance / validate (pull_request) Has been cancelled
This commit is contained in:
@@ -167,6 +167,42 @@ func TestValidateControlAPINonLoopbackNeedsSeparateRiskAcceptance(t *testing.T)
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateSenseConsoleSecurityBoundary(t *testing.T) {
|
||||
base := Config{
|
||||
HTTPAddress: "127.0.0.1:8080", DatabaseDriver: "postgres",
|
||||
DatabaseDSN: "postgres://sense-runtime@127.0.0.1/yovision?sslmode=disable",
|
||||
MediaMTXURL: "http://127.0.0.1:9997", ReconcileInterval: time.Second, ProbeInterval: time.Second,
|
||||
ControlAPIEnabled: true, ControlAuthMode: "static-sha256",
|
||||
ControlAuthFile: filepath.Join(t.TempDir(), "sense-auth.json"),
|
||||
ControlCursorKeyFile: filepath.Join(t.TempDir(), "sense-cursor.key"),
|
||||
ConsoleEnabled: true, ConsoleWebRTCBaseURL: "http://127.0.0.1:8889",
|
||||
}
|
||||
if err := base.Validate(); err != nil {
|
||||
t.Fatalf("valid loopback console rejected: %v", err)
|
||||
}
|
||||
withoutControl := base
|
||||
withoutControl.ControlAPIEnabled = false
|
||||
if err := withoutControl.Validate(); err == nil {
|
||||
t.Fatal("console without Control API was accepted")
|
||||
}
|
||||
remoteBind := base
|
||||
remoteBind.HTTPAddress, remoteBind.AllowNonLoopback = "0.0.0.0:8080", true
|
||||
remoteBind.ControlAllowInsecureHTTP = true
|
||||
if err := remoteBind.Validate(); err == nil {
|
||||
t.Fatal("console on non-loopback Sense listener was accepted")
|
||||
}
|
||||
for _, invalidURL := range []string{
|
||||
"http://media.example:8889", "ftp://127.0.0.1:8889", "http://127.0.0.1:8889/path",
|
||||
"http://127.0.0.1:8889?token=hidden", "http://user@127.0.0.1:8889",
|
||||
} {
|
||||
candidate := base
|
||||
candidate.ConsoleWebRTCBaseURL = invalidURL
|
||||
if err := candidate.Validate(); err == nil {
|
||||
t.Fatalf("invalid console WebRTC URL was accepted: %s", invalidURL)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateAuditRelaySecurityBoundary(t *testing.T) {
|
||||
base := Config{
|
||||
HTTPAddress: "127.0.0.1:8080", DatabaseDriver: "postgres",
|
||||
|
||||
Reference in New Issue
Block a user