Skip to main content

Module registry

Module registry 

Source
Expand description

Plugin registry service (Phase C): fetch + verify + cache remote catalogs, and merge the bundled + remote catalogs with live module state into the store view.

Remote catalogs are fetched with a dedicated SSRF-guarded client (no redirects, scheme + literal-IP checks, size cap, timeout) and Ed25519-verified against the pinned + operator keys. An unverified source contributes ZERO entries unless registry_allow_unverified is set. Everything is cached in-memory so the store renders offline (and instantly) between refreshes; the bundled catalog is always present. The merge cross-references [AppState::modules] (compiled) and the module_registrations table (installed sidecars) to compute each entry’s shelf + state.

Structs§

CatalogService
The plugin store’s catalog engine, held in crate::state::AppState.

Functions§

run
Background loop: refresh remote registries on the configured cadence. No-op (parks) when the registry is disabled or no URLs are configured, so it never tight-loops.