sqreen-kit 0.1.0 → 0.2.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: feacd9986438ad22e08e0e752a59058956dd63ddfe00b90bdfd094e030db4ced
4
- data.tar.gz: 318d9d80e07bcc4336740effe1b243e1f279fdbb5bef84be9dab3425884ae7e0
3
+ metadata.gz: f8cbb82a739997ab9d4faa9689df9d3854ddb32a45361b4a572f2e13b4104dfa
4
+ data.tar.gz: 456792fc273fce1cd31c9b4d8d60f94321ac8315dd968cd992ffb1c42607c9d1
5
5
  SHA512:
6
- metadata.gz: f43f0e22c84f9d15d749ad4ffaf9078ac9b0d1357d24f8f866cd7af5dfaf395489bd5fb913fdaeacc6b74a195491c42292b34b7c075271c3f4e788d95b105e4d
7
- data.tar.gz: 91879a34437077558e6efb76196a9dd6b71fbdb0bdcc00c1c5d9e348035d749e8c0fd3b9537e8ec189737c7a0df1c0a5813b4ef0afd20c6fb0858b00aae2620c
6
+ metadata.gz: cd0f3f2a07777f0996eee497e87c4a843fb20d1b8d9cab255383b89d489c067ed83442ea77ccd12f5d463073b9b7ab4200e84067bbef21abdf04773773a41187
7
+ data.tar.gz: 4e8b6b71afc3e951de917e4a712f2fdabb0f70f627d7253c6e87e07bbe29efab839cf4e6a23de125ce752fb3856c8314adf4b2a636588c824c95d10776dd7506
data/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.2
4
+
5
+ * Make user agent optional for HTTP context payload
6
+
7
+ ## 0.2.1
8
+
9
+ * Add configurable certificate store
10
+
11
+ ## 0.2.0
12
+
13
+ * Add configurable source information
14
+ * Fix wire-level formats
15
+
16
+ ## 0.1.1
17
+
18
+ * Fixed a potential conflict prefenting agent startup
19
+
3
20
  ## 0.1.0
4
21
 
5
22
  * Extracted code from Ruby agent
data/lib/sqreen-kit.rb CHANGED
@@ -1,3 +1,8 @@
1
+ # typed: ignore
2
+
1
3
  # frozen_string_literal: true
2
4
 
5
+ # Copyright (c) 2015 Sqreen. All Rights Reserved.
6
+ # Please refer to our terms for more information: https://www.sqreen.com/terms.html
7
+
3
8
  require 'sqreen/kit'
data/lib/sqreen/kit.rb CHANGED
@@ -1,3 +1,9 @@
1
+ # typed: ignore
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/kit/version'
1
7
  require 'sqreen/kit/configuration'
2
8
  require 'sqreen/kit/retry_policy'
3
9
  require 'sqreen/kit/http_client'
@@ -12,10 +18,6 @@ module Sqreen
12
18
  module Kit
13
19
  # Factories using the global configuration
14
20
  class << self
15
- def version
16
- @version ||= Gem.loaded_specs['sqreen-kit'].version
17
- end
18
-
19
21
  def auth_signals_client
20
22
  @auth_signals_client ||=
