coven_replication/sync/store/
mod.rs1use 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 merge_conflict;
24mod reclaim;
25use commit_publication::operation::commit_plan;
26pub(crate) mod owner_role_promotion;
27mod package_preparation;
28pub(super) mod protocol_root;
29pub(crate) mod pull;
30mod registration_object;
31pub(crate) mod restore;
32mod settled;
33pub(crate) mod snapshots;
34use registration_object::prepare_registration_object;
35
36#[doc(hidden)]
40pub struct InstalledDeviceJoinSnapshot {
41 database: coven_database::StoreDatabase,
42 root: coven_protocol::store_commit::StoreRootRef,
43 verified_root:
44 coven_protocol::objects::VerifiedObject<coven_protocol::store_commit::StoreProtocolRoot>,
45 bootstrap: coven_database::DeviceJoinBootstrapPlan,
46}
47
48pub use acknowledgements::StoreAckError;
49pub use acknowledgements::{
50 ReplayBaselineAdvance, ReplayBaselineDecline, StagedStoreAcknowledgement,
51};
52pub use blob::eager_cache::{EagerCacheFillError, EagerCacheFillProgress, EagerCacheFillStatus};
53pub use blob::{BlobCacheError, BlobStream};
54pub use circles::CircleOperationError;
55#[cfg(test)]
56pub(crate) use commit_publication::operation::commit_plan::StoreOperationBatch;
57pub use commit_publication::operation::commit_plan::StoreOperationCommitPlan;
58pub use commit_verification::merge_history::{
59 MergeHistorySuccessorEvidence, MergeOutboundAuthorization, PreparedMergeHistorySuccessor,
60 VerifiedMergeMembershipPrefix,
61};
62pub use coven_protocol::circle_journal::CircleTransitionHistory;
63#[cfg(any(test, feature = "test-utils"))]
64pub use device_exclusion::StoreDeviceExclusionOperationInfo;
65pub use device_exclusion::{StoreDeviceExclusionError, StoreDeviceExclusionResult};
66pub use device_join::transport::timed_owner_join_step;
67pub use device_join::transport::StoreDeviceJoinTransport;
68pub use device_join::transport::{
69 AdmittingDeviceJoinProgress, DeviceJoinApproval, DeviceJoinApprovalPolicy,
70 DeviceJoinDriveOutcome, DeviceJoinOfferBundle, DeviceJoinTransportError,
71 DeviceJoinTransportKind, DeviceJoinTransportParams, DeviceJoinTransportTiming,
72 JoiningDeviceJoinProgress, JoiningDeviceJoinProgressObserver,
73};
74pub use device_join::transport::{DeviceJoinStep, DeviceJoinTransport};
75pub(crate) use device_join::JoiningStore;
76pub use device_join::{
77 DeviceJoinAbandonment, DeviceJoinAction, DeviceJoinActivation, DeviceJoinError,
78 DeviceJoinJournalDatabase, DeviceJoinJournalRecord, DeviceJoinOffer, DeviceJoinReadiness,
79 DeviceJoinRole, DeviceJoinStatus, DeviceProviderAccessAdministrator,
80 DeviceProviderAccessRequest, DeviceProviderAdmissionApproval,
81 DeviceProviderAdmissionCompletion, DeviceProviderReadiness, DeviceRegistrationRequest,
82 JoinedStore, ProviderReadyDeviceBootstrap, ProvisionalDeviceBootstrap, SamePrincipalDeviceJoin,
83};
84pub use device_join::{
85 PendingDeviceJoinAuthority, PendingDeviceJoinObservation,
86 PendingSamePrincipalDeviceJoinCompletion,
87};
88pub use error::StoreError;
89pub(crate) use error::StorePreparationError;
90pub use host_write::HostWriteBlobStaging;
91pub use membership::AnchoredChainError;
92pub use membership::MemberAdmission;
93pub use membership::MembershipMutationError;
94pub(crate) use membership::MembershipOpsError;
95pub use merge_conflict::{ExcludedCandidateHeadObservation, MergeCandidateAbandonment};
96pub use owner_role_promotion::OwnerPromotionError;
97pub use reclaim::StorePackageReclaimCoverage;
98pub use reclaim::StorePackageReclaimReport;
99pub use reclaim::StoreReclaimError;
100pub use reclaim::StoreReclaimResult;
101pub(crate) use settled::{CycleInputs, SettledCycle};
102
103pub use authorization::StoreInitializationError;
104pub use authorization::StoreRegistrationError;
105pub use authorization::{
106 HistoryConstructionAuthority, Store, StoreKeyrings, StoreRestoreMembership,
107};
108pub use circles::CirclePackageReadError;
109pub use circles::StoreCircleCommands;
110pub use commit_publication::{AuthorizedWriterOperation, StoreWriterAuthorizationError};
111pub(crate) use pull::VerifiedStoreDeviceHead;
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::{
119 PreparedDeviceJoinSnapshot, PreparedSnapshotBootstrap, SnapshotError, SnapshotSpoolCleanupError,
120};