lib.rs (4162B)
1 #![forbid(unsafe_code)] 2 3 pub mod app; 4 pub mod audit; 5 mod audit_sqlite; 6 pub mod cli; 7 pub mod config; 8 pub mod control; 9 pub mod custody; 10 pub mod discovery; 11 pub mod error; 12 pub mod identity_files; 13 pub mod logging; 14 pub mod operability; 15 pub mod outbox; 16 mod outbox_sqlite; 17 mod paths; 18 pub mod persistence; 19 pub mod policy; 20 pub mod transport; 21 22 pub use app::{ 23 MycApp, MycRuntime, MycRuntimePaths, MycSignerBackend, MycSignerContext, MycStartupSnapshot, 24 }; 25 pub use audit::{ 26 MycJsonlOperationAuditStore, MycOperationAuditKind, MycOperationAuditOutcome, 27 MycOperationAuditRecord, MycOperationAuditStore, 28 }; 29 pub use audit_sqlite::MycSqliteOperationAuditStore; 30 pub use config::{ 31 DEFAULT_ENV_PATH, MycAuditConfig, MycConfig, MycConnectionApproval, MycCustodyConfig, 32 MycDiscoveryConfig, MycDiscoveryMetadataConfig, MycIdentityBackend, MycIdentitySourceSpec, 33 MycLoggingConfig, MycObservabilityConfig, MycPathsConfig, MycPersistenceConfig, 34 MycPolicyConfig, MycRuntimeAuditBackend, MycRuntimeContractOutput, MycServiceConfig, 35 MycSignerStateBackend, MycTransportConfig, MycTransportDeliveryPolicy, 36 }; 37 pub use control::{MycAcceptedConnectionOutput, MycAuthorizedReplayOutput}; 38 pub use custody::{ 39 MycActiveIdentity, MycCustodyExportOutput, MycCustodyImportOutput, MycCustodyRotateOutput, 40 MycIdentityProvider, MycIdentityStatusOutput, MycManagedAccountMutationOutput, 41 MycManagedAccountSelectionState, MycManagedAccountsOutput, 42 }; 43 pub use discovery::{ 44 MycDiscoveryBundleManifest, MycDiscoveryBundleOutput, MycDiscoveryContext, 45 MycDiscoveryDiffOutput, MycDiscoveryLiveStatus, MycDiscoveryRelayFetchStatus, 46 MycDiscoveryRelayRepairResult, MycDiscoveryRelayState, MycDiscoveryRelaySummary, 47 MycDiscoveryRepairOutcome, MycDiscoveryRepairSummary, MycFetchedLiveNip89Output, 48 MycLiveNip89Event, MycLiveNip89Group, MycLiveNip89RelayState, MycNip05Document, 49 MycNip05DocumentSection, MycNip89HandlerDocument, MycNormalizedNip89Handler, 50 MycPublishedNip89Output, MycRefreshedNip89Output, MycRenderedNip05Output, 51 MycRenderedNip89Output, diff_live_nip89, fetch_live_nip89, publish_nip89_event, refresh_nip89, 52 render_nip05_output, verify_bundle, 53 }; 54 pub use error::MycError; 55 pub use operability::{ 56 MYC_SIGNER_STATUS_CONTRACT_VERSION, MycAuditDecisionCounts, MycCustodyStatusOutput, 57 MycDeliveryOutboxStatusOutput, MycDeliveryRecoveryStatusOutput, MycDiscoveryStatusOutput, 58 MycMetricsSnapshot, MycOperationOutcomeCounts, MycPersistenceStatusOutput, MycRelayProbe, 59 MycRelayProbeAvailability, MycRuntimeAuditPersistenceStatusOutput, MycRuntimeStatus, 60 MycSignerBackendStatusOutput, MycSignerStatePersistenceStatusOutput, 61 MycSqliteSchemaStatusOutput, MycStatusFullOutput, MycStatusSignerOutput, 62 MycStatusSummaryOutput, MycTransportStatusOutput, collect_metrics, collect_status_full, 63 collect_status_signer, collect_status_summary, render_metrics_text, 64 }; 65 pub use outbox::{ 66 MycDeliveryOutboxJobId, MycDeliveryOutboxKind, MycDeliveryOutboxRecord, 67 MycDeliveryOutboxStatus, MycDeliveryOutboxStore, 68 }; 69 pub use outbox_sqlite::MycSqliteDeliveryOutboxStore; 70 pub use persistence::{ 71 MycDeliveryOutboxVerifyRestoreOutput, MycPersistenceBackupOutput, 72 MycPersistenceBackupStateOutput, MycPersistenceIdentityReferenceBackupOutput, 73 MycPersistenceIdentityReferenceRestoreOutput, MycPersistenceImportJsonToSqliteOutput, 74 MycPersistenceImportSelection, MycPersistenceRestoreOutput, MycPersistenceRestoreStateOutput, 75 MycPersistenceVerifyRestoreOutput, MycRuntimeAuditImportOutput, 76 MycRuntimeAuditVerifyRestoreOutput, MycSignerStateImportOutput, 77 MycSignerStateVerifyRestoreOutput, backup_persistence, import_json_to_sqlite, restore_backup, 78 verify_restored_state, 79 }; 80 pub use policy::{MycConnectDecision, MycPolicyContext}; 81 pub use transport::{MycNostrTransport, MycRelayPublishResult, MycTransportSnapshot}; 82 83 pub async fn run() -> Result<(), MycError> { 84 let config = MycConfig::load_from_default_env_path()?; 85 logging::init_logging(&config.logging)?; 86 MycApp::bootstrap(config)?.run().await 87 } 88 89 pub async fn run_cli() -> Result<(), MycError> { 90 cli::run_from_env().await 91 }