coven_replication/sync/store/commit_publication/operation/
mod.rs1use 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}