21
23
  Signals::AuthSignalsClient.new(
@@ -55,6 +57,7 @@ module Sqreen
55
57
  @http_client ||=
56
58
  HttpClient.new(Configuration.ingestion_url,
57
59
  retry_policy,
60
+ certificate_store: Configuration.certificate_store,
58
61
  proxy_address: Configuration.proxy_address,
59
62
  proxy_port: Configuration.proxy_port,
60
63
  proxy_user: Configuration.proxy_user,
@@ -1,4 +1,10 @@
1
+ # typed: ignore
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
+
1
6
  require 'logger'
7
+ require 'sqreen/kit/version'
2
8
 
3
9
  module Sqreen
4
10
  module Kit
@@ -8,6 +14,7 @@ module Sqreen
8
14
 
9
15
  # http client related
10
16
  attr_accessor :ingestion_url,
17
+ :certificate_store,
11
18
  :proxy_address,
12
19
  :proxy_port,
13
20
  :proxy_user,
@@ -29,6 +36,11 @@ module Sqreen
29
36
  :batch_flush_size,
30
37
  :batch_max_size
31
38
 
39
+ # Default value for source in signals taking a generic value
40
+ # Something like 'sqreen:agent:ruby:1.11.1'
41
+ # XXX: do not provide default and force user to explicitly set source?
42
+ attr_accessor :default_source
43
+
32
44
  # @param [String] url
33
45
  def proxy_url=(url)
34
46
  if url.nil?
@@ -59,6 +71,8 @@ module Sqreen
59
71
  logger.progname = 'sqreen-kit'
60
72
 
61
73
  self.ingestion_url = 'https://ingestion.sqreen.com/'
74
+
75
+ self.default_source = "sqreen:kit:#{Sqreen::Kit.version}"
62
76
  end
63
77
 
64
78
  set_defaults
@@ -1,3 +1,8 @@
1
+ # typed: ignore
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
+
1
6
  require 'net/http'
2
7
  require 'uri'
3
8
 
@@ -32,6 +37,7 @@ module Sqreen
32
37
  opts[:proxy_port], opts[:proxy_user],
33
38
  opts[:proxy_pass])
34
39
  @http.use_ssl = @base_url.scheme.downcase == 'https'
40
+ @http.cert_store = opts[:certificate_store]
35
41
  @http.verify_mode = OpenSSL::SSL::VERIFY_NONE if ENV['SQREEN_SSL_NO_VERIFY'] # for testing
36
42
 
37
43
  @http.open_timeout = opts[:connect_timeout] || DEFAULT_CONNECT_TIMEOUT_S
@@ -1,3 +1,8 @@
1
+ # typed: ignore
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
+
1
6
  require 'sqreen/kit/http_client/unexpected_status_error'
2
7
 
3
8
  module Sqreen
@@ -1,3 +1,8 @@
1
+ # typed: ignore
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
+
1
6
  module Sqreen
2
7
  module Kit
3
8
  class HttpClient
@@ -1,3 +1,8 @@
1
+ # typed: ignore
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
+
1
6
  require 'sqreen/kit/configuration'
2
7
 
3
8
  module Sqreen
@@ -1,3 +1,8 @@
1
+ # typed: ignore
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
+
1
6
  require 'sqreen/kit/loggable'
2
7
 
3
8
  module Sqreen
@@ -1,3 +1,8 @@
1
+ # typed: ignore
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
+
1
6
  require 'sqreen/kit/signals/dto_helper'
2
7
 
3
8
  module Sqreen
@@ -1,3 +1,8 @@
1
+ # typed: ignore
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
+
1
6
  require 'sqreen/kit/signals/signals_client'
2
7
 
3
8
  module Sqreen
@@ -1,3 +1,8 @@
1
+ # typed: ignore
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
+
1
6
  require 'sqreen/kit/loggable'
2
7
 
3
8
  module Sqreen
@@ -1,3 +1,8 @@
1
+ # typed: ignore
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
+
1
6
  require 'sqreen/kit/signals/dto_helper'
2
7
 
3
8
  # reference: https://github.com/sqreen/SignalsSchemas/blob/master/schemas/context/http/2020-01-01T00_00_00_000Z/schema.cue
@@ -18,7 +23,7 @@ class Sqreen::Kit::Signals::Context::HttpContext
18
23
  :params_json, :params_other].freeze
19
24
 
20
25
  SCHEMA_VERSION = 'http/2020-01-01T00:00:00.000Z'.freeze
21
- add_mandatory_attrs :headers, :user_agent, :scheme, :verb,
26
+ add_mandatory_attrs :headers, :scheme, :verb,
22
27
  :host, :port, :remote_ip, :remote_port, :path
23
28
 
24
29
  # @return [String]
@@ -102,6 +107,14 @@ class Sqreen::Kit::Signals::Context::HttpContext
102
107
  # @return [String]
103
108
  attr_accessor :content_type
104
109
 
