Class: LogStruct::ConfigStruct::Filters

Inherits:
T::Struct
  • Object
show all
Includes:
Sorbet::SerializeSymbolKeys
Defined in:
lib/log_struct/config_struct/filters.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Sorbet::SerializeSymbolKeys

#serialize, #to_h

Constructor Details

#initialize(filter_keys:, filter_keys_with_hashes:, hash_salt: "l0g5t0p", hash_length: 12, email_addresses: true, url_passwords: true, credit_card_numbers: true, phone_numbers: true, ssns: true, ip_addresses: false, mac_addresses: false) ⇒ void

Parameters:

  • filter_keys (Array<Symbol>)

    Keys that should be filtered in nested structures such as request params and job arguments. Filtered data includes information about Hashes and Arrays.

    { _filtered: { _class: "Hash", # Class of the filtered value _bytes: 1234, # Length of JSON string in bytes _keys_count: 3, # Number of keys in the hash _keys: [:key1, :key2, :key3], # First 10 keys in the hash } }

    Default: [:password, :password_confirmation, :pass, :pw, :token, :secret, :credentials, :creds, :auth, :authentication, :authorization]

  • filter_keys_with_hashes (Array<Symbol>)

    Keys where string values should include an SHA256 hash. Useful for tracing emails across requests (e.g. sign in, sign up) while protecting privacy. Default: [:email, :email_address]

  • hash_salt (String) (defaults to: "l0g5t0p")

    Hash salt for SHA256 hashing (typically used for email addresses) Used for both param filters and string scrubbing Default: "l0g5t0p"

  • hash_length (Integer) (defaults to: 12)

    Hash length for SHA256 hashing (typically used for email addresses) Used for both param filters and string scrubbing Default: 12

  • email_addresses (Boolean) (defaults to: true)

    Filter email addresses. Also controls email filtering for the ActionMailer integration (to, from, recipient fields, etc.) Default: true

  • url_passwords (Boolean) (defaults to: true)

    Filter URL passwords Default: true

  • credit_card_numbers (Boolean) (defaults to: true)

    Filter credit card numbers Default: true

  • phone_numbers (Boolean) (defaults to: true)

    Filter phone numbers Default: true

  • ssns (Boolean) (defaults to: true)

    Filter social security numbers Default: true

  • ip_addresses (Boolean) (defaults to: false)

    Filter IP addresses Default: false

  • mac_addresses (Boolean) (defaults to: false)

    Filter MAC addresses Default: false



# File ''

prop :filter_keys,
        T::Array[Symbol],
        factory: -> {
          %i[
            password password_confirmation pass pw token secret
            credentials auth authentication authorization
            credit_card ssn social_security
          ]
        }
prop :filter_keys_with_hashes,
        T::Array[Symbol],
        factory: -> { %i[email email_address] }
prop :hash_salt, String, default: "l0g5t0p"
prop :hash_length, Integer, default: 12
prop :email_addresses, T::Boolean, default: true
prop :url_passwords, T::Boolean, default: true
prop :credit_card_numbers, T::Boolean, default: true
prop :phone_numbers, T::Boolean, default: true
prop :ssns, T::Boolean, default: true
prop :ip_addresses, T::Boolean, default: false
prop :mac_addresses, T::Boolean, default: false

Instance Attribute Details

#credit_card_numbersBoolean

Filter credit card numbers Default: true

Returns:

  • (Boolean)


# File ''

prop :credit_card_numbers, T::Boolean, default: true

#email_addressesBoolean

Filter email addresses. Also controls email filtering for the ActionMailer integration (to, from, recipient fields, etc.) Default: true

Returns:

  • (Boolean)


# File ''

prop :email_addresses, T::Boolean, default: true

#filter_keysArray<Symbol>

Keys that should be filtered in nested structures such as request params and job arguments. Filtered data includes information about Hashes and Arrays.

{ _filtered: { _class: "Hash", # Class of the filtered value _bytes: 1234, # Length of JSON string in bytes _keys_count: 3, # Number of keys in the hash _keys: [:key1, :key2, :key3], # First 10 keys in the hash } }

Default: [:password, :password_confirmation, :pass, :pw, :token, :secret, :credentials, :creds, :auth, :authentication, :authorization]

Returns:

  • (Array<Symbol>)


# File ''

prop :filter_keys,
T::Array[Symbol],
factory: -> {
  %i[
    password password_confirmation pass pw token secret
    credentials auth authentication authorization
    credit_card ssn social_security
  ]
}

#filter_keys_with_hashesArray<Symbol>

Keys where string values should include an SHA256 hash. Useful for tracing emails across requests (e.g. sign in, sign up) while protecting privacy. Default: [:email, :email_address]

Returns:

  • (Array<Symbol>)


# File ''

prop :filter_keys_with_hashes,
T::Array[Symbol],
factory: -> { %i[email email_address] }

#hash_lengthInteger

Hash length for SHA256 hashing (typically used for email addresses) Used for both param filters and string scrubbing Default: 12

Returns:

  • (Integer)


# File ''

prop :hash_length, Integer, default: 12

#hash_saltString

Hash salt for SHA256 hashing (typically used for email addresses) Used for both param filters and string scrubbing Default: "l0g5t0p"

Returns:

  • (String)


# File ''

prop :hash_salt, String, default: "l0g5t0p"

#ip_addressesBoolean

Filter IP addresses Default: false

Returns:

  • (Boolean)


# File ''

prop :ip_addresses, T::Boolean, default: false

#mac_addressesBoolean

Filter MAC addresses Default: false

Returns:

  • (Boolean)


# File ''

prop :mac_addresses, T::Boolean, default: false

#phone_numbersBoolean

Filter phone numbers Default: true

Returns:

  • (Boolean)


# File ''

prop :phone_numbers, T::Boolean, default: true

#ssnsBoolean

Filter social security numbers Default: true

Returns:

  • (Boolean)


# File ''

prop :ssns, T::Boolean, default: true

#url_passwordsBoolean

Filter URL passwords Default: true

Returns:

  • (Boolean)


# File ''

prop :url_passwords, T::Boolean, default: true