class OneApm::Configuration::HighSecuritySource

Constants

OA_OBFUSCATED
OA_OFF
OA_RAW
OA_SET_TO_OBFUSCATED

Public Class Methods

new(local_settings) click to toggle source
Calls superclass method OneApm::Support::DottedHash::new
# File lib/one_apm/configuration/high_security_source.rb, line 15
def initialize(local_settings)
  super({
    :ssl => true,

    :capture_params           => false,
    :'resque.capture_params'  => false,
    :'sidekiq.capture_params' => false,

    # These aren't strictly necessary as add_custom_parameters is
    # directly responsible for ignoring incoming param, but we disallow
    # attributes by these settings just to be safe
    :'transaction_tracer.capture_attributes' => false,
    :'error_collector.capture_attributes'    => false,
    :'browser_monitoring.capture_attributes' => false,
    :'analytics_events.capture_attributes'   => false,

    :'transaction_tracer.record_sql' => record_sql_setting(local_settings, :'transaction_tracer.record_sql'),
    :'slow_sql.record_sql'           => record_sql_setting(local_settings, :'slow_sql.record_sql'),
    :'mongo.obfuscate_queries'       => true,

    :'custom_insights_events.enabled'   => false,
    :'strip_exception_messages.enabled' => true
  })
end

Public Instance Methods

record_sql_setting(local_settings, key) click to toggle source
# File lib/one_apm/configuration/high_security_source.rb, line 40
def record_sql_setting(local_settings, key)
  original_value  = local_settings[key]
  result = if OA_SET_TO_OBFUSCATED.include?(original_value)
    OA_OBFUSCATED
  else
    OA_OFF
  end

  if result != original_value
    OneApm::Manager.logger.info("Disabling setting #{key}='#{original_value}' because high security mode is enabled. Value will be '#{result}'")
  end

  result
end