mdqt 0.4.0 → 0.5.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.
@@ -15,6 +15,7 @@ module MDQT
15
15
  require 'active_support/cache/file_store'
16
16
  require 'active_support/cache/mem_cache_store'
17
17
  require 'active_support/logger'
18
+ require 'active_support/notifications'
18
19
 
19
20
  require_relative './metadata_response'
20
21
 
@@ -24,7 +25,7 @@ module MDQT
24
25
  @store_config = options[:cache_store]
25
26
  @verbose = options[:verbose] ? true : false
26
27
  @explain = options[:explain] ? true : false
27
- @tls_cert_check = options[:tls_cert_check] ? true : false
28
+ @tls_cert_check = options[:tls_cert_check] ? true : false
28
29
  end
29
30
 
30
31
  def base_url
@@ -38,17 +39,39 @@ module MDQT
38
39
  begin
39
40
  http_response = connection.get do |req|
40
41
  req.url request_path(entity_id)
41
- req.options.timeout = 100
42
- req.options.open_timeout = 5
42
+ req.options.timeout = 1000
43
+ req.options.open_timeout = 60
43
44
  end
44
45
  rescue Faraday::ConnectionFailed => oops
45
46
  abort "Error - can't connect to MDQ service at URL #{base_url}: #{oops.to_s}"
47
+ rescue Faraday::TimeoutError => oops
48
+ abort "Error - connection to #{base_url} timed out!"
46
49
  end
47
50
 
48
51
  MetadataResponse.new(entity_id, base_url, http_response, explain: explain?)
49
52
 
50
53
  end
51
54
 
55
+ def exists?(entity_id)
56
+
57
+ entity_id = prepare_id(entity_id)
58
+
59
+ begin
60
+ http_response = connection.head do |req|
61
+ req.url request_path(entity_id)
62
+ req.options.timeout = 1000
63
+ req.options.open_timeout = 60
64
+ end
65
+ rescue Faraday::ConnectionFailed => oops
66
+ abort "Error - can't connect to MDQ service at URL #{base_url}: #{oops.to_s}"
67
+ rescue Faraday::TimeoutError => oops
68
+ abort "Error - connection to #{base_url} timed out!"
69
+ end
70
+
71
+ http_response.status == 200
72
+
73
+ end
74
+
52
75
  def prepare_id(id)
53
76
  case id
54
77
  when :all, "", nil
@@ -96,10 +119,12 @@ module MDQT
96
119
  end
97
120
 
98
121
  def tidy_cache!
99
- cache_type.cleanup
122
+ return unless cache_store
123
+ cache_store.cleanup
100
124
  end
101
125
 
102
126
  def purge_cache!
127
+ return unless cache_store
103
128
  cache_store.clear
104
129
  end
105
130
 
@@ -119,11 +144,17 @@ module MDQT
119
144
  faraday.request :url_encoded
120
145
  faraday.use FaradayMiddleware::Gzip
121
146
  faraday.use FaradayMiddleware::FollowRedirects
122
- faraday.use :http_cache, faraday_cache_config if cache?
147
+ if cache?
148
+ faraday.use :http_cache,
149
+ store: cache_store,
150
+ shared_cache: false,
151
+ serializer: Marshal,
152
+ instrumenter: ActiveSupport::Notifications
153
+ end
123
154
  faraday.ssl.verify = tls_cert_check?
124
- faraday.headers['Accept'] = 'application/samlmetadata+xml'
155
+ faraday.headers['Accept'] = 'application/samlmetadata+xml'
125
156
  faraday.headers['Accept-Charset'] = 'utf-8'
126
- faraday.headers['User-Agent'] = "MDQT v#{MDQT::VERSION}"
157
+ faraday.headers['User-Agent'] = "MDQT v#{MDQT::VERSION}"
127
158
  #faraday.response :logger
128
159
  faraday.adapter :typhoeus
129
160
  end
@@ -140,16 +171,6 @@ module MDQT
140
171
  end
141
172
  end
142
173
 
143
- def faraday_cache_config
144
- {
145
- store: cache_store,
146
- shared_cache: false,
147
- serializer: Marshal,
148
- #logger: cache_logger,
149
- instrumenter: ActiveSupport::Notifications
150
- }
151
- end
152
-
153
174
  def cache_logger
