1pub(crate) mod circles;
12mod cloud_home_setup;
13mod cloud_outbox_live_query;
14pub(crate) mod coven;
15mod device_pairing;
16mod handle;
17#[cfg(test)]
18mod host_callback_error_tests;
19mod live_query;
20#[cfg(test)]
21mod live_query_tests;
22mod read;
23mod read_handle;
24pub(crate) mod store_blobs;
25pub(crate) mod store_circles;
26pub(crate) mod store_cloud_storage;
27pub(crate) mod store_joining;
28pub(crate) mod store_membership;
29pub(crate) mod store_recovery;
30pub(crate) mod store_rows;
31pub(crate) mod store_security;
32pub(crate) mod store_sync;
33#[cfg(test)]
34mod test_support;
35
36#[cfg(test)]
37mod blob_facade_tests;
38#[cfg(test)]
39mod prepared_external_blob_tests;
40#[cfg(test)]
41mod store_key_ownership_tests;
42
43pub use coven_database::rusqlite;
44
45pub use circles::{CircleError, Circles};
46pub use cloud_home_setup::{
47 CloudHomeRollbackError, CloudHomeSetupError, CloudHomeSetupFailure, CloudHomeUnlockError,
48 ConnectedCloudHome,
49};
50pub use cloud_outbox_live_query::CloudOutboxLiveQuery;
51pub use coven::{Coven, CovenBuilder, CovenConfig, CovenError, CovenResult};
52pub use coven_database::prepare_external_blob;
53pub use coven_database::{
54 BlobFileFailure, BlobFileFailures, CloudOutboxSnapshot, DbError, ExternalBlob,
55 MakeRemoteProgress, OutboxFailure, OutboxFailureKind, PreparedExternalBlob, QueuedDelete,
56 QueuedMakeRemote, QueuedUpload, QueuedUploadPhase, SqlContext, SqlReadContext,
57 StuckReclaimOperation, WriteBatch,
58};
59pub use coven_database::{CovenMigrationError, CovenMigrationPolicy};
60pub use coven_database::{Migration, MigrationContext, MigrationError, MigrationStep};
61pub use coven_domain::joining::{join_with_device_pairing, DeviceJoinTransportOutcome};
62pub use coven_domain::joining::{
63 BootstrapError, DevicePairingError, DevicePairingHost, DevicePairingOffer, DevicePairingPhase,
64 DevicePairingRequest, DevicePairingTransportError, PreparedDevicePairing,
65 SealedDevicePairingRequest,
66};
67pub use coven_domain::restoration::{
68 decode_restore_code_info, restore_from_cloud, restore_from_code, ActivatedContinuation,
69 OwnerRecoveryAuthority, RestoreAuthority, RestoreCodeError, RestoreCodeInfo, RestoreSource,
70};
71pub use coven_foundation::atomic_file::{write_atomic, WriteError};
72pub use coven_foundation::changeset::{ChangeOp, RowChange};
73#[cfg(any(test, feature = "test-utils"))]
74pub use coven_foundation::clock::FixedClock;
75pub use coven_foundation::clock::{Clock, ClockRef, SystemClock};
76pub use coven_foundation::config::{
77 CloudHomeConfig, CloudProvider, Config, ConfigError, ExactUploadVerification, HomeStorage,
78};
79#[cfg(any(test, feature = "test-utils"))]
80pub use coven_foundation::id_provider::SequentialIdProvider;
81pub use coven_foundation::id_provider::{IdProvider, IdRef, UuidProvider};
82pub use coven_foundation::store_dir::{StoreDir, StoreLayout};
83pub use coven_keys::custody::{KeyCustody, Passphrase};
84#[cfg(any(test, feature = "test-utils"))]
85pub use coven_keys::encryption::EncryptionService;
86pub use coven_keys::encryption::{
87 EncryptionError, KeyFingerprint, MasterKeyring, SealError, CHUNK_SIZE,
88};
89pub use coven_keys::identity_custody::IdentityCustody;
90#[cfg(any(test, feature = "test-utils", debug_assertions))]
91pub use coven_keys::keys::test_keyring::install_for_service as install_test_keyring_service;
92#[cfg(all(
93 any(test, feature = "test-utils"),
94 any(target_os = "macos", target_os = "ios")
95))]
96pub use coven_keys::keys::{apple_keyring_entry_facts_for_test, AppleKeyringEntryFacts};
97pub use coven_keys::keys::{
98 keyring_service, set_keyring_service, CloudHomeCredentials, DeviceIdentityCustody,
99 IdentityError, KeyError, MasterKeyCustody, MasterKeyError, StoreKeys, UserKeypair,
100};
101pub use coven_protocol::blob::{
102 content_hash, BlobRef, BlobReplacement, BlobScope, BlobTransitionObserver, CacheFill,
103 Provenance, RowBlobAuthority, RowBlobRef, TransferLimits,
104};
105pub use coven_protocol::hlc::Timestamp;
106pub use coven_protocol::objects::{
107 ExactObjectRef, ObjectSlot, PhysicalObjectLocator, StorageError,
108};
109pub use coven_protocol::reclaim::ReclaimTarget;
110pub use coven_protocol::synced_schema::{BlobDecl, RowIdentity, SyncedTable};
111pub use coven_protocol::write::{
112 AffectedRow, PendingWrite, PublishedPosition, WriteBlock, WriteId, WriteReceipt,
113 WriteResolution, WriteRetractionWitness, WriteStatus,
114};
115pub use coven_protocol::{
116 Audience, Circle, CircleCloseParticipant, CircleCloseSettlement, CircleCloseStatus,
117 CircleControlCoord, CircleEpochCloseId, CircleId, CircleMemberInfo, CircleOperationBlock,
118 CircleOperationId, CircleOperationInfo, CircleOperationKind, CircleOperationState, CircleRole,
119 CircleState, CommitFrontier, CrossPrincipalProbeReceipt, DeviceJoinAttemptId,
120 ExactSlotProbeReceipt, MemberInfo, MemberRole, MembershipConflictChoice,
121 MembershipConflictInfo, ObjectHash, ProviderAccessLocator, ProviderAccessWithdrawal,
122 ProviderAdminGrantId, ProviderAdminGrantRecord, ProviderCapabilityProof, StoreBatchCommitRef,
123 StoreCommitCoord, StoreDeviceId, StoreMemberProviderAccessGrantRef,
124};
125pub use coven_protocol::{
126 AwsPrincipal, CloudKitEnvironment, GoogleDriveCorpus, ProviderDeviceBinding,
127 ProviderPrincipalId, ResolvedProviderBinding, S3EndpointBinding, StoreProviderBinding,
128};
129pub use coven_replication::blob::{
130 DrainOutcome, UploadFailure, UploadFailureCause, UploadFailures,
131};
132pub use coven_replication::blob::{MakeLocalError, MakeRemoteError, MakeRemoteRoot};
133pub use coven_replication::sync::{
134 AdmittingDeviceJoinProgress, BlobCacheError, BlobStream, BlockedOperation, BlockedOperationId,
135 DeviceActivity, DeviceJoinAbandonment, DeviceJoinAction, DeviceJoinActivation,
136 DeviceJoinApproval, DeviceJoinApprovalPolicy, DeviceJoinDriveOutcome, DeviceJoinError,
137 DeviceJoinJournalDatabase, DeviceJoinJournalRecord, DeviceJoinOffer, DeviceJoinOfferBundle,
138 DeviceJoinReadiness, DeviceJoinRole, DeviceJoinStatus, DeviceJoinTransportError,
139 DeviceJoinTransportKind, DeviceJoinTransportParams, DeviceJoinTransportTiming,
140 DeviceProviderAccessAdministrator, DeviceProviderAccessRequest,
141 DeviceProviderAdmissionApproval, DeviceProviderAdmissionCompletion, DeviceProviderReadiness,
142 DeviceRegistrationRequest, EagerCacheFillError, EagerCacheFillProgress, EagerCacheFillStatus,
143 HeldStoreCoordinate, HeldStorePosition, HeldStorePositionReason, JoinedStore,
144 JoiningDeviceJoinProgress, JoiningDeviceJoinProgressObserver, ProviderReadyDeviceBootstrap,
145 ProvisionalDeviceBootstrap, RetryStuckReclaimError, SyncError, SyncLoopAlerts, SyncLoopFailure,
146 SyncLoopStatus, SyncLoopSuccess,
147};
148#[cfg(feature = "oauth-providers")]
149pub use coven_storage::fetch_account_email;
150pub use coven_storage::no_progress;
151#[cfg(feature = "oauth-providers")]
152pub use coven_storage::oauth::OAuthError;
153#[cfg(feature = "oauth-providers")]
154pub use coven_storage::oauth::{AuthorizeRequest, OAuthClientCreds, OAuthClientCredsError};
155pub use coven_storage::oauth::{OAuthClients, OAuthTokens};
156#[cfg(feature = "test-utils")]
157pub use coven_storage::CloudCipher;
158#[cfg(any(test, feature = "test-utils"))]
159pub use coven_storage::InMemoryCloudHome;
160pub use coven_storage::{
161 write_cloud_object_stream, BlobBody, BoxPartSink, CloudAccessOutcome, CloudAccessState,
162 CloudFileReadError, CloudHome, CloudHomeError, CloudHomeJoinInfo, CloudKitAcceptedShareRecord,
163 CloudKitAtomicCreateBatch, CloudKitOps, CloudKitProviderIdentity, CloudKitRecordCreate,
164 CloudKitRecordVersion, CloudKitScope, CloudKitShare, CloudKitShareAcceptance,
165 CloudKitSharePermission, CloudObjectStream, CloudObjectVersion, CloudVersionedObject,
166 ConditionalWriteOutcome, DownloadProgress, ExactCloudHome, ExactCreateOutcome,
167 ExactSlotStorage, ExactUpload, ExactUploadSource, PartSink, S3CloudHome, UploadControl,
168 UploadProgress,
169};
170pub use device_pairing::{ApproveDevicePairingError, StartDevicePairingError};
171pub use handle::{CovenHandle, RetryBlockedOperationError};
172pub use live_query::{
173 LiveQuery, LiveQueryClosed, LiveQueryRequests, LiveQueryRevision, ReconfigurableLiveQuery,
174 ReconfigurableLiveQueryCause, ReconfigurableLiveQueryEvent,
175};
176pub use read::Read;
177pub use read_handle::CovenReadHandle;
178pub use store_joining::DeviceAdmissionError;
179pub use store_security::CloudHomeKeyState;