Class RedactableArgument

java.lang.Object
com.couchbase.client.core.logging.RedactableArgument

public class RedactableArgument extends Object
Wraps a piece of information that is subject to log redaction. Useful when logging sensitive information:
 log.info("Opened bucket {}", RedactableArgument.redactMeta(bucketName));
 
Or when including sensitive information in an Exception message:
 throw new RuntimeException("Failed to process "
     + RedactableArgument.redactUser(documentId));
 
The global redaction level is controlled by calling LogRedaction.setRedactionLevel(RedactionLevel)
Since:
1.5.3
See Also:
  • Method Details

    • redactUser

      public static RedactableArgument redactUser(Object message)
      A redactable argument of user data. User data is data that is stored into Couchbase by the application user account, including:
      • Key and value pairs in JSON documents, or the key exclusively
      • Application/Admin usernames that identify the human person
      • Query statements included in the log file collected by support that leak the document fields (Select floor_price from stock).
      • Names and email addresses asked during product registration and alerting
      • Usernames
      • Document xattrs
      Parameters:
      message - the message to redact.
      Returns:
      a new RedactableArgument.
    • redactMeta

      public static RedactableArgument redactMeta(Object message)
      A redactable argument of meta data. Metadata is logical data needed by Couchbase to store and process User data, including:
      • Cluster name
      • Bucket names
      • DDoc/view names
      • View code
      • Index names
      • Mapreduce Design Doc Name and Definition (IP)
      • XDCR Replication Stream Names
      • And other couchbase resource specific meta data
      Parameters:
      message - the message to redact.
      Returns:
      a new RedactableArgument.
    • redactSystem

      public static RedactableArgument redactSystem(Object message)
      A redactable argument of system data. System data is data from other parts of the system Couchbase interacts with over the network, including:
      • IP addresses
      • IP tables
      • Hosts names
      • Ports
      • DNS topology
      Parameters:
      message - the message to redact.
      Returns:
      a new RedactableArgument.
    • type

      public com.couchbase.client.core.logging.RedactableArgument.ArgumentType type()
      The type of this redactable argument.
    • message

      public String message()
      The message of this redactable argument.
    • toString

      public String toString()
      Overrides:
      toString in class Object