config.rs 744 Bytes
Newer Older
1
// SPDX-FileCopyrightText: Copyright (c) 2024-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
3
4
5
6
7
8
// SPDX-License-Identifier: Apache-2.0

use std::sync::OnceLock;

#[derive(Clone, Copy)]
pub struct AuditPolicy {
    pub enabled: bool,
9
    pub force_logging: bool,
10
11
12
13
}

static POLICY: OnceLock<AuditPolicy> = OnceLock::new();

14
/// Audit is enabled if we have at least one sink
15
pub fn init_from_env() -> AuditPolicy {
16
17
    AuditPolicy {
        enabled: std::env::var("DYN_AUDIT_SINKS").is_ok(),
18
19
20
21
        force_logging: std::env::var("DYN_AUDIT_FORCE_LOGGING")
            .ok()
            .and_then(|v| v.parse::<bool>().ok())
            .unwrap_or(false),
22
    }
23
24
25
26
27
}

pub fn policy() -> AuditPolicy {
    *POLICY.get_or_init(init_from_env)
}