Skip to main content

greentic_update/
lib.rs

1//! # greentic-update
2//!
3//! Foundation library for the Greentic update platform — the transport-agnostic
4//! core shared by the operator CLI (`greentic-deployer`), the airgap Public
5//! Updater Bridge, and the cloud Update Planner.
6//!
7//! This crate is deliberately lean and **does not depend on `greentic-deploy-spec`**:
8//! a plan's `target` environment manifest is carried as opaque JSON, and callers
9//! project their own domain types into this crate's lightweight artifact view.
10//! Its only workspace dependency is `greentic-distributor-client`, for DSSE /
11//! in-toto signing and the content-addressed download client.
12//!
13//! ## Modules
14//! - [`plan`] — the signed `greentic.update-plan.v1` (DSSE envelope) build/verify.
15//! - [`catalogue`] — installed-artifact view + diff against a plan's artifacts.
16//! - [`staging`] — the on-disk staging state machine.
17//! - [`envelope`] — airgap update-bundle wrapper + import scanner.
18//! - [`binswap`] — verified on-disk binary swap + rollback (binary self-update track).
19//! - [`stream`] — SSE transport for plan-update notifications (feature `stream`).
20//! - [`tls`] — client-cert (mTLS) transport + X.509 preflight (feature `mtls`).
21//! - [`enroll`] — client-side cert enrollment against the Cert-CA (feature `enroll`).
22
23#[cfg(feature = "binswap")]
24pub mod binswap;
25pub mod catalogue;
26#[cfg(feature = "enroll")]
27pub mod enroll;
28pub mod envelope;
29pub mod plan;
30pub mod staging;
31#[cfg(feature = "stream")]
32pub mod stream;
33#[cfg(feature = "mtls")]
34pub mod tls;