Add XML documentation across gateway, worker, and .NET client
This commit is contained in:
@@ -1,7 +1,11 @@
|
||||
namespace MxGateway.Server.Diagnostics;
|
||||
|
||||
/// <summary>
|
||||
/// Redacts sensitive information from log entries.
|
||||
/// </summary>
|
||||
public static class GatewayLogRedactor
|
||||
{
|
||||
/// <summary>Placeholder for redacted values.</summary>
|
||||
public const string RedactedValue = "[redacted]";
|
||||
|
||||
private static readonly HashSet<string> SensitiveCommandMethods = new(StringComparer.OrdinalIgnoreCase)
|
||||
@@ -11,12 +15,20 @@ public static class GatewayLogRedactor
|
||||
"WriteSecured2"
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Determines whether a command method bears credentials.
|
||||
/// </summary>
|
||||
/// <param name="commandMethod">The command method name to check.</param>
|
||||
public static bool IsCredentialBearingCommand(string? commandMethod)
|
||||
{
|
||||
return commandMethod is not null
|
||||
&& SensitiveCommandMethods.Contains(commandMethod);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Redacts the API key secret portion of a Bearer authorization header.
|
||||
/// </summary>
|
||||
/// <param name="authorizationHeader">The authorization header value to redact.</param>
|
||||
public static string? RedactApiKey(string? authorizationHeader)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(authorizationHeader))
|
||||
@@ -46,6 +58,10 @@ public static class GatewayLogRedactor
|
||||
return $"{bearerPrefix}mxgw_{tokenParts[1]}_{RedactedValue}";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Redacts the client identity if it contains an API key.
|
||||
/// </summary>
|
||||
/// <param name="clientIdentity">The client identity string to redact.</param>
|
||||
public static string? RedactClientIdentity(string? clientIdentity)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(clientIdentity))
|
||||
@@ -58,6 +74,12 @@ public static class GatewayLogRedactor
|
||||
: clientIdentity;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Redacts a command value if it contains credentials or value logging is disabled.
|
||||
/// </summary>
|
||||
/// <param name="commandMethod">The command method name to check for credentials.</param>
|
||||
/// <param name="value">The command value to redact.</param>
|
||||
/// <param name="valueLoggingEnabled">Whether value logging is enabled.</param>
|
||||
public static object? RedactCommandValue(
|
||||
string? commandMethod,
|
||||
object? value,
|
||||
|
||||
Reference in New Issue
Block a user