Skip to main content

enact_security/
lib.rs

1//! Security policy, audit logging, and sandboxing for Enact agents
2//!
3//! This crate provides:
4//! - Security policy with autonomy levels
5//! - Rate limiting
6//! - Audit logging with rotation
7//! - Action validation
8
9pub mod audit;
10pub mod policy;
11
12pub use audit::{
13    Action, Actor, AuditConfig, AuditEvent, AuditEventType, AuditLogger, ExecutionResult,
14    SecurityContext,
15};
16pub use policy::{ActionValidation, AutonomyLevel, PolicyConfig, RiskLevel, SecurityPolicy};
17
18#[cfg(test)]
19mod tests {
20    use super::*;
21    use std::path::PathBuf;
22
23    #[test]
24    fn policy_and_audit_integration() {
25        let policy = SecurityPolicy::default_for(PathBuf::from("/tmp/test"));
26        assert!(policy.can_act());
27        assert_eq!(policy.autonomy(), AutonomyLevel::Supervised);
28    }
29
30    #[test]
31    fn audit_event_types() {
32        let event = AuditEvent::new(AuditEventType::CommandExecution);
33        assert!(!event.event_id.is_empty());
34    }
35}