Expand description
The cloud home and what Coven keeps in it.
A CloudHome is raw bytes in and out of one provider — S3 and its
compatibles, CloudKit, and the OAuth providers (Google Drive, Dropbox,
OneDrive). Above it, CloudSyncConnection applies the key layout and the
at-rest protection, and exposes the exact-slot protocol-object and blob
operations replication runs against. Beside them sit the join and restore
codes that carry a home’s coordinates between devices, and the OAuth
authorization flow that obtains a provider session in the first place.
Re-exports§
pub use cloud::cloudkit::CloudKitAtomicCreateBatch;pub use cloud::cloudkit::CloudKitOps;pub use cloud::cloudkit::CloudKitProviderIdentity;pub use cloud::cloudkit::CloudKitRecordCreate;pub use cloud::cloudkit::CloudKitRecordVersion;pub use cloud::cloudkit::CloudKitScope;pub use cloud::s3::S3CloudHome;pub use cloud::test_utils::InMemoryCloudHome;pub use cloud::no_progress;pub use cloud::write_cloud_object_stream;pub use cloud::BlobBody;pub use cloud::BoxPartSink;pub use cloud::CloudAccessOutcome;pub use cloud::CloudAccessState;pub use cloud::CloudFileReadError;pub use cloud::CloudHome;pub use cloud::CloudHomeError;pub use cloud::CloudHomeJoinInfo;pub use cloud::CloudObjectStream;pub use cloud::CloudVersionedObject;pub use cloud::ConditionalWriteOutcome;pub use cloud::DownloadProgress;pub use cloud::ExactCloudHome;pub use cloud::ExactCreateOutcome;pub use cloud::ExactSlotStorage;pub use cloud::ExactUpload;pub use cloud::ExactUploadSource;pub use cloud::PartSink;pub use cloud::UploadControl;pub use cloud::UploadProgress;
Modules§
- cloud
- CloudHome: low-level cloud storage abstraction.
- oauth
- OAuth 2.0 helper for consumer cloud provider authentication.
- provider_
probe - Cross-principal provider probe execution: reserving, creating, and
settling exact probe slots on the primary and peer provider storage, over
the probe transcript model in
coven_protocol::provider.
Structs§
- Adopted
Cloud KeyRotation - Blob
Chunking - The two numbers that decide what a blob transfer costs. They are independent on purpose: the chunk is fixed when a blob is sealed and bounds how little a read can fetch, so it sets how long a seek waits for its first byte; the window is a live reader-side choice about how much one request carries, so it sets how many round-trips a long read costs. Neither can be derived from the other, and changing the window never touches a stored blob.
- Blob
Range Reader - Serves plaintext ranges of one stored blob by fetching only the sealed chunks that cover them. A read costs the chunks it touches and nothing else — never the whole object, however many ranges the stream asks for.
- Cloud
Keyring Facts - Cloud
Keyring Merge - Cloud
Object Version - Opaque provider revision for an exact mutable object.
- Cloud
Sync Connection CloudSyncObjectStoragethat delegates raw I/O to aCloudHomeand handles the path layout and the at-rest protection (itsCloudCipher).- Pending
Rotation
Enums§
- Blob
Path Scheme - How a cloud home names its blob objects. Paired with the at-rest
CloudCipherby the home’sHomeStorage: an opaque home isHashed+ encrypted, a browsable home isPlain+ plaintext. - Cloud
Cipher - How a cloud home protects its objects at rest. An
Encryptedhome seals every object under the store key (the default); aPlaintexthome stores objects in the clear so the bucket is browsable, and drops the.encsuffix. - Listed
Blob Tombstone - Rotation
State Error
Constants§
Traits§
- Cloud
Sync Cipher State Access - Closed access to one session’s live at-rest keyring. Callers can use the cipher but cannot take the retained key service out of its owner.
- Cloud
Sync Object Storage - Cloud
Sync Rotation State Access
Functions§
- blob_
tombstone_ key - blob_
tombstone_ object_ id - cloud_
aad_ context - fetch_
account_ email - open_
sealed_ blob - Open a blob this layer sealed: split the prefix, then open every chunk under
encryptionwith the AAD context the seal was bound to. Returns the fingerprint of the key that sealed it alongside the plaintext. - prepare_
membership_ entry - run_
blocking_ object_ verification