mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-09-10 18:45:53 +00:00
a49a4e65d1
Two standalone Proxmox sites that reuse one short node name and one pasted install token still folded into a single host record: the token+hostname binding and the continuity store's hostname+token fallback both resolve identity without consulting the machine ID, so the second site's reports adopted the first site's host ID and the record flip-flopped between machines. Removing that collapsed record (the agent uninstaller does this on reinstall) then revoked the shared token because the still-used guard could only see one record, leaving every surviving agent rejected with 401 "Unauthorized access attempt" on /api/agents/agent/report - the new symptom reported on #1753 after the v6.4.2 retest. Qualify host token binding slots with the reporting machine's identity so two machines behind one token+hostname hold separate bindings, refuse to adopt a bound or continuity identity whose recorded machine ID disagrees with the report's, and rebuild bindings machine-qualified after token reloads. Reports without a machine ID keep the legacy binding shape and same-machine reinstalls keep their stable IDs. Regression coverage: a state-layer test proving two shared-token pve01 machines keep distinct stable identities, continuity-match tests for the machine guard, and an end-to-end router test walking the reporter's estate - both install patterns, alternating reports, uninstall and reinstall - asserting report auth never breaks and no token is revoked while its sibling site still uses it.