sqreen 1.20.4 → 1.21.0.beta1
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/CHANGELOG.md +0 -25
- data/lib/sqreen/actions/block_user.rb +1 -1
- data/lib/sqreen/actions/redirect_ip.rb +1 -1
- data/lib/sqreen/actions/redirect_user.rb +1 -1
- data/lib/sqreen/condition_evaluator.rb +2 -8
- data/lib/sqreen/configuration.rb +1 -1
- data/lib/sqreen/deferred_logger.rb +14 -50
- data/lib/sqreen/deliveries/batch.rb +8 -1
- data/lib/sqreen/ecosystem.rb +80 -0
- data/lib/sqreen/ecosystem/dispatch_table.rb +43 -0
- data/lib/sqreen/ecosystem/http/net_http.rb +51 -0
- data/lib/sqreen/ecosystem/http/rack_request.rb +38 -0
- data/lib/sqreen/ecosystem/loggable.rb +13 -0
- data/lib/sqreen/ecosystem/module_api.rb +30 -0
- data/lib/sqreen/ecosystem/module_api/event_listener.rb +18 -0
- data/lib/sqreen/ecosystem/module_api/instrumentation.rb +23 -0
- data/lib/sqreen/ecosystem/module_api/signal_producer.rb +26 -0
- data/lib/sqreen/ecosystem/module_api/tracing_push_down.rb +34 -0
- data/lib/sqreen/ecosystem/module_api/transaction_storage.rb +71 -0
- data/lib/sqreen/ecosystem/module_registry.rb +39 -0
- data/lib/sqreen/ecosystem/redis/redis_connection.rb +35 -0
- data/lib/sqreen/ecosystem/tracing/sampler.rb +160 -0
- data/lib/sqreen/ecosystem/tracing/sampling_configuration.rb +150 -0
- data/lib/sqreen/ecosystem/tracing/signals/tracing_client.rb +53 -0
- data/lib/sqreen/ecosystem/tracing/signals/tracing_server.rb +53 -0
- data/lib/sqreen/ecosystem/tracing_id_setup.rb +34 -0
- data/lib/sqreen/ecosystem/transaction_storage.rb +64 -0
- data/lib/sqreen/ecosystem_integration.rb +70 -0
- data/lib/sqreen/ecosystem_integration/around_callbacks.rb +89 -0
- data/lib/sqreen/ecosystem_integration/instrumentation_service.rb +38 -0
- data/lib/sqreen/ecosystem_integration/request_lifecycle_tracking.rb +56 -0
- data/lib/sqreen/ecosystem_integration/signal_consumption.rb +35 -0
- data/lib/sqreen/encoding_sanitizer.rb +27 -0
- data/lib/sqreen/events/request_record.rb +1 -0
- data/lib/sqreen/frameworks/generic.rb +15 -10
- data/lib/sqreen/frameworks/rails.rb +7 -0
- data/lib/sqreen/frameworks/request_recorder.rb +0 -2
- data/lib/sqreen/graft/call.rb +23 -72
- data/lib/sqreen/graft/callback.rb +1 -1
- data/lib/sqreen/graft/hook.rb +85 -187
- data/lib/sqreen/graft/hook_point.rb +1 -1
- data/lib/sqreen/legacy/instrumentation.rb +10 -22
- data/lib/sqreen/legacy/old_event_submission_strategy.rb +8 -3
- data/lib/sqreen/log.rb +2 -3
- data/lib/sqreen/log/loggable.rb +0 -1
- data/lib/sqreen/logger.rb +0 -24
- data/lib/sqreen/metrics_store.rb +0 -11
- data/lib/sqreen/null_logger.rb +0 -22
- data/lib/sqreen/remote_command.rb +3 -1
- data/lib/sqreen/rules.rb +4 -8
- data/lib/sqreen/rules/blacklist_ips_cb.rb +2 -2
- data/lib/sqreen/rules/custom_error_cb.rb +3 -3
- data/lib/sqreen/rules/rule_cb.rb +0 -2
- data/lib/sqreen/rules/waf_cb.rb +3 -3
- data/lib/sqreen/runner.rb +21 -33
- data/lib/sqreen/session.rb +2 -0
- data/lib/sqreen/signals/conversions.rb +6 -1
- data/lib/sqreen/version.rb +1 -1
- data/lib/sqreen/weave/legacy/instrumentation.rb +103 -194
- data/lib/sqreen/worker.rb +2 -6
- metadata +35 -10
- data/lib/sqreen/deprecation.rb +0 -38
- data/lib/sqreen/weave/budget.rb +0 -46
data/lib/sqreen/worker.rb
CHANGED
@@ -23,15 +23,11 @@ module Sqreen
|
|
23
23
|
Sqreen.log.debug("Starting Sqreen #{Sqreen::VERSION}")
|
24
24
|
prevent_startup = Sqreen.framework.prevent_startup
|
25
25
|
if !prevent_startup
|
26
|
-
logger
|
27
|
-
log_level = logger.send(:format_severity, logger.level)
|
28
|
-
log_filename = logger.instance_eval { @logdev.filename }
|
29
|
-
warn "process.pid:#{Process.pid} sqreen.log.level:#{log_level} sqreen.log.location:#{log_filename.inspect}"
|
26
|
+
warn "[#{Process.pid}] Sqreen logging at level #{Sqreen.log.instance_eval { @logger }.level} to #{Sqreen.log.instance_eval { @logger }.instance_eval { @logdev.filename }}"
|
30
27
|
runner = Sqreen::Runner.new(configuration, framework)
|
31
28
|
runner.run_watcher
|
32
|
-
Sqreen.log.info("process.pid:#{Process.pid} sqreen.start:true")
|
33
29
|
else
|
34
|
-
Sqreen.log.
|
30
|
+
Sqreen.log.debug("#{prevent_startup} prevented Sqreen startup")
|
35
31
|
end
|
36
32
|
rescue Sqreen::TokenNotFoundException
|
37
33
|
Sqreen.log.error "Sorry but we couldn't find your Sqreen token.\nYour application is NOT currently protected by Sqreen.\n\nHave you filled your config/sqreen.yml?\n\n"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sqreen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.21.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sqreen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-06-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sqreen-backport
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.2.
|
33
|
+
version: 0.2.1
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.2.
|
40
|
+
version: 0.2.1
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: sq_mini_racer
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -122,7 +122,31 @@ files:
|
|
122
122
|
- lib/sqreen/dependency/rails.rb
|
123
123
|
- lib/sqreen/dependency/sentry.rb
|
124
124
|
- lib/sqreen/dependency/sinatra.rb
|
125
|
-
- lib/sqreen/
|
125
|
+
- lib/sqreen/ecosystem.rb
|
126
|
+
- lib/sqreen/ecosystem/dispatch_table.rb
|
127
|
+
- lib/sqreen/ecosystem/http/net_http.rb
|
128
|
+
- lib/sqreen/ecosystem/http/rack_request.rb
|
129
|
+
- lib/sqreen/ecosystem/loggable.rb
|
130
|
+
- lib/sqreen/ecosystem/module_api.rb
|
131
|
+
- lib/sqreen/ecosystem/module_api/event_listener.rb
|
132
|
+
- lib/sqreen/ecosystem/module_api/instrumentation.rb
|
133
|
+
- lib/sqreen/ecosystem/module_api/signal_producer.rb
|
134
|
+
- lib/sqreen/ecosystem/module_api/tracing_push_down.rb
|
135
|
+
- lib/sqreen/ecosystem/module_api/transaction_storage.rb
|
136
|
+
- lib/sqreen/ecosystem/module_registry.rb
|
137
|
+
- lib/sqreen/ecosystem/redis/redis_connection.rb
|
138
|
+
- lib/sqreen/ecosystem/tracing/sampler.rb
|
139
|
+
- lib/sqreen/ecosystem/tracing/sampling_configuration.rb
|
140
|
+
- lib/sqreen/ecosystem/tracing/signals/tracing_client.rb
|
141
|
+
- lib/sqreen/ecosystem/tracing/signals/tracing_server.rb
|
142
|
+
- lib/sqreen/ecosystem/tracing_id_setup.rb
|
143
|
+
- lib/sqreen/ecosystem/transaction_storage.rb
|
144
|
+
- lib/sqreen/ecosystem_integration.rb
|
145
|
+
- lib/sqreen/ecosystem_integration/around_callbacks.rb
|
146
|
+
- lib/sqreen/ecosystem_integration/instrumentation_service.rb
|
147
|
+
- lib/sqreen/ecosystem_integration/request_lifecycle_tracking.rb
|
148
|
+
- lib/sqreen/ecosystem_integration/signal_consumption.rb
|
149
|
+
- lib/sqreen/encoding_sanitizer.rb
|
126
150
|
- lib/sqreen/endpoint_testing.rb
|
127
151
|
- lib/sqreen/error_handling_middleware.rb
|
128
152
|
- lib/sqreen/event.rb
|
@@ -255,7 +279,6 @@ files:
|
|
255
279
|
- lib/sqreen/version.rb
|
256
280
|
- lib/sqreen/waf_error.rb
|
257
281
|
- lib/sqreen/weave.rb
|
258
|
-
- lib/sqreen/weave/budget.rb
|
259
282
|
- lib/sqreen/weave/hardcoded.rb
|
260
283
|
- lib/sqreen/weave/instrumentor.rb
|
261
284
|
- lib/sqreen/weave/legacy.rb
|
@@ -278,7 +301,9 @@ metadata:
|
|
278
301
|
changelog_uri: https://docs.sqreen.com/ruby/release-notes/
|
279
302
|
source_code_uri: https://github.com/sqreen/ruby-agent
|
280
303
|
bug_tracker_uri: https://github.com/sqreen/ruby-agent/issues
|
281
|
-
post_install_message:
|
304
|
+
post_install_message: |2
|
305
|
+
This is a Sqreen beta release and may not work in all situations.
|
306
|
+
Make sure to review CHANGELOG.md for important details.
|
282
307
|
rdoc_options: []
|
283
308
|
require_paths:
|
284
309
|
- lib
|
@@ -289,11 +314,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
289
314
|
version: 1.9.3
|
290
315
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
291
316
|
requirements:
|
292
|
-
- - "
|
317
|
+
- - ">"
|
293
318
|
- !ruby/object:Gem::Version
|
294
|
-
version:
|
319
|
+
version: 1.3.1
|
295
320
|
requirements: []
|
296
|
-
rubygems_version: 3.1.
|
321
|
+
rubygems_version: 3.1.2
|
297
322
|
signing_key:
|
298
323
|
specification_version: 4
|
299
324
|
summary: Sqreen Ruby agent
|
data/lib/sqreen/deprecation.rb
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
# typed: strong
|
2
|
-
|
3
|
-
# Copyright (c) 2015 Sqreen. All Rights Reserved.
|
4
|
-
# Please refer to our terms for more information: https://www.sqreen.com/terms.html
|
5
|
-
|
6
|
-
require 'sqreen/log/loggable'
|
7
|
-
|
8
|
-
module Sqreen
|
9
|
-
module Deprecation
|
10
|
-
include Sqreen::Log::Loggable
|
11
|
-
|
12
|
-
module_function
|
13
|
-
|
14
|
-
def deprecate(method)
|
15
|
-
return unless ENV['SQREEN_DEBUG_DEPRECATION']
|
16
|
-
|
17
|
-
owner = method.owner
|
18
|
-
deprecated = :"_deprecated_#{method.name}"
|
19
|
-
klass = owner.is_a?(Module)
|
20
|
-
target = klass ? owner.to_s : owner.class.to_s
|
21
|
-
|
22
|
-
method.owner.instance_eval do
|
23
|
-
alias_method deprecated, method.name
|
24
|
-
|
25
|
-
define_method(method.name) do |*args, &block|
|
26
|
-
msg = [
|
27
|
-
"deprecation",
|
28
|
-
"target:#{target}",
|
29
|
-
"method:#{method.name}",
|
30
|
-
"caller:#{Kernel.caller_locations[0]}",
|
31
|
-
].join(' ')
|
32
|
-
Sqreen::Deprecation.logger.info(msg)
|
33
|
-
send(deprecated, *args, &block)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
data/lib/sqreen/weave/budget.rb
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
# typed: false
|
2
|
-
|
3
|
-
# Copyright (c) 2015 Sqreen. All Rights Reserved.
|
4
|
-
# Please refer to our terms for more information: https://www.sqreen.com/terms.html
|
5
|
-
|
6
|
-
require 'sqreen/log/loggable'
|
7
|
-
require 'sqreen/weave'
|
8
|
-
|
9
|
-
class Sqreen::Weave::Budget
|
10
|
-
include Sqreen::Log::Loggable
|
11
|
-
|
12
|
-
def initialize(threshold, ratio = nil)
|
13
|
-
@threshold = threshold
|
14
|
-
@ratio = ratio
|
15
|
-
end
|
16
|
-
|
17
|
-
def static?
|
18
|
-
threshold && !ratio
|
19
|
-
end
|
20
|
-
|
21
|
-
def dynamic?
|
22
|
-
threshold && ratio
|
23
|
-
end
|
24
|
-
|
25
|
-
attr_reader :threshold
|
26
|
-
attr_reader :ratio
|
27
|
-
|
28
|
-
def to_h
|
29
|
-
{ threshold: threshold, ratio: ratio }
|
30
|
-
end
|
31
|
-
|
32
|
-
class << self
|
33
|
-
attr_reader :current
|
34
|
-
|
35
|
-
def update(opts = nil)
|
36
|
-
Sqreen::Weave.logger.info("budget update:#{opts.inspect}")
|
37
|
-
|
38
|
-
return @current = nil if opts.nil? || opts.empty?
|
39
|
-
|
40
|
-
threshold = opts[:threshold]
|
41
|
-
ratio = opts[:ratio]
|
42
|
-
|
43
|
-
@current = new(threshold, ratio)
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|