pub const SESSIONS: &str = "sessions";
pub const ACL: &str = "acl";
pub const COMMUNITY: &str = "community";
pub const CONFIG: &str = "config";
pub const PASSKEY: &str = "passkey";
pub const INSTALL: &str = "install";
pub const MEMBERS: &str = "members";
pub const JOIN_REQUESTS: &str = "join_requests";
pub const POLICIES: &str = "policies";
pub const ACTIVE_POLICIES: &str = "active_policies";
pub const STATUS_LISTS: &str = "status_lists";
pub const REGISTRY_RECORDS: &str = "registry_records";
pub const SYNC_QUEUE: &str = "sync_queue";
pub const SYNC_CURSOR: &str = "sync_cursor";
pub const RELATIONSHIPS: &str = "relationships";
pub const RELATIONSHIPS_BY_DID: &str = "relationships_by_did";
pub const ENDORSEMENT_TYPES: &str = "endorsement_types";
pub const SCHEMAS: &str = "schemas";
pub const ENDORSEMENTS: &str = "endorsements";
pub const AUDIT: &str = "audit";
pub const AUDIT_KEY: &str = "audit_key";
pub const ALL: &[&str] = &[
SESSIONS,
ACL,
COMMUNITY,
CONFIG,
PASSKEY,
INSTALL,
MEMBERS,
JOIN_REQUESTS,
POLICIES,
ACTIVE_POLICIES,
STATUS_LISTS,
REGISTRY_RECORDS,
SYNC_QUEUE,
SYNC_CURSOR,
RELATIONSHIPS,
RELATIONSHIPS_BY_DID,
ENDORSEMENT_TYPES,
SCHEMAS,
ENDORSEMENTS,
AUDIT,
AUDIT_KEY,
];
pub const BACKED_UP: &[&str] = &[
ACL,
COMMUNITY,
MEMBERS,
JOIN_REQUESTS,
POLICIES,
ACTIVE_POLICIES,
STATUS_LISTS,
RELATIONSHIPS,
RELATIONSHIPS_BY_DID,
ENDORSEMENT_TYPES,
SCHEMAS,
ENDORSEMENTS,
AUDIT,
AUDIT_KEY,
];
pub const EXCLUDED_FROM_BACKUP: &[&str] = &[
SESSIONS,
CONFIG,
PASSKEY,
INSTALL,
REGISTRY_RECORDS,
SYNC_QUEUE,
SYNC_CURSOR,
];
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn all_matches_app_state_keyspace_count() {
assert_eq!(ALL.len(), 21, "ALL must list every AppState keyspace");
}
#[test]
fn backup_partition_is_total() {
use std::collections::BTreeSet;
let all: BTreeSet<&str> = ALL.iter().copied().collect();
let backed: BTreeSet<&str> = BACKED_UP.iter().copied().collect();
let excluded: BTreeSet<&str> = EXCLUDED_FROM_BACKUP.iter().copied().collect();
assert!(
backed.is_disjoint(&excluded),
"a keyspace is both backed up and excluded"
);
let union: BTreeSet<&str> = backed.union(&excluded).copied().collect();
assert_eq!(
union, all,
"backup partition must cover every keyspace in ALL exactly once"
);
}
#[test]
fn all_has_no_duplicates() {
let mut seen = std::collections::HashSet::new();
for name in ALL {
assert!(seen.insert(*name), "duplicate keyspace name in ALL: {name}");
}
}
}