Pulse/internal
rcourtman 983a89326f Block in-app self-update on the Pro binary to prevent silent downgrade
The in-app updater and install.sh both fetch the public community build from
github.com/rcourtman/Pulse. On non-Docker Pro installs (systemd, proxmoxve,
source) the "Apply Update" button was live, so applying an update replaced the
separately compiled Pro binary with community and silently stripped Audit,
RBAC, Reporting, and SSO from a paying customer. Docker was already blocked;
nothing else was.

Add a dependency-free pkg/edition marker (defaults to community) that the Pro
binary flips via enterpriseruntime.Initialize, mirroring the existing
coreaudit.SetLogger / server.SetBusinessHooks registration seam. ApplyUpdate
now refuses when the edition is Pro, pointing at the Private Release Access
portal (https://pulserelay.pro/download.html) and the install.sh --archive
path. The gate keys off the compiled binary, not license state: a community
binary with an active license still self-updates as before.

The update banner hides the in-app apply affordance and shows portal
instructions for the Pro runtime, keyed off the existing runtime-identity
signal (runtime.build) rather than a new payload field, so nothing extra is
plumbed through the version API and the frontend reuses the canonical
"which binary am I" contract. The backend gate is the hard guarantee; the
banner is the UX layer.

Guard 2 of the Pro download/update experience spec.
2026-07-08 10:02:04 +01:00
..
actionplanner Stabilize action plan drift hashing 2026-06-13 20:49:27 +01:00
agentcapabilities feat(mcp): add additive fleet-context filtering 2026-07-03 18:01:05 +01:00
agentcontext Add discovery readiness to Assistant context 2026-06-04 21:56:36 +01:00
agentexec Add governed Docker and Podman lifecycle actions 2026-06-12 21:17:58 +01:00
agenttls
agentupdate Allow local Pulse HTTP agent URLs 2026-07-03 00:24:40 +01:00
ai Fix Gemini Patrol tool-call readiness 2026-07-06 23:01:16 +01:00
alerts Let explicit disk temperature overrides beat per-type defaults 2026-07-07 23:15:59 +01:00
api Serve legacy 3-segment OIDC SSO login and callback paths 2026-07-08 08:15:03 +01:00
bootstrap
cloudcp chore(cloudcp/portal): patch dev-dependency advisories 2026-07-08 08:25:45 +01:00
config Add MSP report scheduling and alert rollup 2026-07-07 20:37:18 +01:00
crypto
deploy
discovery
dockeragent Allow local Pulse HTTP agent URLs 2026-07-03 00:24:40 +01:00
hostagent Point agent 401 recovery copy at the Pulse UI, not a wrong breadcrumb 2026-07-08 08:40:29 +01:00
hosted Remove 198 unreachable Go functions 2026-06-03 12:29:37 +01:00
hostmetrics Fix patch-release follow-up regressions 2026-07-04 18:37:59 +01:00
kubernetesagent Allow local Pulse HTTP agent URLs 2026-07-03 00:24:40 +01:00
license backend and governance: MCP contract, agent capabilities, API, and release-control 2026-06-23 17:26:15 +01:00
logging Make global logging reconfiguration race-safe 2026-07-04 11:52:20 +01:00
maintenancesentinel Record maintenance evidence in resource timelines 2026-05-13 14:19:59 +01:00
metrics Coordinate incident recorder async persistence 2026-07-04 13:13:41 +01:00
mock Pace mock churn to homelab rates and stop phantom demo change spam 2026-07-08 09:49:03 +01:00
mockmode
mockmodel Remove 198 unreachable Go functions 2026-06-03 12:29:37 +01:00
mockruntime
models Fix physical disk SMART/Proxmox merge identity 2026-07-07 09:46:51 +01:00
monitoring Fix PBS backup discovery regression from bounded polling 2026-07-07 22:48:34 +01:00
notifications Add MSP report scheduling and alert rollup 2026-07-07 20:37:18 +01:00
platformsupport Expand Docker Swarm metadata inventory 2026-05-24 12:07:10 +01:00
proxmoxidentity Fix PBS backup identity matching 2026-06-03 11:43:20 +01:00
recovery Fix PBS backup identity matching 2026-06-03 11:43:20 +01:00
relay Aggregate simplify-review cleanups (no behavior change) 2026-05-12 17:32:11 +01:00
remoteconfig Allow local Pulse HTTP agent URLs 2026-07-03 00:24:40 +01:00
repoctl Update release control to use main 2026-07-05 15:20:37 +01:00
securityutil Allow local DNS agent HTTP URLs 2026-07-06 13:53:19 +01:00
sensors Remove 198 unreachable Go functions 2026-06-03 12:29:37 +01:00
servicediscovery fix(discovery): bring hosts into the fingerprint model so they auto-discover (#1479) 2026-07-07 22:55:04 +01:00
ssh/knownhosts
storagehealth feat(alerts): clean alert messages + highlight all platform node tables 2026-06-27 14:34:33 +01:00
system Remove 198 unreachable Go functions 2026-06-03 12:29:37 +01:00
telemetry Harden GA telemetry disclosure 2026-07-02 11:50:03 +01:00
testutil
truenas Emit TrueNAS pool status incidents 2026-06-29 22:54:19 +01:00
unifiedresources Pick cluster-scoped swarm dedupe winners deterministically 2026-07-08 09:35:56 +01:00
updates Block in-app self-update on the Pro binary to prevent silent downgrade 2026-07-08 10:02:04 +01:00
updatesignature
utils Clear all errcheck and gofmt violations so make lint gates on real findings 2026-06-09 21:42:21 +01:00
vmware Dedupe alerts PMG queue checks, vmware clones, licensing and proxmox client clones 2026-06-10 09:49:03 +01:00
websocket Bound server state broadcast memory 2026-07-02 23:27:49 +01:00