Skip to main content

palisade_config/
lib.rs

1//! # Palisade Config
2//!
3//! **Security-hardened configuration management for honeypot and deception infrastructure.**
4//!
5//! # Core Security Properties
6//!
7//! - **Memory Protection**: All sensitive data automatically zeroized on drop
8//! - **Cryptographic Isolation**: Tag derivation prevents artifact correlation
9//! - **Validation Defense-in-Depth**: Multiple validation layers
10//! - **Error Obfuscation**: Dual-layer error handling
11
12#![warn(missing_docs)]
13#![warn(clippy::all)]
14#![warn(clippy::pedantic)]
15#![warn(clippy::unwrap_used)]
16#![allow(clippy::module_name_repetitions)]
17#![allow(clippy::missing_errors_doc)]
18#![allow(clippy::missing_panics_doc)]
19
20// Core modules
21mod config;
22mod defaults;
23mod errors;
24mod policy;
25mod runtime;
26mod tags;
27mod timing;
28mod validation;
29
30// Re-export core types for public API
31pub use config::{
32    AgentConfig, Config, DeceptionConfig, LogFormat, LogLevel, LoggingConfig, TelemetryConfig,
33    ProtectedPath, ProtectedString,
34};
35pub use policy::{
36    ActionType, DeceptionPolicy, PolicyConfig, ResponseCondition, ResponsePolicy, ResponseRule,
37    ScoringPolicy, ScoringWeights, Severity,
38};
39pub use runtime::{RuntimeConfig, RuntimePolicy};
40pub use tags::RootTag;
41pub use timing::{get_timing_profile, set_timing_profile, TimingProfile};
42pub use validation::{ConfigChange, PolicyChange, ValidationMode};
43
44// Re-export from palisade-errors for convenience
45pub use palisade_errors::{AgentError, Result};
46
47/// Configuration schema version.
48pub const CONFIG_VERSION: u32 = 1;
49
50/// Policy schema version (separate from config).
51pub const POLICY_VERSION: u32 = 1;