154
175
  verbose? ? Logger.new('mdqt_cache.log') : nil
155
176
  end
data/lib/mdqt/client.rb CHANGED
@@ -28,6 +28,7 @@ module MDQT
28
28
  @cache_type = options[:cache_type] || :none
29
29
 
30
30
  @md_service = MetadataService.new(@base_url, verbose: @verbose, cache_type: @cache_type, explain: @explain, tls_cert_check: tls_cert_check?)
31
+ @md_service.tidy_cache!
31
32
 
32
33
  end
33
34
 
@@ -39,6 +40,10 @@ module MDQT
39
40
  md_service.get(entity_id)
40
41
  end
41
42
 
43
+ def exists?(entity_id)
44
+ md_service.exists?(entity_id)
45
+ end
46
+
42
47
  def transform_uri(uri)
43
48
  MDQT::Client::IdentifierUtils.transform_uri(uri)
44
49
  end
data/lib/mdqt/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module MDQT
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.0"
3
3
  end
data/mdqt.gemspec CHANGED
@@ -32,25 +32,26 @@ Gem::Specification.new do |spec|
32
32
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
33
33
  spec.require_paths = ["lib"]
34
34
 
35
- spec.add_dependency 'commander', "~>4.4"
36
- spec.add_dependency 'faraday', "~>0.15"
37
- spec.add_dependency 'faraday_middleware', "~>0.12"
38
- spec.add_dependency 'faraday-http-cache', "~>2.0"
39
- spec.add_dependency 'typhoeus', "~>1.3"
40
- spec.add_dependency 'activesupport', "~>5.2"
41
- spec.add_dependency 'dalli', "~>2.7"
42
- spec.add_dependency 'pastel', "~>0.7"
43
- spec.add_dependency 'terminal-table', "~>1.8"
35
+ spec.add_dependency 'commander', "~>4.6"
36
+ spec.add_dependency 'faraday', "~>1.8"
37
+ spec.add_dependency 'faraday_middleware', "~>1.2"
38
+ spec.add_dependency 'faraday-http-cache', "~>2.2"
39
+ spec.add_dependency 'typhoeus', "~>1.4"
40
+ spec.add_dependency 'activesupport', "~>6.1"
41
+ spec.add_dependency 'dalli', "~>3.0"
42
+ spec.add_dependency 'pastel', "~>0.8"
43
+ spec.add_dependency 'terminal-table', "~>3.0"
44
+ spec.add_dependency 'concurrent-ruby-ext', "1.1.9"
44
45
 
45
46
 
46
47
  #spec.add_dependency 'xmldsig'
47
48
 
48
- spec.add_development_dependency "bundler", "~> 1.13"
49
- spec.add_development_dependency "rake", "~> 10.0"
50
- spec.add_development_dependency "rspec", "~> 3.0"
51
- spec.add_development_dependency "cucumber", "~> 3.1"
52
- spec.add_development_dependency "aruba", "~> 0.14"
53
- spec.add_development_dependency "vcr", "~> 4.0"
49
+ spec.add_development_dependency "bundler", "~> 2"
50
+ spec.add_development_dependency "rake", ">= 12.3.3"
51
+ spec.add_development_dependency "rspec", "~> 3.10"
52
+ spec.add_development_dependency "cucumber", "~> 7.1"
53
+ spec.add_development_dependency "aruba", "~> 2.0"
54
+ spec.add_development_dependency "vcr", "~> 6.0"
54
55
  spec.add_development_dependency "yard", "~> 0.9"
