upfluence-utils 0.11.3 → 0.11.4

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: 9013ce0511178b0b0f2bbfd16704d016e41ef8126c0632fdc8289a6f2928dabd
4
- data.tar.gz: '09dc43555bf935fe12be76168692d24b72b4ae064f7a7edc27a1e52b0e0acdcb'
3
+ metadata.gz: b5084c4d4ec0053296da08af0f701e3533c3c04e097c58bd48d674ab6ce02f15
4
+ data.tar.gz: 04dff5174d8d510c22c8236f54d1033100bdde9102955e66bb28e25e8c94146e
5
5
  SHA512:
6
- metadata.gz: 0bf6d2d6b2ea5398ebed18ed22e21951414a35f67a7bc4c8b8461b55600337c0e7e88ace3cc040c7e3c4affafbe7f0c702cfadd490b317dd63f3747081ed9d4e
7
- data.tar.gz: ac825fd4f3bcb4bd5e8dd33b512bd53c7e61f8cd5049ef427a53960f8f4dc9108f66fe70e80e768aa2c58f02a0fc1d4854e9f42a290803e7455a4d77c4a7609a
6
+ metadata.gz: 10db3f2f7d9e1ae72d51ae9f6007d994b6e1b7d86752a68c94d212c1bb894360c6bf7f7f88857afb67c8fe780077f72d251499b0146d32583aa4686f4a24568f
7
+ data.tar.gz: 811cba7d199587b6d65ebac7a613c23e47f159c5e581d1d09340c34c76a684a8b1d1ae6a56f1a97eae93dabc717673246d8a65805aa35d32fd94834da2fe1cd5
@@ -0,0 +1,16 @@
1
+ module Upfluence
2
+ module HTTP
3
+ module Middleware
4
+ class RequestStapler
5
+ def initialize(app)
6
+ @app = app
7
+ end
8
+
9
+ def call(env)
10
+ Server.request = Rack::Request.new(env)
11
+ @app.call(env)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -14,23 +14,26 @@ require 'upfluence/http/middleware/application_headers'
14
14
  require 'upfluence/http/middleware/handle_exception'
15
15
  require 'upfluence/http/middleware/prometheus'
16
16
  require 'upfluence/http/middleware/cors'
17
+ require 'upfluence/http/middleware/request_stapler'
17
18
 
18
19
  module Upfluence
19
20
  module HTTP
20
21
  class Server
22
+ REQUEST_CONTEXT_KEY = :uhtt_request_context
23
+ DEFAULT_MIDDLEWARES = []
21
24
  DEFAULT_OPTIONS = {
22
- server: :puma,
23
- Port: ENV['PORT'] || 8080,
24
- Host: '0.0.0.0',
25
- threaded: true,
26
- interfaces: [],
27
- push_gateway_url: ENV['PUSH_GATEWAY_URL'],
25
+ server: :puma,
26
+ Port: ENV.fetch('PORT', 8080),
27
+ Host: '0.0.0.0',
28
+ threaded: true,
29
+ interfaces: [],
30
+ push_gateway_url: ENV.fetch('PUSH_GATEWAY_URL', nil),
28
31
  push_gateway_interval: 15, # sec
29
- app_name: ENV['APP_NAME'] || 'uhttp-rb-server',
30
- unit_name: ENV['UNIT_NAME'] || 'uhttp-rb-server-anonymous',
31
- base_processor_klass: nil,
32
- base_handler_klass: nil,
33
- debug: ENV['DEBUG']
32
+ app_name: ENV.fetch('APP_NAME', 'uhttp-rb-server'),
33
+ unit_name: ENV.fetch('UNIT_NAME','uhttp-rb-server-anonymous'),
34
+ base_processor_klass: nil,
35
+ base_handler_klass: nil,
36
+ debug: ENV.fetch('DEBUG', nil)
34
37
  }
35
38
 
36
39
  def initialize(options = {}, &block)
@@ -43,6 +46,7 @@ module Upfluence
43
46
  end
44
47
 
45
48
  @builder = Builder.new do
49
+ use Middleware::RequestStapler
46
50
  use Middleware::Logger
47
51
  use Middleware::Prometheus
48
52
  use Middleware::ApplicationHeaders, base_handler
@@ -55,6 +59,11 @@ module Upfluence
55
59
  use Rack::ETag
56
60
  use Middleware::CORS if Upfluence.env.development?
57
61
 
62
+ DEFAULT_MIDDLEWARES.each do |m|
63
+ m = [m] unless m.is_a?(Array)
64
+ use(*m)
65
+ end
66
+
58
67
  map '/healthcheck' do
59
68
  run(opts[:healthcheck_endpoint] || Endpoint::Healthcheck.new)
60
69
  end
@@ -87,6 +96,16 @@ module Upfluence
87
96
  end
88
97
  end
89
98
 
99
+ class << self
100
+ def request
101
+ Thread.current[REQUEST_CONTEXT_KEY]
102
+ end
103
+
104
+ def request=(req)
105
+ Thread.current[REQUEST_CONTEXT_KEY] = req
106
+ end
107
+ end
108
+
90
109
  private
91
110
 
92
111
  def run_prometheus_exporter
@@ -101,7 +120,7 @@ module Upfluence
101
120
 
102
121
  begin
103
122
  push.replace Prometheus::Client.registry
104
- rescue => e
123
+ rescue StandardError => e
105
124
  Upfluence.error_logger.notify(e)
106
125
  end
107
126
  end
@@ -1,5 +1,5 @@
1
1
  module Upfluence
2
2
  module Utils
3
- VERSION = '0.11.3'.freeze
3
+ VERSION = '0.11.4'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: upfluence-utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.3
4
+ version: 0.11.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Upfluence
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-03 00:00:00.000000000 Z
11
+ date: 2023-06-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -267,6 +267,7 @@ files:
267
267
  - lib/upfluence/http/middleware/handle_exception.rb
268
268
  - lib/upfluence/http/middleware/logger.rb
269
269
  - lib/upfluence/http/middleware/prometheus.rb
270
+ - lib/upfluence/http/middleware/request_stapler.rb
270
271
  - lib/upfluence/http/server.rb
271
272
  - lib/upfluence/logger.rb
272
273
  - lib/upfluence/mixin/html_scrubbing.rb