110
+ # Datadog trace id
111
+ # @return [Integer]
112
+ attr_accessor :datadog_trace_id
113
+
114
+ # Datadog span id
115
+ # @return [Integer]
116
+ attr_accessor :datadog_span_id
117
+
105
118
  def to_h
106
119
  check_mandatories
107
120
 
@@ -134,6 +147,9 @@ class Sqreen::Kit::Signals::Context::HttpContext
134
147
  content_type: content_type,
135
148
  content_length: content_length,
136
149
  }),
137
- }
150
+ }.merge!(compact_hash(
151
+ datadog_trace_id: datadog_trace_id,
152
+ datadog_span_id: datadog_span_id,
153
+ ))
138
154
  end
139
155
  end
@@ -1,3 +1,8 @@
1
+ # typed: ignore
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
+
1
6
  require 'json'
2
7
 
3
8
  module Sqreen
@@ -9,6 +14,8 @@ module Sqreen
9
14
  NilClass, Hash, Array, Numeric, TrueClass, FalseClass
10
15
  ].freeze
11
16
 
17
+ RFC_3339_FMT = '%Y-%m-%dT%H:%M:%S.%3N%:z'.freeze
18
+
12
19
  module ClassMethods
13
20
  # method should have been defined initially in an ancestor
14
21
  def validate_str_attr(attr, regex)
@@ -49,8 +56,17 @@ module Sqreen
49
56
  @self_mandatory_attrs += args
50
57
  end
51
58
 
59
+ def readonly_attrs(*attrs)
60
+ attrs.each do |attr|
61
+ define_method :"#{attr}=" do |value|
62
+ raise "Attribute #{attr} is read-only" unless public_send(attr).nil?
63
+ super(value)
64
+ end
65
+ end
66
+ end
67
+
52
68
  def self_mandatory_attrs
53
- @self_mandatory_attrs || []
69
+ @self_mandatory_attrs ||= []
54
70
  end
55
71
 
56
72
  def mandatory_attrs
@@ -76,11 +92,14 @@ module Sqreen
76
92
  end
77
93
 
78
94
  define_method attr do
79
- cur_val = instance_variable_get("@#{attr}")
95
+ var = "@#{attr}"
96
+ return nil unless instance_variable_defined?(var)
97
+
98
+ cur_val = instance_variable_get(var)
80
99
 
81
100
  return nil if cur_val.nil?
82
101
  return cur_val if cur_val.is_a?(String)
83
- cur_val.strftime('%Y-%m-%dT%H:%M:%S.%L%z')
102
+ cur_val.strftime(RFC_3339_FMT)
84
103
  end
85
104
  end
86
105
 
@@ -128,7 +147,9 @@ module Sqreen
128
147
  end
129
148
 
130
149
  def to_json
131
- res = (@filters || []).reduce(to_h) { |accum, filter| filter[accum] }
150
+ return to_h.to_json unless instance_variable_defined?(:@filters)
151
+
152
+ res = @filters.reduce(to_h) { |accum, filter| filter[accum] }
132
153
  res.to_json
133
154
  end
134
155
 
@@ -1,3 +1,8 @@
1
+ # typed: ignore
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
+
1
6
  require 'sqreen/kit/signals/dto_helper'
2
7
  require 'sqreen/kit/signals/signal'
3
8
 
@@ -1,3 +1,8 @@
1
+ # typed: ignore
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
+
1
6
  require 'sqreen/kit/signals/dto_helper'
2
7
  require 'sqreen/kit/signals/signal'
3
8
 
@@ -1,3 +1,8 @@
1
+ # typed: ignore
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
+
1
6
  require 'sqreen/kit/signals/dto_helper'
2
7
  require 'sqreen/kit/signals/signal_attributes'
3
8
 
@@ -1,3 +1,8 @@
1
+ # typed: ignore
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
+
1
6
  require 'sqreen/kit/signals/dto_helper'
2
7
  require 'sqreen/kit/signals/stack_trace'
3
8
  require 'sqreen/kit/signals/actor'
@@ -55,6 +60,14 @@ module Sqreen
55
60
  # @param [Exception] e