55
- spec.add_development_dependency "yard-cucumber", "~> 4.0"
56
+ #spec.add_development_dependency "yard-cucumber", "~> 4.0"
56
57
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mdqt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pete Birkinshaw
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-05-27 00:00:00.000000000 Z
11
+ date: 2021-12-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: commander
@@ -16,210 +16,224 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '4.4'
19
+ version: '4.6'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '4.4'
26
+ version: '4.6'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: faraday
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.15'
33
+ version: '1.8'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.15'
40
+ version: '1.8'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: faraday_middleware
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0.12'
47
+ version: '1.2'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0.12'
54
+ version: '1.2'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: faraday-http-cache
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '2.0'
61
+ version: '2.2'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '2.0'
68
+ version: '2.2'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: typhoeus
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '1.3'
75
+ version: '1.4'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '1.3'
82
+ version: '1.4'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: activesupport
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '5.2'
89
+ version: '6.1'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '5.2'
96
+ version: '6.1'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: dalli
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '2.7'
103
+ version: '3.0'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '2.7'
110
+ version: '3.0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: pastel
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '0.7'
117
+ version: '0.8'
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '0.7'
124
+ version: '0.8'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: terminal-table
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: '1.8'
131
+ version: '3.0'
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: '1.8'
138
+ version: '3.0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: concurrent-ruby-ext
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - '='
144
+ - !ruby/object:Gem::Version
145
+ version: 1.1.9
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - '='
151
+ - !ruby/object:Gem::Version
152
+ version: 1.1.9
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: bundler
141
155
  requirement: !ruby/object:Gem::Requirement
142
156
  requirements:
143
157
  - - "~>"
144
158
  - !ruby/object:Gem::Version
145
- version: '1.13'
159
+ version: '2'
146
160
  type: :development
147
161
  prerelease: false
148
162
  version_requirements: !ruby/object:Gem::Requirement
149
163
  requirements:
150
164
  - - "~>"
151
165
  - !ruby/object:Gem::Version
152
- version: '1.13'
166
+ version: '2'
153
167
  - !ruby/object:Gem::Dependency
154
168
  name: rake
155
169
  requirement: !ruby/object:Gem::Requirement
156
170
  requirements:
157
- - - "~>"
171
+ - - ">="
158
172
  - !ruby/object:Gem::Version
159
- version: '10.0'
173
+ version: 12.3.3
160
174
  type: :development
161
175
  prerelease: false
162
176
  version_requirements: !ruby/object:Gem::Requirement
163
177
  requirements:
164
- - - "~>"
178
+ - - ">="
165
179
  - !ruby/object:Gem::Version
166
- version: '10.0'
180
+ version: 12.3.3
167
181
  - !ruby/object:Gem::Dependency
168
182
  name: rspec
169
183
  requirement: !ruby/object:Gem::Requirement
170
184
  requirements:
171
185
  - - "~>"
172
186
  - !ruby/object:Gem::Version
173
- version: '3.0'
187
+ version: '3.10'
174
188
  type: :development
175
189
  prerelease: false
176
190
  version_requirements: !ruby/object:Gem::Requirement
177
191
  requirements:
178
192
  - - "~>"
179
193
  - !ruby/object:Gem::Version
180
- version: '3.0'
194
+ version: '3.10'
181
195
  - !ruby/object:Gem::Dependency
182
196
  name: cucumber
183
197
  requirement: !ruby/object:Gem::Requirement
184
198
  requirements:
185
199
  - - "~>"
186
200
  - !ruby/object:Gem::Version
187
- version: '3.1'
201
+ version: '7.1'
188
202
  type: :development
189
203
  prerelease: false
190
204
  version_requirements: !ruby/object:Gem::Requirement
191
205
  requirements:
192
206
  - - "~>"
193
207
  - !ruby/object:Gem::Version
194
- version: '3.1'
208
+ version: '7.1'
195
209
  - !ruby/object:Gem::Dependency
196
210
  name: aruba
197
211
  requirement: !ruby/object:Gem::Requirement
198
212
  requirements:
199
213
  - - "~>"
200
214
  - !ruby/object:Gem::Version
201
- version: '0.14'
215
+ version: '2.0'
202
216
  type: :development
203
217
  prerelease: false
204
218
  version_requirements: !ruby/object:Gem::Requirement
205
219
  requirements:
206
220
  - - "~>"
207
221
  - !ruby/object:Gem::Version
208
- version: '0.14'
222
+ version: '2.0'
209
223
  - !ruby/object:Gem::Dependency
210
224
  name: vcr
211
225
  requirement: !ruby/object:Gem::Requirement
212
226
  requirements:
