Skip to main content

appcore_update/
lib.rs

1//! Application artifact update, activation and rollback lifecycle.
2//!
3//! The Runtime treats artifacts as opaque bytes. It verifies generic identity,
4//! compatibility and integrity but never knows application code or business
5//! data.
6
7#![deny(missing_docs)]
8
9mod artifact;
10mod authenticity;
11mod coordinator;
12mod error;
13mod filesystem;
14mod integrity;
15mod provider;
16mod store;
17
18pub use artifact::ArtifactDescriptor;
19#[cfg(feature = "allow-unsigned-local-artifacts")]
20pub use authenticity::UnsignedLocalArtifactVerifier;
21pub use authenticity::{
22    artifact_signing_payload, ArtifactAuthenticityVerifier, ArtifactTrustPolicy,
23    Ed25519ArtifactVerifier, PolicyArtifactVerifier, SigningKeyStatus,
24};
25pub use coordinator::{
26    ActivationHealthCheck, NoUpdateFaults, UpdateCoordinator, UpdateFaultInjector,
27    UpdateFaultPoint, UpdateOutcome, UpdatePreparation, UpdateStaging,
28};
29pub use error::{UpdateError, UpdateResult};
30pub use provider::{
31    FileUpdateProvider, FileUpdateProviderFactory, SharedUpdateProvider, UpdateProvider,
32    UpdateRequest, FILE_UPDATE_PROVIDER_ID,
33};
34pub use store::{
35    ActivationReceipt, ArtifactStore, FileArtifactStore, StagedArtifact,
36    UPDATE_METADATA_FORMAT_VERSION,
37};
38
39pub(crate) use integrity::sha256_hex;
40
41#[cfg(test)]
42mod tests;