Skip to main content

Crate qubit_sanitize

Crate qubit_sanitize 

Source
Expand description

§Qubit Sanitize

Provides reusable sanitization utilities for logs, diagnostics, and structured debug output.

The core API sanitizes one (field, value) pair at a time and requires the caller to choose a NameMatchMode.

use qubit_sanitize::{
    FieldSanitizer,
    NameMatchMode,
};

let sanitizer = FieldSanitizer::default();

assert_eq!(
    sanitizer.sanitize_value("password", "secret", NameMatchMode::Exact),
    "<redacted>",
);
assert_eq!(
    sanitizer.sanitize_value("OPENAI_API_KEY", "abcdef", NameMatchMode::Exact),
    "abcdef",
);
assert_eq!(
    sanitizer.sanitize_value(
        "OPENAI_API_KEY",
        "abcdef",
        NameMatchMode::ExactOrSuffix,
    ),
    "****",
);

Adapter APIs apply the same explicit matching mode to structured inputs.

use http::header::{
    AUTHORIZATION,
    HeaderValue,
};
use qubit_sanitize::{
    HttpHeaderSanitizer,
    NameMatchMode,
};

let sanitizer = HttpHeaderSanitizer::default();
let value = HeaderValue::from_static("Bearer abcdef");

assert_eq!(
    sanitizer.sanitize_value(&AUTHORIZATION, &value, NameMatchMode::ExactOrSuffix),
    "****",
);

Re-exports§

pub use adapter::ArgvSanitizer;
pub use adapter::EnvSanitizer;
pub use adapter::FormUrlEncodedSanitizer;
pub use adapter::HttpBodySanitizer;
pub use adapter::HttpHeaderSanitizer;
pub use adapter::UrlSanitizer;
pub use core::DEFAULT_EXTRA_FIELDS;
pub use core::FieldSanitizePolicy;
pub use core::FieldSanitizer;
pub use core::MaskPolicies;
pub use core::MaskPolicy;
pub use core::NameMatchMode;
pub use core::SensitiveFieldPreset;
pub use core::SensitiveFields;
pub use core::SensitivityLevel;
pub use core::canonicalize_field_name;

Modules§

adapter
Adapters for sanitizing structured objects with core masking policies.
core
Core field-name matching and value masking primitives.