213
227
  - - "~>"
214
228
  - !ruby/object:Gem::Version
215
- version: '4.0'
229
+ version: '6.0'
216
230
  type: :development
217
231
  prerelease: false
218
232
  version_requirements: !ruby/object:Gem::Requirement
219
233
  requirements:
220
234
  - - "~>"
221
235
  - !ruby/object:Gem::Version
222
- version: '4.0'
236
+ version: '6.0'
223
237
  - !ruby/object:Gem::Dependency
224
238
  name: yard
225
239
  requirement: !ruby/object:Gem::Requirement
@@ -234,20 +248,6 @@ dependencies:
234
248
  - - "~>"
235
249
  - !ruby/object:Gem::Version
236
250
  version: '0.9'
237
- - !ruby/object:Gem::Dependency
238
- name: yard-cucumber
239
- requirement: !ruby/object:Gem::Requirement
240
- requirements:
241
- - - "~>"
242
- - !ruby/object:Gem::Version
243
- version: '4.0'
244
- type: :development
245
- prerelease: false
246
- version_requirements: !ruby/object:Gem::Requirement
247
- requirements:
248
- - - "~>"
249
- - !ruby/object:Gem::Version
250
- version: '4.0'
251
251
  description: Library and commandline utility for downloading SAML metadata from MDQ
252
252
  services
253
253
  email:
@@ -257,11 +257,14 @@ executables:
257
257
  extensions: []
258
258
  extra_rdoc_files: []
259
259
  files:
260
+ - ".github/workflows/codeql-analysis.yml"
261
+ - ".github/workflows/ruby.yml"
260
262
  - ".gitignore"
261
263
  - ".rspec"
262
264
  - ".rubocop.yml"
263
265
  - ".rubocop_todo.yml"
264
266
  - ".ruby-version"
267
+ - ".tool-versions"
265
268
  - ".travis.yml"
266
269
  - CHANGELOG.md
267
270
  - CODE_OF_CONDUCT.md
@@ -271,17 +274,27 @@ files:
271
274
  - Rakefile
272
275
  - bin/console
273
276
  - bin/setup
277
+ - cucumber.yml
274
278
  - exe/mdqt
275
279
  - lib/mdqt.rb
276
280
  - lib/mdqt/cli.rb
277
281
  - lib/mdqt/cli/base.rb
282
+ - lib/mdqt/cli/cache_control.rb
278
283
  - lib/mdqt/cli/check.rb
279
284
  - lib/mdqt/cli/compliance.rb
280
285
  - lib/mdqt/cli/defaults.rb
286
+ - lib/mdqt/cli/entities.rb
287
+ - lib/mdqt/cli/exists.rb
281
288
  - lib/mdqt/cli/get.rb
289
+ - lib/mdqt/cli/list.rb
290
+ - lib/mdqt/cli/ln.rb
291
+ - lib/mdqt/cli/ls.rb
292
+ - lib/mdqt/cli/rename.rb
282
293
  - lib/mdqt/cli/reset.rb
294
+ - lib/mdqt/cli/services.rb
283
295
  - lib/mdqt/cli/stream.rb
284
296
  - lib/mdqt/cli/transform.rb
297
+ - lib/mdqt/cli/url.rb
285
298
  - lib/mdqt/cli/version.rb
286
299
  - lib/mdqt/client.rb
287
300
  - lib/mdqt/client/identifier_utils.rb
@@ -304,7 +317,7 @@ homepage: https://github.com/Digital-Identity-Labs/mdqt
304
317
  licenses:
305
318
  - MIT
306
319
  metadata: {}
307
- post_install_message:
320
+ post_install_message:
308
321
  rdoc_options: []
309
322
  require_paths:
310
323
  - lib
@@ -319,9 +332,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
319
332
  - !ruby/object:Gem::Version
320
333
  version: '0'
321
334
  requirements: []
322
- rubyforge_project:
323
- rubygems_version: 2.7.6
324
- signing_key:
335
+ rubygems_version: 3.2.22
336
+ signing_key:
325
337
  specification_version: 4
326
338
  summary: Library and commandline utility for accessing MDQ services
327
339
  test_files: []