Skip to main content

coven_replication/sync/store/commit_publication/operation/
mod.rs

1use super::*;
2use crate::sync::store::authorization::load_wrapped_store_key;
3use crate::sync::store::commit_verification::commit::StoreMembershipObjectVerifier;
4use crate::sync::store::membership::MembershipMutationError;
5use coven_database::VerifiedMergeMembershipObjects;
6use coven_protocol::membership::{self, MembershipChain, MembershipEntry, StoreAuthorityChange};
7use coven_protocol::membership_mutation::{
8    PreparedMembershipPublication, PreparedMembershipTransition,
9};
10use coven_protocol::objects::{ProtocolObjectContext, ProtocolObjectDomain};
11use coven_protocol::store_commit::{self, commit_semantic_prefix};
12use coven_protocol::wrapped_store_key::{PreparedWrappedStoreKey, WrappedStoreKeyRef};
13use std::sync::Arc;
14
15mod blob_lifecycle;
16pub(crate) use blob_lifecycle::TombstoneGcError;
17mod blob_preparation;
18mod blob_upload;
19pub(crate) mod commit_plan;
20pub(super) mod membership_mutation;
21pub(super) mod membership_mutation_journal;
22mod preparation;
23
24mod commit_publication;
25pub(crate) use commit_publication::StoreOperationPublicationOutcome;
26mod facades;
27mod membership_commands;
28mod membership_publication;
29mod operation_test_support;
30mod signing;
31mod store_writes;
32
33pub(super) use blob_preparation::close_prepared_packages;
34
35use membership_mutation_journal::{
36    decode_membership_mutation, exact_owned_remote, AdmissionMutationPlan, MembershipMutationPlan,
37    MembershipMutationProgress, MutationPersistence, RevokeMutationPlan,
38};
39
40#[derive(Debug, thiserror::Error)]
41pub enum StoreWriterAuthorizationError {
42    #[error("Store authority: {0}")]
43    StoreAuthority(SyncCycleFailure),
44    #[error("Store writer registration: {0}")]
45    Registration(StoreRegistrationError),
46}
47
48#[derive(Debug, thiserror::Error)]
49pub(crate) enum AuthorizationRefreshError {
50    #[error("select this device's wrapped-key authority: {0}")]
51    Membership(#[source] coven_protocol::membership::MembershipError),
52    #[error("read this device's wrapped key: {0}")]
53    WrappedKey(#[source] crate::sync::store::membership::MembershipMutationError),
54    #[error("rotation gate database state: {0}")]
55    Database(#[source] coven_database::DbError),
56    #[error("merge this device's live and selected keyrings: {0}")]
57    InvalidKeyring(#[source] coven_keys::encryption::EncryptionError),
58    #[error("adopt committed store-key rotation: {0}")]
59    KeyAdoption(#[source] coven_keys::keys::KeyError),
60}