Skip to main content

coven_replication/sync/store/
mod.rs

1use coven_database::StoreDatabase;
2use coven_foundation::store_dir::StoreDir;
3use coven_keys::keys::UserKeypair;
4
5use super::cycle::SyncCycleFailure;
6use coven_protocol::store_commit::StoreProtocolRoot;
7use coven_storage::BlobPathScheme;
8use coven_storage::CloudSyncObjectStorage;
9
10pub(crate) mod acknowledgements;
11pub(crate) mod authorization;
12#[doc(hidden)]
13pub mod blob;
14pub(crate) mod circles;
15pub(crate) mod commit_publication;
16mod commit_verification;
17pub(crate) mod device_exclusion;
18pub(crate) mod device_join;
19mod error;
20mod founder_creation;
21mod host_write;
22mod membership;
23mod reclaim;
24use commit_publication::operation::commit_plan;
25pub(crate) mod owner_role_promotion;
26mod package_preparation;
27pub(super) mod protocol_root;
28pub(crate) mod pull;
29mod registration_object;
30pub(crate) mod restore;
31mod settled;
32pub(crate) mod snapshots;
33use registration_object::prepare_registration_object;
34
35/// A verified same-principal snapshot installation waiting for its device-join
36/// activation to be committed. Its database and proof pieces remain inside the
37/// Store boundary that completes the operation.
38#[doc(hidden)]
39pub struct InstalledDeviceJoinSnapshot {
40    database: coven_database::StoreDatabase,
41    root: coven_protocol::store_commit::StoreRootRef,
42    verified_root:
43        coven_protocol::objects::VerifiedObject<coven_protocol::store_commit::StoreProtocolRoot>,
44    bootstrap: coven_database::DeviceJoinBootstrapPlan,
45}
46
47#[cfg(test)]
48mod installed_device_join_snapshot_test_support;
49
50pub use acknowledgements::StoreAckError;
51pub use acknowledgements::{
52    ReplayBaselineAdvance, ReplayBaselineDecline, StagedStoreAcknowledgement,
53};
54pub use blob::eager_cache::{EagerCacheFillError, EagerCacheFillProgress, EagerCacheFillStatus};
55pub use blob::{BlobCacheError, BlobStream};
56pub use circles::CircleOperationError;
57#[cfg(test)]
58pub(crate) use commit_publication::operation::commit_plan::StoreOperationBatch;
59pub use commit_publication::operation::commit_plan::StoreOperationCommitPlan;
60pub use commit_verification::merge_history::{
61    AcceptedMembershipAuthority, MergeHistorySuccessorEvidence, MergeOutboundAuthorization,
62    PreparedMergeHistorySuccessor, VerifiedMergeMembershipPrefix,
63};
64pub use coven_protocol::circle_journal::CircleTransitionHistory;
65#[cfg(any(test, feature = "test-utils"))]
66pub use device_exclusion::StoreDeviceExclusionOperationInfo;
67pub use device_exclusion::{StoreDeviceExclusionError, StoreDeviceExclusionResult};
68pub use device_join::transport::timed_owner_join_step;
69pub use device_join::transport::StoreDeviceJoinTransport;
70pub use device_join::transport::{
71    AdmittingDeviceJoinProgress, DeviceJoinApproval, DeviceJoinApprovalPolicy,
72    DeviceJoinDriveOutcome, DeviceJoinOfferBundle, DeviceJoinTransportError,
73    DeviceJoinTransportKind, DeviceJoinTransportParams, DeviceJoinTransportTiming,
74    JoiningDeviceJoinProgress, JoiningDeviceJoinProgressObserver,
75};
76pub use device_join::transport::{DeviceJoinStep, DeviceJoinTransport};
77pub(crate) use device_join::JoiningStore;
78pub use device_join::{
79    DeviceJoinAbandonment, DeviceJoinAction, DeviceJoinActivation, DeviceJoinError,
80    DeviceJoinJournalDatabase, DeviceJoinJournalRecord, DeviceJoinOffer, DeviceJoinReadiness,
81    DeviceJoinRole, DeviceJoinStatus, DeviceProviderAccessAdministrator,
82    DeviceProviderAccessRequest, DeviceProviderAdmissionApproval,
83    DeviceProviderAdmissionCompletion, DeviceProviderReadiness, DeviceRegistrationRequest,
84    JoinedStore, ProviderReadyDeviceBootstrap, ProvisionalDeviceBootstrap, SamePrincipalDeviceJoin,
85};
86pub use device_join::{
87    PendingDeviceJoinAuthority, PendingDeviceJoinObservation,
88    PendingSamePrincipalDeviceJoinCompletion,
89};
90pub use error::StoreError;
91pub(crate) use error::StorePreparationError;
92pub use host_write::HostWriteBlobStaging;
93pub use membership::AnchoredChainError;
94pub use membership::MemberAdmission;
95pub use membership::MembershipMutationError;
96pub(crate) use membership::MembershipOpsError;
97pub use owner_role_promotion::OwnerPromotionError;
98pub use reclaim::StorePackageReclaimCoverage;
99pub use reclaim::StorePackageReclaimReport;
100pub use reclaim::StoreReclaimError;
101pub use reclaim::StoreReclaimResult;
102pub(crate) use settled::{CycleInputs, SettledCycle};
103
104pub use authorization::StoreInitializationError;
105pub use authorization::StoreRegistrationError;
106pub use authorization::{
107    HistoryConstructionAuthority, Store, StoreKeyrings, StoreRestoreMembership,
108};
109pub use circles::CirclePackageReadError;
110pub use circles::StoreCircleCommands;
111pub use commit_publication::{AuthorizedWriterOperation, StoreWriterAuthorizationError};
112pub use pull::{HeldStoreCoordinate, HeldStorePosition, HeldStorePositionReason};
113pub use pull::{LoadedCirclePackage, Readiness};
114pub use pull::{PullError, StorePullError, StorePullResult};
115pub(crate) use restore::RestoringStore;
116pub(crate) use snapshots::SnapshotCut;
117#[doc(hidden)]
118pub use snapshots::{PreparedDeviceJoinSnapshot, PreparedSnapshotBootstrap, SnapshotError};