56
61
  attr_writer :exception
57
62
 
63
+ # Datadog trace id
64
+ # @return [Integer]
65
+ attr_accessor :datadog_trace_id
66
+
67
+ # Datadog span id
68
+ # @return [Integer]
69
+ attr_accessor :datadog_span_id
70
+
58
71
  def stack_trace
59
72
  if @exception
60
73
  Sqreen::Kit::StackTrace.parse(@exception)
@@ -95,8 +108,10 @@ module Sqreen
95
108
 
96
109
  def to_h
97
110
  {
98
- agent_type: 'ruby',
99
- }.merge(super())
111
+ infra: {
112
+ agent_type: 'ruby',
113
+ }.merge(super()),
114
+ }
100
115
  end
101
116
  end
102
117
  end # module Signals
@@ -1,3 +1,8 @@
1
+ # typed: ignore
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
+
1
6
  require 'sqreen/kit/http_client'
2
7
 
3
8
  module Sqreen
@@ -1,3 +1,8 @@
1
+ # typed: ignore
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
+
1
6
  # Includes code from Airbrake Technologies, Inc., under the MIT licence
2
7
  # see https://github.com/airbrake/airbrake-ruby/blob/c172657dcd4eeaf62ea23f0f7d6111be2373ea59/LICENSE.md
3
8
 
@@ -1,3 +1,8 @@
1
+ # typed: ignore
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
+
1
6
  require 'sqreen/kit/signals/dto_helper'
2
7
  require 'sqreen/kit/signals/signal'
3
8
  require 'sqreen/kit/signals/signal_attributes'
@@ -1,3 +1,8 @@
1
+ # typed: ignore
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
+
1
6
  module Sqreen
2
7
  module Kit
3
8
  module StringSanitizer
@@ -0,0 +1,15 @@
1
+ # typed: ignore
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
+ # Split to avoid a circular dependency between kit.rb and configuration.rb
7
+ module Sqreen
8
+ module Kit
9
+ class << self
10
+ def version
11
+ @version ||= Gem.loaded_specs['sqreen-kit'].version
12
+ end
13
+ end
14
+ end
15
+ end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sqreen-kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Loic Nageleisen
8
8
  - Gustavo Lopes
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-06-11 00:00:00.000000000 Z
12
+ date: 2021-04-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sqreen-backport
@@ -25,8 +25,8 @@ dependencies:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
27
  version: 0.1.0
28
- description:
29
- email:
28
+ description:
29
+ email:
30
30
  executables: []
31
31
  extensions: []
32
32
  extra_rdoc_files: []
@@ -34,7 +34,6 @@ files:
34
34
  - CHANGELOG.md
35
35
  - LICENSE
36
36
  - lib/sqreen-kit.rb
37
- - lib/sqreen.rb
38
37
  - lib/sqreen/kit.rb
39
38
  - lib/sqreen/kit/configuration.rb
40
39
  - lib/sqreen/kit/http_client.rb
@@ -55,12 +54,13 @@ files:
55
54
  - lib/sqreen/kit/signals/stack_trace.rb
56
55
  - lib/sqreen/kit/signals/trace.rb
57
56
  - lib/sqreen/kit/string_sanitizer.rb
57
+ - lib/sqreen/kit/version.rb
58
58
  homepage: https://sqreen.com
59
59
  licenses:
60
60
  - Sqreen
61
61
  metadata:
62
62
  source_code_uri: https://github.com/sqreen/ruby-sdk
63
- post_install_message:
63
+ post_install_message:
64
64
  rdoc_options: []
65
65
  require_paths:
66
66
  - lib
@@ -75,8 +75,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
75
75
  - !ruby/object:Gem::Version
76
76
  version: '0'
77
77
  requirements: []
78
- rubygems_version: 3.0.3
79
- signing_key:
78
+ rubygems_version: 3.2.3
79
+ signing_key:
80
80
  specification_version: 4
81
81
  summary: Sqreen development kit for Ruby
82
82
  test_files: []
data/lib/sqreen.rb DELETED
@@ -1 +0,0 @@
1
- module Sqreen; end