aaf-mdqt 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.
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