servus 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/servus/config.rb +34 -0
- data/lib/servus/support/logger.rb +19 -2
- data/lib/servus/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: '0560049029e2b803e64323461fb8d5c8b56cdc1d69c5b5de83ca0e6a1858a65c'
|
|
4
|
+
data.tar.gz: 0d1e6a460fbbf1b5c7c26811ee8fbb5eccccf151f2c4d8d94a8270c1f1d5ef41
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f59299fe30eb202c0a71858dc2c1491a29f4dd5a330e65ec471b412a1e060329bfca5c51eea2d7759fbddebbb2747fd65ccb79ecd048fc4d2dc07faba3f92420
|
|
7
|
+
data.tar.gz: 81f9a1277db2e3d6b4d383c29a4be4f9c4cf92ba1bac10f680e687ea6cf4438067ec4b2b19d05ccd3909962e87e7eec738721a28cf1b65f281548bec7fbcb42e
|
data/lib/servus/config.rb
CHANGED
|
@@ -112,6 +112,39 @@ module Servus
|
|
|
112
112
|
# @see Servus::Support::Lockdown
|
|
113
113
|
attr_reader :lockdown_enabled
|
|
114
114
|
|
|
115
|
+
# Keys whose values are filtered from Servus's service-call argument
|
|
116
|
+
# logging, shown as `[FILTERED]`. Accepts the same notations as
|
|
117
|
+
# ActiveSupport::ParameterFilter (partial-match strings/symbols,
|
|
118
|
+
# regexps, procs).
|
|
119
|
+
#
|
|
120
|
+
# Defaults to `[]` — no filtering. Set the keys you want masked in your
|
|
121
|
+
# initializer; Rails users can simply reuse their app's request-log
|
|
122
|
+
# filtering as the value:
|
|
123
|
+
#
|
|
124
|
+
# config.log_filter_parameters = Rails.application.config.filter_parameters
|
|
125
|
+
#
|
|
126
|
+
# @return [Array] parameter filter patterns
|
|
127
|
+
attr_reader :log_filter_parameters
|
|
128
|
+
|
|
129
|
+
# Sets the log filter list, invalidating the memoized
|
|
130
|
+
# {#parameter_filter}. The list is frozen on assignment — reconfigure
|
|
131
|
+
# by assigning a new list, not by mutating in place.
|
|
132
|
+
#
|
|
133
|
+
# @param value [Array] parameter filter patterns
|
|
134
|
+
# @return [Array] the new value
|
|
135
|
+
def log_filter_parameters=(value)
|
|
136
|
+
@log_filter_parameters = Array(value).dup.freeze
|
|
137
|
+
@parameter_filter = nil
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
# Parameter filter built from {#log_filter_parameters}, memoized until
|
|
141
|
+
# the list is reassigned.
|
|
142
|
+
#
|
|
143
|
+
# @return [ActiveSupport::ParameterFilter]
|
|
144
|
+
def parameter_filter
|
|
145
|
+
@parameter_filter ||= ActiveSupport::ParameterFilter.new(log_filter_parameters)
|
|
146
|
+
end
|
|
147
|
+
|
|
115
148
|
# Sets whether lockdown is enforced, immediately re-applying the
|
|
116
149
|
# resulting `.new` visibility to {Servus::Base}.
|
|
117
150
|
#
|
|
@@ -132,6 +165,7 @@ module Servus
|
|
|
132
165
|
@require_service_arguments_schema = false
|
|
133
166
|
@require_service_result_schema = false
|
|
134
167
|
@require_event_payload_schema = false
|
|
168
|
+
@log_filter_parameters = [].freeze
|
|
135
169
|
end
|
|
136
170
|
|
|
137
171
|
def set_default_directories
|
|
@@ -17,12 +17,17 @@ module Servus
|
|
|
17
17
|
end
|
|
18
18
|
end
|
|
19
19
|
|
|
20
|
-
# Logs a call to a service
|
|
20
|
+
# Logs a call to a service.
|
|
21
|
+
#
|
|
22
|
+
# When {Servus::Config#log_filter_parameters} is configured, matching
|
|
23
|
+
# argument values are replaced with `[FILTERED]` before logging. With
|
|
24
|
+
# the default empty list, arguments are logged verbatim.
|
|
21
25
|
#
|
|
22
26
|
# @param service_class [Class] The service class
|
|
23
27
|
# @param args [Hash] The arguments passed to the service
|
|
24
28
|
def self.log_call(service_class, args)
|
|
25
|
-
|
|
29
|
+
rendered = log_parameters(args)
|
|
30
|
+
logger.info("Calling #{service_class.name} with args: #{rendered.inspect}")
|
|
26
31
|
end
|
|
27
32
|
|
|
28
33
|
# Logs a result from a service
|
|
@@ -88,6 +93,18 @@ module Servus
|
|
|
88
93
|
def self.log_exception(service_class, exception)
|
|
89
94
|
logger.error("#{service_class.name} uncaught exception: #{exception.class} - #{exception.message}")
|
|
90
95
|
end
|
|
96
|
+
|
|
97
|
+
# Filters parameters for logging based on the configured filter list.
|
|
98
|
+
#
|
|
99
|
+
# @param params [Hash] The parameters to filter
|
|
100
|
+
# @return [Hash] The filtered parameters
|
|
101
|
+
def self.log_parameters(params)
|
|
102
|
+
if Servus.config.log_filter_parameters.empty?
|
|
103
|
+
params
|
|
104
|
+
else
|
|
105
|
+
Servus.config.parameter_filter.filter(params)
|
|
106
|
+
end
|
|
107
|
+
end
|
|
91
108
|
end
|
|
92
109
|
end
|
|
93
110
|
end
|
data/lib/servus/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: servus
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.7.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sebastian Scholl
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-08-15 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|