aaf-mdqt 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/codeql-analysis.yml +70 -0
  3. data/.github/workflows/ruby.yml +41 -0
  4. data/.gitignore +25 -0
  5. data/.rspec +2 -0
  6. data/.rubocop.yml +1 -0
  7. data/.rubocop_todo.yml +296 -0
  8. data/.ruby-version +1 -0
  9. data/.tool-versions +1 -0
  10. data/.travis.yml +7 -0
  11. data/CHANGELOG.md +168 -0
  12. data/CODE_OF_CONDUCT.md +74 -0
  13. data/Gemfile +9 -0
  14. data/LICENSE.txt +21 -0
  15. data/Makefile +4 -0
  16. data/README.md +268 -0
  17. data/Rakefile +5 -0
  18. data/aaf-mdqt.gemspec +46 -0
  19. data/bin/console +14 -0
  20. data/bin/setup +8 -0
  21. data/cucumber.yml +2 -0
  22. data/exe/mdqt +174 -0
  23. data/lib/mdqt/cli/base.rb +190 -0
  24. data/lib/mdqt/cli/cache_control.rb +25 -0
  25. data/lib/mdqt/cli/check.rb +78 -0
  26. data/lib/mdqt/cli/compliance.rb +0 -0
  27. data/lib/mdqt/cli/defaults.rb +70 -0
  28. data/lib/mdqt/cli/entities.rb +47 -0
  29. data/lib/mdqt/cli/exists.rb +0 -0
  30. data/lib/mdqt/cli/get.rb +130 -0
  31. data/lib/mdqt/cli/list.rb +65 -0
  32. data/lib/mdqt/cli/ln.rb +81 -0
  33. data/lib/mdqt/cli/ls.rb +54 -0
  34. data/lib/mdqt/cli/rename.rb +75 -0
  35. data/lib/mdqt/cli/reset.rb +27 -0
  36. data/lib/mdqt/cli/services.rb +25 -0
  37. data/lib/mdqt/cli/transform.rb +33 -0
  38. data/lib/mdqt/cli/url.rb +37 -0
  39. data/lib/mdqt/cli/version.rb +17 -0
  40. data/lib/mdqt/cli.rb +24 -0
  41. data/lib/mdqt/client/identifier_utils.rb +51 -0
  42. data/lib/mdqt/client/metadata_file.rb +144 -0
  43. data/lib/mdqt/client/metadata_response.rb +182 -0
  44. data/lib/mdqt/client/metadata_service.rb +194 -0
  45. data/lib/mdqt/client/metadata_validator.rb +81 -0
  46. data/lib/mdqt/client.rb +83 -0
  47. data/lib/mdqt/schema/MetadataExchange.xsd +112 -0
  48. data/lib/mdqt/schema/mdqt_check_schema.xsd +5 -0
  49. data/lib/mdqt/schema/oasis-200401-wss-wssecurity-secext-1.0.xsd +195 -0
  50. data/lib/mdqt/schema/oasis-200401-wss-wssecurity-utility-1.0.xsd +108 -0
  51. data/lib/mdqt/schema/saml-schema-assertion-2.0.xsd +283 -0
  52. data/lib/mdqt/schema/saml-schema-metadata-2.0.xsd +337 -0
  53. data/lib/mdqt/schema/ws-addr.xsd +137 -0
  54. data/lib/mdqt/schema/ws-authorization.xsd +145 -0
  55. data/lib/mdqt/schema/ws-federation.xsd +471 -0
  56. data/lib/mdqt/schema/ws-securitypolicy-1.2.xsd +1205 -0
  57. data/lib/mdqt/schema/xenc-schema.xsd +136 -0
  58. data/lib/mdqt/schema/xml.xsd +287 -0
  59. data/lib/mdqt/schema/xmldsig-core-schema.xsd +309 -0
  60. data/lib/mdqt/version.rb +3 -0
  61. data/lib/mdqt.rb +5 -0
  62. data/lib/tasks/cucumber.rake +8 -0
  63. data/lib/tasks/spec.rake +5 -0
  64. data/lib/tasks/tests.rake +6 -0
  65. data/lib/tasks/yard.rake +6 -0
  66. metadata +332 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 3cf456b06ec7f076025cb43c27569907435711aadda8b8ff09a9afb23d825a04
