Class: LogStruct::ConfigStruct::Filters
- Inherits:
-
T::Struct
- Object
- T::Struct
- LogStruct::ConfigStruct::Filters
- Includes:
- Sorbet::SerializeSymbolKeys
- Defined in:
- lib/log_struct/config_struct/filters.rb
Instance Attribute Summary collapse
-
#credit_card_numbers ⇒ Boolean
Filter credit card numbers Default: true.
-
#email_addresses ⇒ Boolean
Filter email addresses.
-
#filter_keys ⇒ Array<Symbol>
Keys that should be filtered in nested structures such as request params and job arguments.
-
#filter_keys_with_hashes ⇒ Array<Symbol>
Keys where string values should include an SHA256 hash.
-
#hash_length ⇒ Integer
Hash length for SHA256 hashing (typically used for email addresses) Used for both param filters and string scrubbing Default: 12.
-
#hash_salt ⇒ String
Hash salt for SHA256 hashing (typically used for email addresses) Used for both param filters and string scrubbing Default: "l0g5t0p".
-
#ip_addresses ⇒ Boolean
Filter IP addresses Default: false.
-
#mac_addresses ⇒ Boolean
Filter MAC addresses Default: false.
-
#phone_numbers ⇒ Boolean
Filter phone numbers Default: true.
-
#ssns ⇒ Boolean
Filter social security numbers Default: true.
-
#url_passwords ⇒ Boolean
Filter URL passwords Default: true.
Instance Method Summary collapse
Methods included from Sorbet::SerializeSymbolKeys
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
|
# 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_numbers ⇒ Boolean
Filter credit card numbers Default: true
|
# File '' prop :credit_card_numbers, T::Boolean, default: true |
#email_addresses ⇒ Boolean
Filter email addresses. Also controls email filtering for the ActionMailer integration (to, from, recipient fields, etc.) Default: true
|
# File '' prop :email_addresses, T::Boolean, default: true |
#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]
|
# 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_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]
|
# File '' prop :filter_keys_with_hashes, T::Array[Symbol], factory: -> { %i[email email_address] } |
#hash_length ⇒ Integer
Hash length for SHA256 hashing (typically used for email addresses) Used for both param filters and string scrubbing Default: 12
|
# File '' prop :hash_length, Integer, default: 12 |
#hash_salt ⇒ String
Hash salt for SHA256 hashing (typically used for email addresses) Used for both param filters and string scrubbing Default: "l0g5t0p"
|
# File '' prop :hash_salt, String, default: "l0g5t0p" |
#ip_addresses ⇒ Boolean
Filter IP addresses Default: false
|
# File '' prop :ip_addresses, T::Boolean, default: false |
#mac_addresses ⇒ Boolean
Filter MAC addresses Default: false
|
# File '' prop :mac_addresses, T::Boolean, default: false |
#phone_numbers ⇒ Boolean
Filter phone numbers Default: true
|
# File '' prop :phone_numbers, T::Boolean, default: true |
#ssns ⇒ Boolean
Filter social security numbers Default: true
|
# File '' prop :ssns, T::Boolean, default: true |
#url_passwords ⇒ Boolean
Filter URL passwords Default: true
|
# File '' prop :url_passwords, T::Boolean, default: true |