mdqt 0.7.0 → 0.8.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/.github/workflows/ruby.yml +12 -6
- data/CHANGELOG.md +18 -0
- data/Gemfile +1 -2
- data/README.md +9 -15
- data/lib/mdqt/cli/base.rb +10 -1
- data/lib/mdqt/cli/defaults.rb +1 -1
- data/lib/mdqt/cli/url.rb +1 -1
- data/lib/mdqt/client/metadata_service.rb +10 -7
- data/lib/mdqt/version.rb +1 -1
- data/mdqt.gemspec +11 -13
- metadata +27 -41
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eddc289f85b0a56a6bc01ad77a3a59ae1473a493b50efe5d7e28e69d26e387a7
|
4
|
+
data.tar.gz: 7ad454f0ee1488e96e00a60b303494d2800a1fcec3fb4c64925eb0fae07c94f9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a0c2f6828d47d9e6ec21964e523a5b7a9e8d5f1bd4a39174528a20a8a0af98f0d4b20a75b16af3891619603db94240ec177c87fe918ea6df9e9490aa960b002b
|
7
|
+
data.tar.gz: 816544153bdcbfc3c47f29640c7538cbe199ab6d7323288ec10aa358e7764e93695a17166d91768defafcb12e0577f403d0cae9149cfdc21d4f733f3b941a51d
|
data/.github/workflows/ruby.yml
CHANGED
@@ -7,11 +7,17 @@
|
|
7
7
|
|
8
8
|
name: Ruby
|
9
9
|
|
10
|
+
env:
|
11
|
+
LANG: "en_GB.UTF-8"
|
12
|
+
|
10
13
|
on:
|
11
14
|
push:
|
12
|
-
branches: [ master ]
|
15
|
+
branches: [ "master" ]
|
13
16
|
pull_request:
|
14
|
-
branches: [ master ]
|
17
|
+
branches: [ "master" ]
|
18
|
+
|
19
|
+
permissions:
|
20
|
+
contents: read
|
15
21
|
|
16
22
|
jobs:
|
17
23
|
test:
|
@@ -19,17 +25,17 @@ jobs:
|
|
19
25
|
runs-on: ubuntu-latest
|
20
26
|
strategy:
|
21
27
|
matrix:
|
22
|
-
ruby-version: ['
|
28
|
+
ruby-version: ['3.0']
|
23
29
|
|
24
30
|
steps:
|
25
|
-
- uses: actions/checkout@
|
31
|
+
- uses: actions/checkout@v3
|
26
32
|
- name: Set up Ruby
|
27
33
|
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
|
28
34
|
# change this to (see https://github.com/ruby/setup-ruby#versioning):
|
29
35
|
# uses: ruby/setup-ruby@v1
|
30
|
-
uses: ruby/setup-ruby@
|
36
|
+
uses: ruby/setup-ruby@55283cc23133118229fd3f97f9336ee23a179fcf # v1.146.0
|
31
37
|
with:
|
32
38
|
ruby-version: ${{ matrix.ruby-version }}
|
33
39
|
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
34
40
|
- name: Run tests
|
35
|
-
run: bundle exec rake
|
41
|
+
run: bundle exec rake features
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,23 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 0.8.0
|
4
|
+
|
5
|
+
## Breaking Changes
|
6
|
+
|
7
|
+
- MDQT now requires Ruby 3.0 or later, due to updated dependencies and their requirements
|
8
|
+
- MDQT now installs XML handling gems automatically - Nokogiri and XMLDSig are no longer optional. Nokogiri seems to be
|
9
|
+
less troublesome to install now and is needed by some useful current and planned features. Please let me know if this
|
10
|
+
causes you any problems.
|
11
|
+
|
12
|
+
## Improvements
|
13
|
+
|
14
|
+
- New HTTP library means caching should be slightly faster and HTTP2 is now supported
|
15
|
+
- MDQ base URLs should end with a slash, so slashless URLs are now normalised to include one.
|
16
|
+
|
17
|
+
## Fixes
|
18
|
+
|
19
|
+
- URLs for MDQ entity records now properly support paths - previously only MDQ services at the root path would work
|
20
|
+
|
3
21
|
## 0.7.0
|
4
22
|
|
5
23
|
### Improvements
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -33,7 +33,7 @@ The UK Access Management Federation has a
|
|
33
33
|
## Installation
|
34
34
|
|
35
35
|
MDQT is tested on recent MacOS and Linux, and should work with
|
36
|
-
Ruby
|
36
|
+
Ruby 3.0.0 or later and recent JRuby releases.
|
37
37
|
|
38
38
|
### As a gem for general use
|
39
39
|
|
@@ -62,7 +62,7 @@ and then execute:
|
|
62
62
|
(Experimental)
|
63
63
|
See the instructions at [MDQT-Container](https://github.com/Digital-Identity-Labs/mdqt-container)
|
64
64
|
|
65
|
-
###
|
65
|
+
### Verifying signed metadata, installing Nokogiri
|
66
66
|
|
67
67
|
MDQT can check that metadata has not been tampered with by verifying its
|
68
68
|
signature. Some MDQ services use unencrypted HTTP connections and rely
|
@@ -71,17 +71,9 @@ signature. Some MDQ services use unencrypted HTTP connections and rely
|
|
71
71
|
MDQT supports signature verification but requires a Ruby library called
|
72
72
|
Nokogiri to do the hard work. Nokogiri is fast and useful but can sometimes
|
73
73
|
be awkward to install for non-developers (it can sometimes require a C development
|
74
|
-
environment and various XML libraries).
|
75
|
-
|
76
|
-
|
77
|
-
To enable signature verification you must also install the `xmdsig` gem:
|
78
|
-
|
79
|
-
$ sudo gem install xmldsig
|
80
|
-
|
81
|
-
The `xmldsig` gem will install Nokogiri, and Nokogiri will try to build itself.
|
82
|
-
If you encounter any problems installing Nokogiri the
|
83
|
-
[Installing Nokogiri](http://www.nokogiri.org/tutorials/installing_nokogiri.html)
|
84
|
-
documentation is very helpful.
|
74
|
+
environment and various XML libraries). In most cases Nokogiri will install
|
75
|
+
automatically, without problems, when you install MDQT, but if you encounter any
|
76
|
+
problems installing Nokogiri the [Installing Nokogiri](http://www.nokogiri.org/tutorials/installing_nokogiri.html) documentation is very helpful.
|
85
77
|
|
86
78
|
## Commandline Usage as an MDQ client
|
87
79
|
|
@@ -255,8 +247,10 @@ by Tom Scavo of Internet2. Some of the scripts provide similar functionality to
|
|
255
247
|
|
256
248
|
## Library Usage
|
257
249
|
|
258
|
-
Please don't!
|
259
|
-
|
250
|
+
Please don't! We originally had plans to include a usable generic library was part of MDQT but unless there's new demand
|
251
|
+
for it that's now unlikely to happen. However, we do now have a set of libraries for the Elixir language, based around
|
252
|
+
[Smee](https://github.com/Digital-Identity-Labs/smee) - not very helpful for Ruby projects but possibly of use for new
|
253
|
+
projects.
|
260
254
|
|
261
255
|
## Development
|
262
256
|
|
data/lib/mdqt/cli/base.rb
CHANGED
@@ -85,7 +85,7 @@ module MDQT
|
|
85
85
|
choice = options.service.to_s.strip
|
86
86
|
|
87
87
|
if choice.downcase.start_with? "http"
|
88
|
-
choice
|
88
|
+
normalize_base_url(choice)
|
89
89
|
else
|
90
90
|
Defaults.lookup_service_alias(choice)
|
91
91
|
end
|
@@ -172,6 +172,15 @@ module MDQT
|
|
172
172
|
|
173
173
|
private
|
174
174
|
|
175
|
+
## Base URLs should end with a "/", it might be easier to just add one rather than raise an error
|
176
|
+
def self.normalize_base_url(url)
|
177
|
+
if url.end_with?('/')
|
178
|
+
url
|
179
|
+
else
|
180
|
+
"#{url}/"
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
175
184
|
end
|
176
185
|
|
177
186
|
end
|
data/lib/mdqt/cli/defaults.rb
CHANGED
data/lib/mdqt/cli/url.rb
CHANGED
@@ -3,22 +3,26 @@ module MDQT
|
|
3
3
|
|
4
4
|
class MetadataService
|
5
5
|
|
6
|
-
require 'faraday'
|
7
|
-
require 'typhoeus'
|
8
|
-
require 'typhoeus/adapters/faraday'
|
9
6
|
require 'cgi'
|
10
7
|
|
11
|
-
require '
|
8
|
+
require 'faraday'
|
12
9
|
require 'faraday-http-cache'
|
10
|
+
require 'faraday/follow_redirects'
|
13
11
|
|
12
|
+
require 'active_support'
|
13
|
+
require 'active_support/core_ext'
|
14
14
|
require 'active_support/cache'
|
15
15
|
require 'active_support/cache/file_store'
|
16
16
|
require 'active_support/cache/mem_cache_store'
|
17
17
|
require 'active_support/logger'
|
18
18
|
require 'active_support/notifications'
|
19
|
+
require "httpx/adapters/faraday"
|
19
20
|
|
20
21
|
require_relative './metadata_response'
|
21
22
|
|
23
|
+
#Rails.application.config.active_support.cache_format_version = 7.0
|
24
|
+
ActiveSupport::Deprecation.behavior = :silence
|
25
|
+
|
22
26
|
def initialize(base_url, options = {})
|
23
27
|
@base_url = base_url
|
24
28
|
@cache_type = options[:cache_type] ? options[:cache_type].to_sym : :none
|
@@ -142,8 +146,7 @@ module MDQT
|
|
142
146
|
def connection
|
143
147
|
Faraday.new(:url => base_url) do |faraday|
|
144
148
|
faraday.request :url_encoded
|
145
|
-
faraday.
|
146
|
-
faraday.use FaradayMiddleware::FollowRedirects
|
149
|
+
faraday.response :follow_redirects
|
147
150
|
if cache?
|
148
151
|
faraday.use :http_cache,
|
149
152
|
store: cache_store,
|
@@ -156,7 +159,7 @@ module MDQT
|
|
156
159
|
faraday.headers['Accept-Charset'] = 'utf-8'
|
157
160
|
faraday.headers['User-Agent'] = "MDQT v#{MDQT::VERSION}"
|
158
161
|
#faraday.response :logger
|
159
|
-
faraday.adapter :
|
162
|
+
faraday.adapter :httpx
|
160
163
|
end
|
161
164
|
end
|
162
165
|
|
data/lib/mdqt/version.rb
CHANGED
data/mdqt.gemspec
CHANGED
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
|
|
14
14
|
spec.homepage = "https://github.com/Digital-Identity-Labs/mdqt"
|
15
15
|
spec.license = "MIT"
|
16
16
|
|
17
|
-
spec.required_ruby_version = '>=
|
17
|
+
spec.required_ruby_version = '>= 3.0.0'
|
18
18
|
|
19
19
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
20
20
|
f.match(%r{^(test|spec|features)/})
|
@@ -24,21 +24,19 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.require_paths = ["lib"]
|
25
25
|
|
26
26
|
spec.add_dependency 'commander', "~>4.6"
|
27
|
-
spec.add_dependency 'faraday', "~>
|
28
|
-
spec.add_dependency '
|
29
|
-
spec.add_dependency 'faraday-
|
30
|
-
spec.add_dependency '
|
31
|
-
spec.add_dependency 'activesupport', "~>
|
32
|
-
spec.add_dependency 'dalli', "~>3.
|
27
|
+
spec.add_dependency 'faraday', "~>2.9.0"
|
28
|
+
spec.add_dependency 'faraday-http-cache', "~>2.5.0"
|
29
|
+
spec.add_dependency 'faraday-follow_redirects', "~>0.3.0"
|
30
|
+
spec.add_dependency 'httpx', "~>1.2.0"
|
31
|
+
spec.add_dependency 'activesupport', "~>7.1.2"
|
32
|
+
spec.add_dependency 'dalli', "~>3.2"
|
33
33
|
spec.add_dependency 'pastel', "~>0.8"
|
34
34
|
spec.add_dependency 'terminal-table', "~>3.0"
|
35
|
-
spec.add_dependency 'concurrent-ruby-ext', "1.
|
35
|
+
spec.add_dependency 'concurrent-ruby-ext', "~>1.2.2"
|
36
|
+
spec.add_dependency 'xmldsig', "~>0.7.0"
|
36
37
|
|
37
|
-
|
38
|
-
#spec.
|
39
|
-
|
40
|
-
spec.add_development_dependency "bundler", "~> 2"
|
41
|
-
spec.add_development_dependency "rake", ">= 12.3.3"
|
38
|
+
# spec.add_development_dependency "bundler", "~>2"
|
39
|
+
# spec.add_development_dependency "rake", ">= 13.1.0"
|
42
40
|
spec.add_development_dependency "rspec", "~> 3.10"
|
43
41
|
spec.add_development_dependency "cucumber", "~> 7.1"
|
44
42
|
spec.add_development_dependency "aruba", "~> 2.0"
|
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
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pete Birkinshaw
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-01-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: commander
|
@@ -30,84 +30,84 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 2.9.0
|
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:
|
40
|
+
version: 2.9.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: faraday-http-cache
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 2.5.0
|
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:
|
54
|
+
version: 2.5.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name: faraday-
|
56
|
+
name: faraday-follow_redirects
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 0.3.0
|
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:
|
68
|
+
version: 0.3.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: httpx
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: 1.2.0
|
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:
|
82
|
+
version: 1.2.0
|
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:
|
89
|
+
version: 7.1.2
|
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:
|
96
|
+
version: 7.1.2
|
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: '3.
|
103
|
+
version: '3.2'
|
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: '3.
|
110
|
+
version: '3.2'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: pastel
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -140,44 +140,30 @@ dependencies:
|
|
140
140
|
name: concurrent-ruby-ext
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
|
-
- -
|
143
|
+
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: 1.
|
145
|
+
version: 1.2.2
|
146
146
|
type: :runtime
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
|
-
- -
|
150
|
+
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: 1.
|
152
|
+
version: 1.2.2
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
154
|
+
name: xmldsig
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
157
|
- - "~>"
|
158
158
|
- !ruby/object:Gem::Version
|
159
|
-
version:
|
160
|
-
type: :
|
159
|
+
version: 0.7.0
|
160
|
+
type: :runtime
|
161
161
|
prerelease: false
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
164
|
- - "~>"
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
version:
|
167
|
-
- !ruby/object:Gem::Dependency
|
168
|
-
name: rake
|
169
|
-
requirement: !ruby/object:Gem::Requirement
|
170
|
-
requirements:
|
171
|
-
- - ">="
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
version: 12.3.3
|
174
|
-
type: :development
|
175
|
-
prerelease: false
|
176
|
-
version_requirements: !ruby/object:Gem::Requirement
|
177
|
-
requirements:
|
178
|
-
- - ">="
|
179
|
-
- !ruby/object:Gem::Version
|
180
|
-
version: 12.3.3
|
166
|
+
version: 0.7.0
|
181
167
|
- !ruby/object:Gem::Dependency
|
182
168
|
name: rspec
|
183
169
|
requirement: !ruby/object:Gem::Requirement
|
@@ -332,14 +318,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
332
318
|
requirements:
|
333
319
|
- - ">="
|
334
320
|
- !ruby/object:Gem::Version
|
335
|
-
version:
|
321
|
+
version: 3.0.0
|
336
322
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
337
323
|
requirements:
|
338
324
|
- - ">="
|
339
325
|
- !ruby/object:Gem::Version
|
340
326
|
version: '0'
|
341
327
|
requirements: []
|
342
|
-
rubygems_version: 3.4
|
328
|
+
rubygems_version: 3.5.4
|
343
329
|
signing_key:
|
344
330
|
specification_version: 4
|
345
331
|
summary: Library and commandline utility for accessing MDQ services
|