4
+ data.tar.gz: e203f5f736f4384c6d4928ae5462dedfb8b417a0b7c54fa75926f1611d75dc50
5
+ SHA512:
6
+ metadata.gz: a5564af50ba3917ac2847709eb9af32e8993a472607b17ab1b56b0a85deebd0f8be67aa1b1ea59f37e91a0dcb51b0f43ae0da4a8b7a9f26be6436b76e85bad87
7
+ data.tar.gz: 33218e40ae25b87b7020d639e46d3e95bf594299c7436917e327cd77ed96ba086f6c70bf3a02aa66c63ccbba41519dd3c3971d5c9848aa7c39404ea6c55da73c
@@ -0,0 +1,70 @@
1
+ # For most projects, this workflow file will not need changing; you simply need
2
+ # to commit it to your repository.
3
+ #
4
+ # You may wish to alter this file to override the set of languages analyzed,
5
+ # or to provide custom queries or build logic.
6
+ #
7
+ # ******** NOTE ********
8
+ # We have attempted to detect the languages in your repository. Please check
9
+ # the `language` matrix defined below to confirm you have the correct set of
10
+ # supported CodeQL languages.
11
+ #
12
+ name: "CodeQL"
13
+
14
+ on:
15
+ push:
16
+ branches: [ master ]
17
+ pull_request:
18
+ # The branches below must be a subset of the branches above
19
+ branches: [ master ]
20
+ schedule:
21
+ - cron: '17 4 * * 0'
22
+
23
+ jobs:
24
+ analyze:
25
+ name: Analyze
26
+ runs-on: ubuntu-latest
27
+ permissions:
28
+ actions: read
29
+ contents: read
30
+ security-events: write
31
+
32
+ strategy:
33
+ fail-fast: false
34
+ matrix:
35
+ language: [ 'ruby' ]
36
+ # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
37
+ # Learn more about CodeQL language support at https://git.io/codeql-language-support
38
+
39
+ steps:
40
+ - name: Checkout repository
41
+ uses: actions/checkout@v2
42
+
43
+ # Initializes the CodeQL tools for scanning.
44
+ - name: Initialize CodeQL
45
+ uses: github/codeql-action/init@v1
46
+ with:
47
+ languages: ${{ matrix.language }}
48
+ # If you wish to specify custom queries, you can do so here or in a config file.
49
+ # By default, queries listed here will override any specified in a config file.
50
+ # Prefix the list here with "+" to use these queries and those in the config file.
51
+ # queries: ./path/to/local/query, your-org/your-repo/queries@main
52
+
53
+ # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
54
+ # If this step fails, then you should remove it and run the build manually (see below)
55
+ - name: Autobuild
56
+ uses: github/codeql-action/autobuild@v1
57
+
58
+ # ℹ️ Command-line programs to run using the OS shell.
59
+ # 📚 https://git.io/JvXDl
60
+
61
+ # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
62
+ # and modify them (or add more) to build your code if your project
63
+ # uses a compiled language
64
+
65
+ #- run: |
66
+ # make bootstrap
67
+ # make release
68
+
69
+ - name: Perform CodeQL Analysis
70
+ uses: github/codeql-action/analyze@v1
@@ -0,0 +1,41 @@
1
+ # This workflow uses actions that are not certified by GitHub.
2
+ # They are provided by a third-party and are governed by
3
+ # separate terms of service, privacy policy, and support
4
+ # documentation.
5
+ # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
+ # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
+
8
+ name: Ruby
9
+
10
+ env:
11
+ LANG: "en_GB.UTF-8"
12
+
13
+ on:
14
+ push:
15
+ branches: [ "master" ]
16
+ pull_request:
17
+ branches: [ "master" ]
18
+
19
+ permissions:
20
+ contents: read
21
+
22
+ jobs:
23
+ test:
24
+
25
+ runs-on: ubuntu-latest
26
+ strategy:
27
+ matrix:
28
+ ruby-version: ['3.0']
29
+
30
+ steps:
31
+ - uses: actions/checkout@v3
32
+ - name: Set up Ruby
33
+ # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
34
+ # change this to (see https://github.com/ruby/setup-ruby#versioning):
35
+ # uses: ruby/setup-ruby@v1
36
+ uses: ruby/setup-ruby@55283cc23133118229fd3f97f9336ee23a179fcf # v1.146.0
37
+ with:
38
+ ruby-version: ${{ matrix.ruby-version }}
39
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
40
+ - name: Run tests
41
+ run: bundle exec rake features
data/.gitignore ADDED
@@ -0,0 +1,25 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ /out.xml
11
+ /out.txt
12
+ /mdqt_cache.log
13
+ *.gem
14
+ /ukfederation-mdq.pem
15
+ /mdq-beta-cert.pem
16
+ /out
17
+ /xout
18
+ out*.xml
19
+ /.idea
20
+ /*.xml
21
+ /bt
22
+ *.html
23
+ /t/aggregate.xml
24
+ /t/indiid.xml
25
+ /t/uom.xml
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
data/.rubocop.yml ADDED
@@ -0,0 +1 @@
1
+ inherit_from: .rubocop_todo.yml
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,296 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2018-05-03 07:42:59 +0100 using RuboCop version 0.55.0.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 1
10
+ # Cop supports --auto-correct.
11
+ # Configuration parameters: Include, TreatCommentsAsGroupSeparators.
12
+ # Include: **/*.gemspec
13
+ Gemspec/OrderedDependencies:
14
+ Exclude:
15
+ - 'aaf-mdqt.gemspec'
16
+
17
+ # Offense count: 1
18
+ # Configuration parameters: Include.
19
+ # Include: **/*.gemspec
20
+ Gemspec/RequiredRubyVersion:
21
+ Exclude:
22
+ - 'aaf-mdqt.gemspec'
23
+
24
+ # Offense count: 1
25
+ # Cop supports --auto-correct.
26
+ Layout/CommentIndentation:
27
+ Exclude:
28
+ - 'lib/mdqt/cli/base.rb'
29
+
30
+ # Offense count: 1
31
+ # Cop supports --auto-correct.
32
+ # Configuration parameters: AllowBorderComment, AllowMarginComment.
33
+ Layout/EmptyComment:
34
+ Exclude:
35
+ - 'lib/mdqt/cli/base.rb'
36
+
37
+ # Offense count: 1
38
+ # Cop supports --auto-correct.
39
+ Layout/EmptyLineAfterMagicComment:
40
+ Exclude:
41
+ - 'aaf-mdqt.gemspec'
42
+
43
+ # Offense count: 3
44
+ # Cop supports --auto-correct.
45
+ Layout/EmptyLines:
46
+ Exclude:
47
+ - 'lib/mdqt/cli.rb'
48
+ - 'aaf-mdqt.gemspec'
49
+ - 'spec/client/client_spec.rb'
50
+
51
+ # Offense count: 3
52
+ # Cop supports --auto-correct.
53
+ # Configuration parameters: EnforcedStyle.
54
+ # SupportedStyles: empty_lines, no_empty_lines
55
+ Layout/EmptyLinesAroundBlockBody:
56
+ Exclude:
57
+ - 'exe/mdqt'
58
+ - 'spec/client/client_spec.rb'
59
+
60
+ # Offense count: 22
61
+ # Cop supports --auto-correct.
62
+ # Configuration parameters: EnforcedStyle.
63
+ # SupportedStyles: empty_lines, empty_lines_except_namespace, empty_lines_special, no_empty_lines, beginning_only, ending_only
64
+ Layout/EmptyLinesAroundClassBody:
65
+ Exclude:
66
+ - 'lib/mdqt/cli.rb'
67
+ - 'lib/mdqt/cli/base.rb'
68
+ - 'lib/mdqt/cli/defaults.rb'
69
+ - 'lib/mdqt/cli/get.rb'
70
+ - 'lib/mdqt/client.rb'
71
+ - 'lib/mdqt/client/metadata_service.rb'
72
+
73
+ # Offense count: 11
74
+ # Cop supports --auto-correct.
75
+ Layout/EmptyLinesAroundMethodBody:
76
+ Exclude:
77
+ - 'lib/mdqt/cli/base.rb'
78
+ - 'lib/mdqt/cli/get.rb'
79
+ - 'lib/mdqt/client.rb'
80
+ - 'lib/mdqt/client/metadata_service.rb'
81
+
82
+ # Offense count: 7
83
+ # Cop supports --auto-correct.
84
+ # Configuration parameters: EnforcedStyle.
85
+ # SupportedStyles: empty_lines, empty_lines_except_namespace, empty_lines_special, no_empty_lines
86
+ Layout/EmptyLinesAroundModuleBody:
87
+ Exclude:
88
+ - 'lib/mdqt.rb'
89
+ - 'lib/mdqt/cli.rb'
90
+ - 'lib/mdqt/cli/base.rb'
91
+ - 'lib/mdqt/cli/get.rb'
92
+ - 'lib/mdqt/client.rb'
93
+ - 'lib/mdqt/client/metadata_service.rb'
94
+
95
+ # Offense count: 1
96
+ # Cop supports --auto-correct.
97
+ # Configuration parameters: AllowForAlignment, ForceEqualSignAlignment.
98
+ Layout/ExtraSpacing:
99
+ Exclude:
100
+ - 'aaf-mdqt.gemspec'
101
+
102
+ # Offense count: 3
103
+ # Cop supports --auto-correct.
104
+ Layout/LeadingCommentSpace:
105
+ Exclude:
106
+ - 'exe/mdqt'
107
+ - 'lib/mdqt/client/metadata_service.rb'
108
+
109
+ # Offense count: 1
110
+ # Cop supports --auto-correct.
111
+ Layout/SpaceAfterComma:
112
+ Exclude:
113
+ - 'lib/mdqt/client/metadata_service.rb'
114
+
115
+ # Offense count: 1
116
+ # Cop supports --auto-correct.
117
+ # Configuration parameters: .
118
+ # SupportedStyles: space, no_space
119
+ Layout/SpaceAroundEqualsInParameterDefault:
120
+ EnforcedStyle: no_space
121
+
122
+ # Offense count: 1
123
+ # Cop supports --auto-correct.
124
+ # Configuration parameters: AllowForAlignment.
125
+ Layout/SpaceAroundOperators:
126
+ Exclude:
127
+ - 'aaf-mdqt.gemspec'
128
+
129
+ # Offense count: 1
130
+ # Cop supports --auto-correct.
131
+ # Configuration parameters: AllowForAlignment.
132
+ Layout/SpaceBeforeFirstArg:
133
+ Exclude:
134
+ - 'lib/mdqt/client/metadata_service.rb'
135
+
136
+ # Offense count: 2
137
+ # Cop supports --auto-correct.
138
+ # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters.
139
+ # SupportedStyles: space, no_space
140
+ # SupportedStylesForEmptyBraces: space, no_space
141
+ Layout/SpaceInsideBlockBraces:
142
+ Exclude:
143
+ - 'lib/mdqt/cli/get.rb'
144
+
145
+ # Offense count: 7
146
+ # Cop supports --auto-correct.
147
+ # Configuration parameters: EnforcedStyle.
148
+ # SupportedStyles: final_newline, final_blank_line
149
+ Layout/TrailingBlankLines:
150
+ Exclude:
151
+ - 'exe/mdqt'
152
+ - 'lib/mdqt/cli.rb'
153
+ - 'lib/mdqt/cli/base.rb'
154
+ - 'lib/mdqt/cli/defaults.rb'
155
+ - 'lib/mdqt/client.rb'
156
+ - 'lib/mdqt/client/metadata_service.rb'
157
+ - 'spec/client/client_spec.rb'
158
+
159
+ # Offense count: 2
160
+ # Cop supports --auto-correct.
161
+ # Configuration parameters: IgnoreEmptyBlocks, AllowUnusedKeywordArguments.
162
+ Lint/UnusedBlockArgument:
163
+ Exclude:
164
+ - 'exe/mdqt'
165
+
166
+ # Offense count: 2
167
+ # Cop supports --auto-correct.
168
+ # Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods.
169
+ Lint/UnusedMethodArgument:
170
+ Exclude:
171
+ - 'lib/mdqt/cli/base.rb'
172
+
173
+ # Offense count: 1
174
+ Lint/UselessAssignment:
175
+ Exclude:
176
+ - 'lib/mdqt/client.rb'
177
+
178
+ # Offense count: 1
179
+ # Configuration parameters: CountComments.
180
+ Metrics/MethodLength:
181
+ Max: 13
182
+
183
+ # Offense count: 8
184
+ Style/Documentation:
185
+ Exclude:
186
+ - 'spec/**/*'
187
+ - 'test/**/*'
188
+ - 'lib/mdqt.rb'
189
+ - 'lib/mdqt/cli.rb'
190
+ - 'lib/mdqt/cli/base.rb'
191
+ - 'lib/mdqt/cli/defaults.rb'
192
+ - 'lib/mdqt/cli/get.rb'
193
+ - 'lib/mdqt/client.rb'
194
+ - 'lib/mdqt/client/metadata_service.rb'
195
+
196
+ # Offense count: 1
197
+ # Cop supports --auto-correct.
198
+ Style/Encoding:
199
+ Exclude:
200
+ - 'aaf-mdqt.gemspec'
201
+
202
+ # Offense count: 2
203
+ # Cop supports --auto-correct.
204
+ Style/ExpandPathArguments:
205
+ Exclude:
206
+ - 'aaf-mdqt.gemspec'
207
+ - 'spec/spec_helper.rb'
208
+
209
+ # Offense count: 16
210
+ # Cop supports --auto-correct.
211
+ # Configuration parameters: EnforcedStyle.
212
+ # SupportedStyles: when_needed, always, never
213
+ Style/FrozenStringLiteralComment:
214
+ Enabled: false
215
+
216
+ # Offense count: 2
217
+ # Cop supports --auto-correct.
218
+ # Configuration parameters: EnforcedStyle, UseHashRocketsWithSymbolValues, PreferHashRocketsForNonAlnumEndingSymbols.
219
+ # SupportedStyles: ruby19, hash_rockets, no_mixed_keys, ruby19_no_mixed_keys
220
+ Style/HashSyntax:
221
+ Exclude:
222
+ - 'Rakefile'
223
+ - 'lib/mdqt/client/metadata_service.rb'
224
+
225
+ # Offense count: 1
226
+ # Cop supports --auto-correct.
227
+ Style/MutableConstant:
228
+ Exclude:
229
+ - 'lib/mdqt/version.rb'
230
+
231
+ # Offense count: 1
232
+ # Cop supports --auto-correct.
233
+ # Configuration parameters: Whitelist.
234
+ # Whitelist: be, be_a, be_an, be_between, be_falsey, be_kind_of, be_instance_of, be_truthy, be_within, eq, eql, end_with, include, match, raise_error, respond_to, start_with
235
+ Style/NestedParenthesizedCalls:
236
+ Exclude:
237
+ - 'lib/mdqt/client/metadata_service.rb'
238
+
239
+ # Offense count: 2
240
+ # Cop supports --auto-correct.
241
+ # Configuration parameters: PreferredDelimiters.
242
+ Style/PercentLiteralDelimiters:
243
+ Exclude:
244
+ - 'aaf-mdqt.gemspec'
245
+
246
+ # Offense count: 1
247
+ # Cop supports --auto-correct.
248
+ Style/RedundantSelf:
249
+ Exclude:
250
+ - 'lib/mdqt/cli/base.rb'
251
+
252
+ # Offense count: 37
253
+ # Cop supports --auto-correct.
254
+ # Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline.
255
+ # SupportedStyles: single_quotes, double_quotes
256
+ Style/StringLiterals:
257
+ Exclude:
258
+ - 'Rakefile'
259
+ - 'bin/console'
260
+ - 'lib/mdqt.rb'
261
+ - 'lib/mdqt/cli/base.rb'
262
+ - 'lib/mdqt/cli/get.rb'
263
+ - 'lib/mdqt/client/metadata_service.rb'
264
+ - 'lib/mdqt/version.rb'
265
+ - 'aaf-mdqt.gemspec'
266
+ - 'spec/mdqt_spec.rb'
267
+ - 'spec/spec_helper.rb'
268
+
269
+ # Offense count: 1
270
+ # Cop supports --auto-correct.
271
+ # Configuration parameters: EnforcedStyleForMultiline.
272
+ # SupportedStylesForMultiline: comma, consistent_comma, no_comma
273
+ Style/TrailingCommaInHashLiteral:
274
+ Exclude:
275
+ - 'lib/mdqt/cli/defaults.rb'
276
+
277
+ # Offense count: 3
278
+ # Cop supports --auto-correct.
279
+ # Configuration parameters: ExactNameMatch, AllowPredicates, AllowDSLWriters, IgnoreClassMethods, Whitelist.
280
+ # Whitelist: to_ary, to_a, to_c, to_enum, to_h, to_hash, to_i, to_int, to_io, to_open, to_path, to_proc, to_r, to_regexp, to_str, to_s, to_sym
281
+ Style/TrivialAccessors:
282
+ Exclude:
283
+ - 'lib/mdqt/client.rb'
284
+ - 'lib/mdqt/client/metadata_service.rb'
285
+
286
+ # Offense count: 2
287
+ # Cop supports --auto-correct.
288
+ Style/UnneededPercentQ:
289
+ Exclude:
290
+ - 'aaf-mdqt.gemspec'
291
+
292
+ # Offense count: 7
293
+ # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
294
+ # URISchemes: http, https
295
+ Metrics/LineLength:
296
+ Max: 130
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 3.3.5
data/.tool-versions ADDED
@@ -0,0 +1 @@
1
+ ruby 3.2.0
data/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - 2.2.2
5
+ - 2.5.0
6
+ - jruby
7
+ before_install: gem install bundler -v 1.16.1
data/CHANGELOG.md ADDED
@@ -0,0 +1,168 @@
1
+ # Changelog
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
+
21
+ ## 0.7.0
22
+
23
+ ### Improvements
24
+
25
+ - `mdqt check` can now (I think) cope with SAML metadata from Microsoft AD/ADFS services full of WS-* extensions.
26
+ - Tested with Ruby 3.2.0: `File.exists?` has been removed from 3.2.0 (it's been deprecated for years and I used it out of habit)
27
+ so this has been replaced in MDQT with `File.exist?` - as a result Ruby 3.2.0 onwards will work, but Ruby older than v2.2
28
+ will no longer work.
29
+
30
+ ### Fixes
31
+
32
+ - The inline help synopsis for `mdqt check` has been corrected.
33
+
34
+ ### Known issues
35
+
36
+ - Running mdqt without STDIN available (outside of a normal shell environment) can cause it to freeze unless
37
+ `export MDQT_STDIN=off` is set. See [Issue 8](https://github.com/Digital-Identity-Labs/mdqt/issues/8)
38
+ - Checking signatures on very large aggregate XML files can sometimes fail on M1/M2 MacOS and trying to work out why
39
+ has made me slightly balder and a lot more puzzled. See [Issue 9](https://github.com/Digital-Identity-Labs/mdqt/issues/9)
40
+
41
+ ## 0.6.0
42
+
43
+ ### New Features
44
+
45
+ - STDIN and pipes: Arguments (such as filenames and entity IDs) can now be piped into mdqt. This
46
+ enables pipelining, so you can chain commands together.
47
+ - The `rename` command now has a `--link` option that creates a symlink from the original
48
+ filename to the renamed file.
49
+ - The `get` command now has a `--list` option that works when `--save-to` is used, to list filenames being
50
+ written to disk.
51
+
52
+ ### Improvements
53
+
54
+ - Emacs backup files (so called turd files) ending with ~ and files ending with .bak
55
+ are now ignored.
56
+
57
+ ### Removed features
58
+
59
+ - `link` and `rename` now require files to be specified: you now *cannot* run `mdqt rename`
60
+ to rename everything in the current directory.
61
+
62
+ - The `--link_id` option for `get` saved a link to each downloaded file that is almost the same as the
63
+ filename - maybe this made sense in mdqt 0.1.0 but it's quite useless now. If anyone can remember what it was
64
+ actually for I'll put it back.
65
+
66
+ ## 0.5.0
67
+
68
+ ### New Features
69
+
70
+ - New `entities` command extracts entity IDs and sha1 hashes from metadata files on disk
71
+ - New `ln` command will create symlinks to files using their sha1 hashes
72
+ - New `ls` command will list the entity IDs of metadata files
73
+ - New `list` command lists all entity IDs available from the MDQ service
74
+ - New `services` command shows known MDQ services and aliases
75
+ - New `rename` command renames metadata files to use their sha1 hash as a name
76
+ - New `url` command shows the full url for an entity at the MDQ service
77
+
78
+ ### Improvements
79
+
80
+ - Known MDQ services can be specified using simple aliases as well as URLs
81
+ - Caching is now on by default
82
+ - `--refresh` options forces downloads and ignores cached data
83
+ - Cache is cleaned whenever `get` is used, to remove expired files
84
+ - Added default service details for DFN
85
+ - Tidier output when stopped with ctrl-c
86
+
87
+ ### Fixes
88
+
89
+ - Compatible with Ruby 3
90
+ - Updated dependencies to latest versions
91
+ - Improved test reliability and added more tests
92
+ - Extended timeouts to better handle slow networks
93
+
94
+ ## 0.4.0
95
+
96
+ ### New Features
97
+ - The `check` command will validate XML files against SAML metadata schema and verify signatures
98
+ - A `--validate` switch for `get` forces XML validation, using basic SAML2 metadata schema
99
+ - A `--tls-risky` switch for `get` disables verification of TLS certificates
100
+
101
+ ### Improvements
102
+ - Connection failures now show an explanation (such as TLS problems)
103
+
104
+ ### Fixes
105
+ - "Not Required" was shown when using commands that don't interact with an MDQ server
106
+
107
+ ## 0.3.1
108
+
109
+ ### Fixes
110
+ - A missing xmldsig gem is now handled properly *everywhere*. Hopefully.
111
+
112
+ ## 0.3.0
113
+
114
+ ### New Features
115
+ - Signature verification (at last!) using `--verify-with` option for get command
116
+ - A `reset` command to clear all cached metadata
117
+ - A `transform` command to convert entityID URIs to {sha1} identifiers
118
+ - The `--explain` option for `get` will show header information
119
+ - The `--save-to` option for `get` will write metadata to disk
120
+ - The `--link-id` option for `get --save-to` will create aliases
121
+
122
+ ### Improvements
123
+ - Coloured feedback
124
+ - Improved README documentation
125
+ - Servers' 304 responses for cached files are handled correctly
126
+ - Invalid SHA1 transformed identitifiers can't be sent
127
+ - 500 errors at the server will be shown correctly
128
+ - Verbose mode shows MDQT version
129
+
130
+ ### Fixes
131
+ - Don't show empty identifier in OK message after downloading aggregate
132
+ - Cache status in introduction text is now correct
133
+
134
+ ## 0.2.1
135
+
136
+ ### Fixes
137
+ - Send Accept header rather than Content-Type header 🙄
138
+
139
+ ## 0.2.0
140
+
141
+ ### New Features
142
+ - Option to cache HTTP requests to the MDQ service
143
+ - Supports Gzip compression by default
144
+ - Default MDQ service selection (rather crude, maybe not a good idea at all)
145
+
146
+ ### Improvements
147
+ - Supports redirect responses
148
+ - Helpful error messages and status messages
149
+ - Verbose mode will show successful connection information
150
+ - Warnings about unspecified MDQ service
151
+ - Catch bad URLs for the MDQ service and fail with a better error message
152
+
153
+ ### Fixes
154
+ - Aggregates are now requested with /entities not /entities/, as per spec
155
+
156
+ ### Other
157
+ - First few Cucumber features to define and test the executable
158
+ - Beginning of an RSpec suit to define the API
159
+ - Minimum version of Ruby is now 2.1, but only 2.2+ is tested using CI
160
+
161
+ ## 0.1.1
162
+
163
+ ### Fixes
164
+ - Bug that prevented the mdqt executable from running outside a Bundler environment
165
+
166
+ ## 0.1.0
167
+
168
+ - Initial release