1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
//! merka-vault - Vault provisioning library
//!
//! This crate provides tools to initialize and configure a HashiCorp Vault server.
//! It includes an Actix actor (`VaultActor`) for use in async systems and
//! standalone functions for direct use or CLI.
//!
//! ## Architecture
//!
//! The crate follows a layered architecture with the following dependencies:
//!
//! - `server` module - HTTP API layer (can only access actor module)
//! - `actor` module - Domain layer (can access vault and database modules)
//! - `cli` module - Command-line interface (can access actor module)
//! - `vault` module - Vault implementation (core functionality, private to crate)
//! - `database` module - Persistence layer (accessed through actor module)
//!
//! This enforces separation of concerns and a clean dependency hierarchy.
//! The vault module is private to the crate, ensuring all external access
//! goes through the actor module, which enforces business rules and manages
//! persistence.
// Make modules available with appropriate visibility
// Interface module is available to all other modules
// Vault module is private to the crate to enforce the architectural constraints
pub
// Server module is public for the binary but should only use actor
// Re-export public types for convenience
pub use VaultActor;
pub use ;
/// Initialize logging for the application