Provides data sanitization for audit logging to prevent information disclosure.
This module ensures that sensitive data is properly masked or removed from audit logs while maintaining sufficient information for security investigation.
Summary
Functions
Creates a security hash of sensitive data for correlation while protecting actual values.
Sanitizes connection data for audit logging.
Sanitizes OAuth error information for audit logging.
Sanitizes provider configuration for audit logging.
Sanitizes session data for audit logging.
Functions
Creates a security hash of sensitive data for correlation while protecting actual values.
Examples
iex> Tango.Audit.Sanitizer.hash_sensitive_data("sensitive-value")
"SHA256:E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855"
Sanitizes connection data for audit logging.
Examples
iex> connection = %{access_token: "token123", tenant_id: "tenant-456"}
iex> Tango.Audit.Sanitizer.sanitize_connection(connection)
%{access_token: "[REDACTED]", tenant_id: "tenant***"}
Sanitizes OAuth error information for audit logging.
Examples
iex> error_info = %{reason: "invalid_client", details: %{client_secret: "secret"}}
iex> Tango.Audit.Sanitizer.sanitize_error(error_info)
%{reason: "invalid_client", details: %{client_secret: "[REDACTED]"}}
Sanitizes provider configuration for audit logging.
Examples
iex> provider = %{client_secret: "secret123", name: "GitHub"}
iex> Tango.Audit.Sanitizer.sanitize_provider(provider)
%{client_secret: "[REDACTED]", name: "GitHub"}
Sanitizes session data for audit logging.
Removes or masks sensitive fields while preserving important metadata.
Examples
iex> session = %{tenant_id: "123", state: "abc", code_verifier: "secret"}
iex> Tango.Audit.Sanitizer.sanitize_session(session)
%{tenant_id: "123", state: "abc***", code_verifier: "[REDACTED]"}