6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
# File 'lib/tcell_agent/config/unknown_options.rb', line 6
def self.get_unknown_options(config_json)
messages = []
known_tcell_env_vars = Set.new(
[
'TCELL_AGENT_SERVER',
'TCELL_AGENT_APP_ID',
'TCELL_AGENT_API_KEY',
'TCELL_HMAC_KEY',
'TCELL_PASSWORD_HMAC_KEY',
'TCELL_AGENT_HOST_IDENTIFIER',
'TCELL_API_URL',
'TCELL_INPUT_URL',
'TCELL_DEMOMODE',
'TCELL_AGENT_HOME',
'TCELL_AGENT_LOG_DIR',
'TCELL_AGENT_CONFIG',
'TCELL_AGENT_ALLOW_PAYLOADS',
'TCELL_AGENT_LOG_LEVEL',
'TCELL_AGENT_LOG_FILENAME',
'TCELL_AGENT_LOG_ENABLED'
]
)
ENV.keys.each do |environment_key|
if environment_key =~ /^TCELL_/ && !known_tcell_env_vars.include?(environment_key)
messages << "Unrecognized environment parameter (TCELL_*) found: #{environment_key}"
end
end
begin
key_differences = []
if config_json
first_level_keys = %w[version applications]
key_differences = config_json.keys - first_level_keys
applications = config_json.fetch('applications', nil)
if applications
if applications.size > 1
messages << 'Multiple applications detected in config file'
elsif applications.size == 1
application = applications[0]
second_level_keys = %w[
name
app_id
api_key
fetch_policies_from_tcell
preload_policy_filename
log_dir
tcell_api_url
tcell_input_url
host_identifier
hipaaSafeMode
hmac_key
password_hmac_key
js_agent_api_base_url
js_agent_url
max_csp_header_bytes
event_batch_size_limit
allow_payloads
reverse_proxy
reverse_proxy_ip_address_header
demomode
logging_options
data_exposure
disable_all
enabled
enable_event_manager
enable_policy_polling
enable_instrumentation
enable_intercept_requests
instrument_for_events
enabled_instrumentations
stdout_logger
]
key_differences += (application.keys - second_level_keys)
if application.fetch('logging_options', nil)
logging_options = application['logging_options']
key_differences += (logging_options.keys - %w[enabled level filename])
end
if application.fetch('data_exposure', nil)
data_exposure = application['data_exposure']
key_differences += (data_exposure.keys - ['max_data_ex_db_records_per_request'])
end
if application.fetch('enabled_instrumentations', nil)
enabled_instrumentations = application['enabled_instrumentations']
key_differences += (enabled_instrumentations.keys - %w[doorkeeper devise authlogic])
end
end
end
key_differences.each do |key|
messages << "Unrecognized config setting key: #{key}"
end
end
rescue StandardError => exception
messages << "Something went wrong verifying config file: #{exception}"
end
messages
end
|