rust_supervisor/config/
audit.rs1use confique::Config;
7use schemars::JsonSchema;
8use serde::{Deserialize, Serialize};
9
10#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Config, JsonSchema)]
12pub struct AuditConfig {
13 #[config(default = true)]
15 #[serde(default = "default_true")]
16 pub enabled: bool,
17
18 #[config(default = "memory")]
22 #[serde(default = "default_audit_backend")]
23 pub backend: String,
24
25 #[config(default = "/tmp/rust-supervisor-demo/audit.jsonl")]
27 #[schemars(!default)]
28 #[serde(default = "default_file_path")]
29 pub file_path: String,
30
31 #[config(default = "fail_closed")]
36 #[serde(default = "default_fail_closed")]
37 pub failure_strategy: String,
38
39 #[config(default = 1000)]
41 #[serde(default = "default_1000")]
42 pub max_defer_queue: usize,
43}
44
45impl Default for AuditConfig {
46 fn default() -> Self {
48 Self {
49 enabled: true,
50 backend: "memory".into(),
51 file_path: "/tmp/rust-supervisor-demo/audit.jsonl".to_string(),
52 failure_strategy: "fail_closed".into(),
53 max_defer_queue: 1000,
54 }
55 }
56}
57
58fn default_true() -> bool {
60 true
61}
62
63fn default_audit_backend() -> String {
65 "memory".into()
66}
67
68fn default_file_path() -> String {
70 "/tmp/rust-supervisor-demo/audit.jsonl".to_string()
71}
72
73fn default_fail_closed() -> String {
75 "fail_closed".into()
76}
77
78fn default_1000() -> usize {
80 1000
81}