Pulse/internal/updates
rcourtman 2f0468a87b Verify SSHSIG on in-app update artifacts
The unattended timer (scripts/pulse-auto-update.sh) and the public bootstrap
(scripts/install.sh, /install.sh) all verify the .sshsig sidecar against the
pinned pulse-installer ed25519 key before trusting a release artifact. The
in-app updater verified SHA256 only — same artifact, same root execution
context, lower trust bar. Closing the asymmetry: the in-app tarball download
in ApplyUpdate, adapter_installsh.go's install.sh download (piped into bash
as root), and the rollback binary download now fetch and verify the .sshsig
sidecar against the same pinned key, fail-closed.

The signing infrastructure (release_asset_common.sh, validate-release.sh,
backfill-release-assets.sh) already produces and validates these signatures
for every release; this teaches the Go updater to honor what the shell paths
have always required. ssh-keygen is shelled out to so the in-app updater
shares the exact trust path used by the unattended path, with a package-level
function variable for test injection so unit tests don't require ssh-keygen
on the build host.

Extends the deployment-installability contract's release-trust-fail-closed
invariant to cover the in-app updater paths.
2026-05-09 23:14:07 +01:00
..
adapter_installsh.go Verify SSHSIG on in-app update artifacts 2026-05-09 23:14:07 +01:00
adapter_installsh_exec_test.go Verify SSHSIG on in-app update artifacts 2026-05-09 23:14:07 +01:00
adapter_installsh_execute_test.go Verify SSHSIG on in-app update artifacts 2026-05-09 23:14:07 +01:00
adapter_installsh_extra_test.go Verify SSHSIG on in-app update artifacts 2026-05-09 23:14:07 +01:00
adapter_installsh_helpers_test.go Verify SSHSIG on in-app update artifacts 2026-05-09 23:14:07 +01:00
adapter_installsh_more_test.go Port installer disk preflight from v5 2026-05-01 20:28:11 +01:00
adapter_installsh_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
history.go Harden update history persistence root 2026-03-29 14:39:11 +01:00
history_test.go Harden update history persistence root 2026-03-29 14:39:11 +01:00
manager.go Verify SSHSIG on in-app update artifacts 2026-05-09 23:14:07 +01:00
manager_additional_test.go test: expand backend coverage 2026-01-25 21:08:44 +00:00
manager_applyupdate_test.go test: Add comprehensive test coverage across packages 2026-01-19 19:26:18 +00:00
manager_backup_runtime_test.go Harden self-hosted update runtime against low-disk drift 2026-04-22 09:40:49 +01:00
manager_check_updates_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
manager_checksum_test.go Harden self-hosted update runtime against low-disk drift 2026-04-22 09:40:49 +01:00
manager_fileops_test.go Harden update manager directory scans 2026-03-29 14:23:13 +01:00
manager_more_test.go Canonicalize apply-update download URLs 2026-04-01 16:10:59 +01:00
manager_retry_test.go Harden update manager outbound requests 2026-03-29 13:11:14 +01:00
manager_sse_helpers_test.go test: expand backend coverage 2026-01-25 21:08:44 +00:00
manager_test.go Reframe prerelease update copy 2026-03-25 11:25:41 +00:00
mock_updater.go docs: Add godoc comments to more exported functions 2025-12-02 16:03:57 +00:00
mock_updater_additional_test.go test: expand backend coverage 2026-01-25 21:08:44 +00:00
mock_updater_test.go test: Add comprehensive test coverage across packages 2026-01-19 19:26:18 +00:00
queue.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
queue_observability_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
queue_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
signature.go Verify SSHSIG on in-app update artifacts 2026-05-09 23:14:07 +01:00
signature_test.go Verify SSHSIG on in-app update artifacts 2026-05-09 23:14:07 +01:00
sse.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
sse_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
updater.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
updater_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
version.go Canonicalize usage-data telemetry reporting 2026-04-14 11:05:10 +01:00
version_additional_test.go Fix updates mock deployment test 2026-04-11 15:06:44 +01:00
version_test.go Canonicalize usage-data telemetry reporting 2026-04-14 11:05:10 +01:00