1#![deny(missing_docs)]
18
19mod activation;
20mod artifact;
21mod authenticity;
22mod cache;
23mod catalog;
24mod catalog_store;
25mod coordinator;
26mod error;
27mod filesystem;
28mod host_flow;
29mod integrity;
30mod mobile;
31mod peer;
32mod provider;
33mod quarantine;
34mod recovery;
35mod store;
36mod store_io;
37mod stream;
38
39pub use activation::{ActivationAdapter, ActivationEvidence, ActivationRequest};
40pub use artifact::{ArtifactDescriptor, ArtifactTarget};
41#[cfg(feature = "allow-unsigned-local-artifacts")]
42pub use authenticity::UnsignedLocalArtifactVerifier;
43pub use authenticity::{
44 artifact_signing_payload, ArtifactAuthenticityVerifier, ArtifactTrustPolicy,
45 Ed25519ArtifactVerifier, PolicyArtifactVerifier, SigningKeyStatus,
46};
47pub use cache::{CacheOptions, CachedArtifact, UpdateCache};
48pub use catalog::{
49 LatestCompatibleUpdateIdentity, QuarantineExclusion, QuarantineSelection, ReleaseCatalog,
50 UpdateIdentity, RELEASE_CATALOG_MAX_BYTES, RELEASE_CATALOG_MAX_ENTRIES,
51};
52pub use catalog_store::{CatalogEntry, ReleaseCatalogStore};
53pub use coordinator::{
54 ActivationHealthCheck, NoUpdateFaults, UpdateCoordinator, UpdateFaultInjector,
55 UpdateFaultPoint, UpdateOutcome, UpdatePreparation, UpdateStaging,
56};
57pub use error::{UpdateError, UpdateResult};
58pub use mobile::{
59 MobileUpdateAction, MobileUpdateDecision, MobileUpdatePolicy, MobileUpdateRequest,
60};
61pub use peer::{
62 ArtifactChunkRequestV2, ArtifactChunkResponseV2, ArtifactOfferRequestV2,
63 ArtifactOfferResponseV2, ArtifactPeerStatusV2, LatestCompatibleOfferRequestV2,
64 LatestCompatibleOfferResponseV2, UPDATE_CHUNK_CAPABILITY, UPDATE_OFFER_CAPABILITY,
65 UPDATE_PEER_METADATA_MAX_BYTES,
66};
67pub use provider::{
68 FileUpdateProvider, FileUpdateProviderFactory, SharedUpdateProvider, UpdateProvider,
69 UpdateRequest, FILE_UPDATE_PROVIDER_ID,
70};
71pub use quarantine::{
72 QuarantineKey, QuarantineReason, QuarantineRecord, QuarantineState, QuarantineStore,
73 QUARANTINE_FORMAT_VERSION, QUARANTINE_MAX_ENTRIES,
74};
75pub use recovery::{
76 ActivationPhaseV2, ActivationReceiptV2, FileRecoveryStore, RecoveryAction, RecoveryDecision,
77 RecoveryResult, ACTIVATION_V2_FORMAT_VERSION,
78};
79pub use store::{
80 ActivationReceipt, ArtifactStore, FileArtifactStore, StagedArtifact,
81 UPDATE_METADATA_FORMAT_VERSION,
82};
83pub use stream::{
84 receive_artifact, ArtifactSource, ArtifactTransferPolicy, ArtifactWriter, FileArtifactSource,
85 DEFAULT_ARTIFACT_CHUNK_BYTES,
86};
87
88pub(crate) use integrity::sha256_hex;
89
90#[cfg(test)]
91mod tests;
92
93pub use host_flow::{HostUpdateFlow, UpdateRecoveryGate};