upfluence-utils 0.12.4 → 0.12.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e67cac5fc648ad6c1cb990302c90ebbcc7bdc223b123d9f36a21c3fb747e70c6
4
- data.tar.gz: ad21ddcc94cbd8f315b32de0e0f688535e33c6d20150c35a83ff2c93d9a96b90
3
+ metadata.gz: ea9c2d716e73e1b7e75c956697b57490c5f186dc7dc6fbce331b8c9dec57ca59
4
+ data.tar.gz: 4d77fded409b2ed689b8bd3dc8f4ff4c464474ac130d7e1437b67ccd37e48429
5
5
  SHA512:
6
- metadata.gz: 1b79963b4c852be8ebee05b257ef4513e1e4315968f7b2002f9e2e514805b8a056e6da1108b6b879dad45ddbf0b797e30ee4412afd72f3c2a5d91282753ef35f
7
- data.tar.gz: de0c8cb4ef5665bc6c4d307103785e333ed450aeafd84caa413ed69f45e3dfdb26da194b11620bbe36e16d7ec0e542a86a14f186dbc073265227eee3faf7bc8f
6
+ metadata.gz: b61684b170e6fa36e93189d58866cd359d3a83bf12fa58d89b4c881451f947a637c4bf6b6f84adb592f4018d544e0486474277c9dc21270aceabee27c9bd7656
7
+ data.tar.gz: 6451711114ae81c5e04be67c97df30978cb87ef3873df55f648c7cc2ee7675bf33fa00da6e4d555354c638a1be6a1f2df0e22abe0ddaad551ee9778211b7881f
@@ -1,11 +1,13 @@
1
1
  require 'rack/handler'
2
2
  require 'rack/etag'
3
+ require 'rack/timeout/base'
3
4
  require 'prometheus/client'
4
5
  require 'prometheus/client/push'
5
6
  require "prometheus/middleware/exporter"
6
7
 
7
8
  require 'upfluence/environment'
8
9
  require 'upfluence/error_logger'
10
+ require 'upfluence/logger'
9
11
 
10
12
  require 'upfluence/http/builder'
11
13
  require 'upfluence/http/endpoint/healthcheck'
@@ -17,10 +19,12 @@ require 'upfluence/http/middleware/prometheus'
17
19
  require 'upfluence/http/middleware/cors'
18
20
  require 'upfluence/http/middleware/request_stapler'
19
21
 
22
+ Rack::Timeout::Logger.disable
23
+
20
24
  module Upfluence
21
25
  module HTTP
22
26
  class Server
23
- REQUEST_CONTEXT_KEY = :uhtt_request_context
27
+ REQUEST_CONTEXT_KEY = :uhttp_request_context
24
28
  DEFAULT_MIDDLEWARES = []
25
29
  DEFAULT_OPTIONS = {
26
30
  server: :puma,
@@ -36,6 +40,8 @@ module Upfluence
36
40
  base_processor_klass: nil,
37
41
  base_handler_klass: nil,
38
42
  max_threads: ENV.fetch('HTTP_SERVER_MAX_THREADS', 5).to_i,
43
+ request_timeout: ENV['HTTP_SERVER_REQUEST_TIMEOUT']&.to_i,
44
+ middlewares: [],
39
45
  debug: ENV.fetch('DEBUG', nil)
40
46
  }
41
47
 
@@ -49,6 +55,10 @@ module Upfluence
49
55
  end
50
56
 
51
57
  @builder = Builder.new do
58
+ if opts[:request_timeout]
59
+ use Rack::Timeout, service_timeout: opts[:request_timeout]
60
+ end
61
+
52
62
  use Middleware::RequestStapler
53
63
  use Middleware::Logger
54
64
  use Middleware::Prometheus
@@ -63,7 +73,7 @@ module Upfluence
63
73
  use Rack::ETag
64
74
  use Middleware::CORS if Upfluence.env.development?
65
75
 
66
- DEFAULT_MIDDLEWARES.each do |m|
76
+ (DEFAULT_MIDDLEWARES + opts[:middlewares]).each do |m|
67
77
  m = [m] unless m.is_a?(Array)
68
78
  use(*m)
69
79
  end
@@ -1,5 +1,5 @@
1
1
  module Upfluence
2
2
  module Utils
3
- VERSION = '0.12.4'.freeze
3
+ VERSION = '0.12.6'.freeze
4
4
  end
5
5
  end
data/rbutils.gemspec CHANGED
@@ -33,4 +33,5 @@ Gem::Specification.new do |spec|
33
33
  spec.add_runtime_dependency 'userializer'
34
34
  spec.add_runtime_dependency 'activerecord'
35
35
  spec.add_runtime_dependency 'loofah'
36
+ spec.add_runtime_dependency 'rack-timeout'
36
37
  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.12.4
4
+ version: 0.12.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Upfluence
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-31 00:00:00.000000000 Z
11
+ date: 2023-11-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -234,6 +234,20 @@ dependencies:
234
234
  - - ">="
235
235
  - !ruby/object:Gem::Version
236
236
  version: '0'
237
+ - !ruby/object:Gem::Dependency
238
+ name: rack-timeout
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
244
+ type: :runtime
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
237
251
  description:
238
252
  email:
239
253
  - dev@upfluence.com
@@ -309,7 +323,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
309
323
  - !ruby/object:Gem::Version
310
324
  version: '0'
311
325
  requirements: []
312
- rubygems_version: 3.2.32
326
+ rubygems_version: 3.3.3
313
327
  signing_key:
314
328
  specification_version: 4
315
329
  summary: Upfluence common utils for Ruby projects