sqreen 1.22.1 → 1.23.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/sqreen/frameworks/generic.rb +6 -0
- data/lib/sqreen/version.rb +1 -1
- data/lib/sqreen/weave/legacy/instrumentation.rb +28 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e6b62b53864420b27411824bf5d51c80949a7e98357edd128e64ee0e77039476
|
4
|
+
data.tar.gz: 85a9d762af8063c9e42978100907561397bd00e8278978b9a67f01e5fe52670f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ca4c03f84749101fe1b2235ead061cf597bfb0a4d08d95d9cd3b24cdb9ca77eea3928fa00ce4db22219acea02c93539251f384002ccb3e4fffd1c484d54ad938
|
7
|
+
data.tar.gz: 02e372ee65122d783685df0756bf069a30225348239703465a7a20f751865bc5ab79ba9c0c99dafc1551d1812532669089681dc71b8375cb4791df749f9d3977
|
data/CHANGELOG.md
CHANGED
@@ -377,6 +377,10 @@ module Sqreen
|
|
377
377
|
end
|
378
378
|
end
|
379
379
|
|
380
|
+
def graphql_args=(args)
|
381
|
+
request.env['sqreen.request.graphql_args'] = args if request
|
382
|
+
end
|
383
|
+
|
380
384
|
def self.parameters_from_request(request)
|
381
385
|
return {} unless request
|
382
386
|
|
@@ -388,6 +392,8 @@ module Sqreen
|
|
388
392
|
if (p = rack_params(request))
|
389
393
|
r[P_RACK] = p
|
390
394
|
end
|
395
|
+
p = request.env['sqreen.request.graphql_args']
|
396
|
+
r['graphql'] = p if p
|
391
397
|
# Add grape parameters if seen
|
392
398
|
p = request.env['grape.request.params']
|
393
399
|
r[P_GRAPE] = p if p
|
data/lib/sqreen/version.rb
CHANGED
@@ -230,6 +230,8 @@ class Sqreen::Weave::Legacy::Instrumentation
|
|
230
230
|
@hooks << add_callback('weave,hardcoded', hard_callback, strategy)
|
231
231
|
end
|
232
232
|
|
233
|
+
@hooks << install_graphql_hook
|
234
|
+
|
233
235
|
metrics_engine = self.metrics_engine
|
234
236
|
|
235
237
|
request_hook = Sqreen::Graft::Hook['Sqreen::ShrinkWrap#call', strategy]
|
@@ -566,4 +568,30 @@ class Sqreen::Weave::Legacy::Instrumentation
|
|
566
568
|
Sqreen::Rules::RunUserActions.new(Sqreen, :auth_track, 1),
|
567
569
|
]
|
568
570
|
end
|
571
|
+
|
572
|
+
def install_graphql_hook
|
573
|
+
hook = Sqreen::Graft::Hook['GraphQL::Execution::Multiplex.run_queries']
|
574
|
+
|
575
|
+
hook.add do
|
576
|
+
before('weave,test,graphql', mandatory: true) do |call|
|
577
|
+
find_args = proc do |*items|
|
578
|
+
args = []
|
579
|
+
items.each do |e|
|
580
|
+
args << e if e.is_a?(GraphQL::Language::Nodes::Argument)
|
581
|
+
args += find_args.call(*e.children)
|
582
|
+
end
|
583
|
+
args
|
584
|
+
end
|
585
|
+
queries = call.args[1]
|
586
|
+
qdocs = queries.map { |q| [q.query_string, q.document] }
|
587
|
+
qargs = qdocs.map do |q, doc|
|
588
|
+
next if doc.nil?
|
589
|
+
[q, find_args.call(*doc.children).map { |arg| { arg.name => arg.value } }.reduce(&:merge)]
|
590
|
+
end
|
591
|
+
Sqreen.framework.graphql_args = Hash[*qargs.flatten(1)]
|
592
|
+
end
|
593
|
+
end.install
|
594
|
+
|
595
|
+
hook
|
596
|
+
end
|
569
597
|
end
|
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.23.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sqreen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sqreen-backport
|
@@ -348,7 +348,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
348
348
|
- !ruby/object:Gem::Version
|
349
349
|
version: '0'
|
350
350
|
requirements: []
|
351
|
-
rubygems_version: 3.
|
351
|
+
rubygems_version: 3.2.3
|
352
352
|
signing_key:
|
353
353
|
specification_version: 4
|
354
354
|
summary: Sqreen Ruby agent
|