sqreen 1.22.1 → 1.23.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/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
|