module Failbot::SensitiveDataScrubber
Constants
- BASIC_AUTH_REGEX
- FILTERED
- MAX_DEPTH
- QUERY_STRING_REGEX
- SENSITIVE_KEYWORDS
Public Instance Methods
scrub(hash)
click to toggle source
# File lib/failbot/sensitive_data_scrubber.rb, line 9 def scrub(hash) transform_values(hash) do |value| scrub_urls(value) end end
scrub_url(url)
click to toggle source
# File lib/failbot/sensitive_data_scrubber.rb, line 34 def scrub_url(url) filtered_url = url.gsub(QUERY_STRING_REGEX) do |_| "#{$~[:key]}=#{FILTERED}" end filtered_url.gsub(BASIC_AUTH_REGEX) do |m| ($1 && m.gsub($1, "#{FILTERED}:#{FILTERED}")) || m end rescue url end
scrub_urls(value, max_depth=MAX_DEPTH)
click to toggle source
# File lib/failbot/sensitive_data_scrubber.rb, line 15 def scrub_urls(value, max_depth=MAX_DEPTH) return value if max_depth <= 0 case value when String scrub_url(value) when Array value.map do |element| scrub_urls(element, max_depth - 1) end when Hash transform_values(value) do |nested_value| scrub_urls(nested_value, max_depth - 1) end else value end end
transform_values(hash) { |value| ... }
click to toggle source
Took this from ruby 2.4+ because we do not want to rely on specific ruby versions.
# File lib/failbot/sensitive_data_scrubber.rb, line 49 def transform_values(hash) return {} if hash.empty? result = Hash.new hash.each do |key, value| result[key] = yield(value) end result end