From 38a8b01ca3cd72180dcfd2a680f08f7cb398e8ca Mon Sep 17 00:00:00 2001 From: "pulse-triage[bot]" <249995291+pulse-triage[bot]@users.noreply.github.com> Date: Sun, 25 Oct 2026 05:25:28 +0000 Subject: [PATCH] Exercise backup validation without bypassing empty-node protection The initial control is already protected when saved Proxmox nodes block an empty replacement. Model an installation with no Proxmox nodes, where invalid envelopes can reach the settings and credential writes. Keep the existing empty-node safeguard intact and use that legitimate empty inventory for legacy compatibility controls. Change-source: pulse-maintainer --- internal/config/export_import_validation_test.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/internal/config/export_import_validation_test.go b/internal/config/export_import_validation_test.go index e9e2a21cd7..bef0c84f94 100644 --- a/internal/config/export_import_validation_test.go +++ b/internal/config/export_import_validation_test.go @@ -81,7 +81,10 @@ func encryptImportValidationData(t *testing.T, data []byte) string { func seedImportValidationState(t *testing.T) *ConfigPersistence { t.Helper() cp := NewConfigPersistence(t.TempDir()) - if err := cp.SaveNodesConfig([]PVEInstance{{Name: "keep-node", Host: "https://keep.invalid:8006", TokenValue: "synthetic-node-secret", Disabled: true, VerifySSL: true}}, nil, nil); err != nil { + // Agent-only, Docker, VMware and NAS installations can legitimately have + // no Proxmox nodes. The separate existing empty-node deletion guard does + // not protect their credentials, settings and metadata from this path. + if err := cp.SaveNodesConfig(nil, nil, nil); err != nil { t.Fatal(err) } settings := DefaultSystemSettings()