relswap 0.0.8

Signed-release install/update engine with durable activation and crash recovery
Documentation

relswap

Signed-release install and update engine with immutable version directories, a durable activation journal, and crash recovery across enumerated fault points.

Consumers supply an App identity (name, version, repository URL, trust anchor, activation strategy). relswap never embeds a product key or package version.

Manifest expiry

Signed manifests carry an expires_at timestamp and are rejected once it passes, because a signature alone never goes stale: without an expiry, someone able to withhold responses could pin clients to an authentic but obsolete manifest indefinitely. The relswap manifest tool defaults to a one-year window.

Two consequences worth planning for:

  • Installing a pinned old version stops working once its manifest expires. install_version() fetches and validates that release's manifest like any other, so a year-old release cannot be installed fresh until it is re-signed. If you need indefinitely reproducible installs, sign those releases with a longer window.
  • Rollback is unaffected. rollback() activates a version already present on disk and never touches the network, so recovering from a bad update keeps working offline and after expiry.

The host clock is tolerated to EXPIRY_CLOCK_SKEW (12 hours) so an unsynchronised machine degrades into a late expiry rather than being unable to update at all.

License

MIT OR Apache-2.0