3scale_toolbox 0.20.0 → 1.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f688ec02bf32ca42f99e737b789e9826111d09417987fc0ef8bb32ee1719956b
4
- data.tar.gz: '068391c70eeb07ddd450af05abe77c80e4b623c53383f5da6b75375d45cade58'
3
+ metadata.gz: 769b120ad3d44861ec006d879fc2783201c8129b590ff4e54ca27d40725e30b7
4
+ data.tar.gz: 9097aeab4eb07152aeb47d997648c1c7dd1b49265cd233a8c36757cd2beb82c7
5
5
  SHA512:
6
- metadata.gz: 82fe4022c976594d2d8b52db9d84f0b1d8886738c3f076614864ddc34b48e24c62445c6fab34d25c9ce164176f19490c290bc3d97b5f8b913f1a57f20ee9a2d6
7
- data.tar.gz: 9b24f6ee07f2209d1180ce57cf21096b6b9a2970c07539a4619c21dbcbc5700359a1b132539ece15668d9c6753a8858a89cb635ab491385f0f8e15d6388c389a
6
+ metadata.gz: 62c74ff4d3bd4a76884fa5b907d3b36c22dccb3a938f200a2c90b7a209b06cd4cd10b7f11799aeef98b9f43fafb8c5e5e25d744a4fdb3f97408cde6be8f4df02
7
+ data.tar.gz: 5467a90b3ee4326b44f7b3acbd6baebc7ad50df2f279d7f824195910873e4bc906d230555536cea5eb5299e483f18613f248d27208e49ecad7795b7cbb115641
@@ -34,11 +34,11 @@ Gem::Specification.new do |spec|
34
34
  spec.add_development_dependency 'rake', '~> 13.0'
35
35
  spec.add_development_dependency 'rspec', '~> 3.8'
36
36
  spec.add_development_dependency 'webmock', '~> 3.4'
37
- spec.required_ruby_version = '>= 2.6'
37
+ spec.required_ruby_version = '>= 3.0'
38
38
 
39
39
  spec.add_dependency '3scale-api', '~> 1.6'
40
40
  spec.add_dependency 'cri', '~> 2.15'
41
41
  spec.add_dependency 'json-schema', '~> 2.8'
42
42
  spec.add_dependency 'oas_parser', '~> 0.20'
43
- spec.add_dependency 'activesupport', '~> 6.0'
43
+ spec.add_dependency 'activesupport', '>= 6', '< 8'
44
44
  end
data/README.md CHANGED
@@ -41,8 +41,7 @@
41
41
  ## Requirements
42
42
  Supported Ruby interpreters
43
43
 
44
- * MRI 2.6
45
- * MRI 2.7
44
+ * MRI 3.0
46
45
 
47
46
  ## Installation
48
47
  Install the toolbox:
@@ -102,8 +102,8 @@ module ThreeScaleToolbox
102
102
  {
103
103
  'name' => option_name,
104
104
  'description' => description,
105
- 'user_key' => application_ref,
106
- 'application_id' => application_ref,
105
+ 'user_key' => user_key,
106
+ 'application_id' => application_id,
107
107
  'application_key' => option_app_key,
108
108
  'redirect_url' => option_redirect_url,
109
109
  }.compact
@@ -120,6 +120,14 @@ module ThreeScaleToolbox
120
120
  }.compact
121
121
  end
122
122
 
123
+ def user_key
124
+ application_ref if service.backend_version == '1'
125
+ end
126
+
127
+ def application_id
128
+ application_ref if service.backend_version == '2' || service.backend_version == 'oidc'
129
+ end
130
+
123
131
  def account
124
132
  @account ||= find_account
125
133
  end
@@ -29,13 +29,7 @@ module ThreeScaleToolbox
29
29
  # only applies to oauth2 sec type
30
30
  return if api_spec.security.nil? || api_spec.security[:type] != 'oauth2'
31
31
 
32
- oidc_configuration = {
33
- standard_flow_enabled: false,
34
- implicit_flow_enabled: false,
35
- service_accounts_enabled: false,
36
- direct_access_grants_enabled: false
37
- }.merge(api_spec.security[:flow] => true)
38
- settings.merge!(oidc_configuration)
32
+ settings.merge!(api_spec.security[:flows] || {})
39
33
  end
40
34
  end
41
35
  end
@@ -21,7 +21,11 @@ module ThreeScaleToolbox
21
21
  # * :type -> string
22
22
  # * :name -> string
23
23
  # * :in_f -> string
24
- # * :flow -> symbol (:implicit_flow_enabled, :direct_access_grants_enabled, :service_accounts_enabled, :standard_flow_enabled)
24
+ # * :flows -> hash
25
+ # * :implicit_flow_enabled -> bool
26
+ # * :direct_access_grants_enabled -> bool
27
+ # * :service_accounts_enabled -> bool
28
+ # * :standard_flow_enabled -> bool
25
29
  # * :scopes -> array of string
26
30
  # * OAS3.service_backend_version -> string ('1','2','oidc')
27
31
  # * OAS3.set_server_url -> def(spec, url)
@@ -103,9 +107,10 @@ module ThreeScaleToolbox
103
107
  raise ThreeScaleToolbox::Error, "Expected security scheme {#{sec_scheme_id}} not found or not oauth2"
104
108
  end
105
109
 
106
- flow_key, flow_obj = sec_scheme_obj['flows'].first
107
- flow_obj['authorizationUrl'] = authorization_url if %w[implicit authorizationCode].include?(flow_key)
108
- flow_obj['tokenUrl'] = token_url if %w[password clientCredentials authorizationCode].include?(flow_key)
110
+ sec_scheme_obj['flows'].each do |flow_key, flow_obj|
111
+ flow_obj['authorizationUrl'] = authorization_url if %w[implicit authorizationCode].include?(flow_key)
112
+ flow_obj['tokenUrl'] = token_url if %w[password clientCredentials authorizationCode].include?(flow_key)
113
+ end
109
114
  end
110
115
 
111
116
  def set_server_url(spec, url)
@@ -184,7 +189,7 @@ module ThreeScaleToolbox
184
189
  type: sec_def['type'],
185
190
  name: sec_def['name'],
186
191
  in_f: sec_def['in'],
187
- flow: parse_flows(sec_def['flows']),
192
+ flows: parse_flows(sec_def['flows']),
188
193
  scopes: sec_item
189
194
  }
190
195
  end
@@ -208,9 +213,18 @@ module ThreeScaleToolbox
208
213
  def parse_flows(flows_object)
209
214
  return nil if flows_object.nil?
210
215
 
211
- raise ThreeScaleToolbox::Error, 'Invalid OAS: multiple flows' if flows_object.size > 1
216
+ flows_object.keys.reduce(basic_flows_object) do |obj, key|
217
+ obj.merge!(convert_flow(key) => true)
218
+ end
219
+ end
212
220
 
213
- convert_flow(flows_object.keys.first)
221
+ def basic_flows_object
222
+ {
223
+ standard_flow_enabled: false,
224
+ implicit_flow_enabled: false,
225
+ service_accounts_enabled: false,
226
+ direct_access_grants_enabled: false
227
+ }
214
228
  end
215
229
 
216
230
  def convert_flow(flow_name)
@@ -21,7 +21,11 @@ module ThreeScaleToolbox
21
21
  # * :type -> string
22
22
  # * :name -> string
23
23
  # * :in_f -> string
24
- # * :flow -> symbol (:implicit_flow_enabled, :direct_access_grants_enabled, :service_accounts_enabled, :standard_flow_enabled)
24
+ # * :flows -> hash
25
+ # * :implicit_flow_enabled -> bool
26
+ # * :direct_access_grants_enabled -> bool
27
+ # * :service_accounts_enabled -> bool
28
+ # * :standard_flow_enabled -> bool
25
29
  # * :scopes -> array of string
26
30
  # * Swagger.service_backend_version -> string ('1','2','oidc')
27
31
  # * Swagger.set_server_url -> def(spec, url)
@@ -150,7 +154,7 @@ module ThreeScaleToolbox
150
154
  type: sec_def['type'],
151
155
  name: sec_def['name'],
152
156
  in_f: sec_def['in'],
153
- flow: convert_flow(sec_def['flow']),
157
+ flows: parse_flows(sec_def['flow']),
154
158
  scopes: sec_item
155
159
  }
156
160
  end
@@ -171,6 +175,21 @@ module ThreeScaleToolbox
171
175
  raw['securityDefinitions'] || {}
172
176
  end
173
177
 
178
+ def parse_flows(flow_name)
179
+ return nil if flow_name.nil?
180
+
181
+ basic_flows_object.merge!({ convert_flow(flow_name) => true })
182
+ end
183
+
184
+ def basic_flows_object
185
+ {
186
+ standard_flow_enabled: false,
187
+ implicit_flow_enabled: false,
188
+ service_accounts_enabled: false,
189
+ direct_access_grants_enabled: false
190
+ }
191
+ end
192
+
174
193
  def convert_flow(flow_name)
175
194
  return nil if flow_name.nil?
176
195
 
@@ -30,8 +30,8 @@ module ThreeScaleToolbox
30
30
 
31
31
  # Detect format from file extension
32
32
  def read_file(filename)
33
- raise ThreeScaleToolbox::Error, "File not found: #{filename} " unless File.file?(filename)
34
- raise ThreeScaleToolbox::Error, "File not readable: #{filename} " unless File.readable?(filename)
33
+ raise ThreeScaleToolbox::Error, "File not found: #{filename}" unless File.file?(filename)
34
+ raise ThreeScaleToolbox::Error, "File not readable: #{filename}" unless File.readable?(filename)
35
35
 
36
36
  File.read(filename)
37
37
  end
@@ -1,3 +1,3 @@
1
1
  module ThreeScaleToolbox
2
- VERSION = '0.20.0'
2
+ VERSION = '1.0.0'
3
3
  end
data/licenses.xml CHANGED
@@ -13,7 +13,7 @@
13
13
  </dependency>
14
14
  <dependency>
15
15
  <packageName>3scale_toolbox</packageName>
16
- <version>0.20.0</version>
16
+ <version>1.0.0</version>
17
17
  <licenses>
18
18
  <license>
19
19
  <name>MIT</name>
@@ -23,7 +23,7 @@
23
23
  </dependency>
24
24
  <dependency>
25
25
  <packageName>activesupport</packageName>
26
- <version>6.1.4.4</version>
26
+ <version>7.0.6</version>
27
27
  <licenses>
28
28
  <license>
29
29
  <name>MIT</name>
@@ -33,7 +33,7 @@
33
33
  </dependency>
34
34
  <dependency>
35
35
  <packageName>addressable</packageName>
36
- <version>2.8.0</version>
36
+ <version>2.8.1</version>
37
37
  <licenses>
38
38
  <license>
39
39
  <name>Apache 2.0</name>
@@ -53,7 +53,7 @@
53
53
  </dependency>
54
54
  <dependency>
55
55
  <packageName>bundler</packageName>
56
- <version>2.2.21</version>
56
+ <version>2.3.5</version>
57
57
  <licenses>
58
58
  <license>
59
59
  <name>MIT</name>
@@ -83,7 +83,7 @@
83
83
  </dependency>
84
84
  <dependency>
85
85
  <packageName>concurrent-ruby</packageName>
86
- <version>1.1.9</version>
86
+ <version>1.2.2</version>
87
87
  <licenses>
88
88
  <license>
89
89
  <name>MIT</name>
@@ -126,16 +126,16 @@
126
126
  <version>1.5.0</version>
127
127
  <licenses>
128
128
  <license>
129
- <name>MIT</name>
130
- <url>http://opensource.org/licenses/mit-license</url>
131
- </license>
132
- <license>
133
129
  <name>Artistic-2.0</name>
134
130
  <url></url>
135
131
  </license>
136
132
  <license>
137
133
  <name>GPL-2.0+</name>
138
134
  <url></url>
135
+ </license>
136
+ <license>
137
+ <name>MIT</name>
138
+ <url>http://opensource.org/licenses/mit-license</url>
139
139
  </license>
140
140
  </licenses>
141
141
  </dependency>
@@ -151,7 +151,7 @@
151
151
  </dependency>
152
152
  <dependency>
153
153
  <packageName>dotenv</packageName>
154
- <version>2.7.6</version>
154
+ <version>2.8.1</version>
155
155
  <licenses>
156
156
  <license>
157
157
  <name>MIT</name>
@@ -161,7 +161,7 @@
161
161
  </dependency>
162
162
  <dependency>
163
163
  <packageName>hansi</packageName>
164
- <version>0.2.0</version>
164
+ <version>0.2.1</version>
165
165
  <licenses>
166
166
  <license>
167
167
  <name>MIT</name>
@@ -191,7 +191,7 @@
191
191
  </dependency>
192
192
  <dependency>
193
193
  <packageName>i18n</packageName>
194
- <version>1.9.1</version>
194
+ <version>1.14.1</version>
195
195
  <licenses>
196
196
  <license>
197
197
  <name>MIT</name>
@@ -211,7 +211,7 @@
211
211
  </dependency>
212
212
  <dependency>
213
213
  <packageName>license_finder</packageName>
214
- <version>5.11.1</version>
214
+ <version>7.1.0</version>
215
215
  <licenses>
216
216
  <license>
217
217
  <name>MIT</name>
@@ -230,8 +230,8 @@
230
230
  </licenses>
231
231
  </dependency>
232
232
  <dependency>
233
- <packageName>minitest</packageName>
234
- <version>5.15.0</version>
233
+ <packageName>mini_portile2</packageName>
234
+ <version>2.8.4</version>
235
235
  <licenses>
236
236
  <license>
237
237
  <name>MIT</name>
@@ -240,8 +240,8 @@
240
240
  </licenses>
241
241
  </dependency>
242
242
  <dependency>
243
- <packageName>mustermann</packageName>
244
- <version>1.1.1</version>
243
+ <packageName>minitest</packageName>
244
+ <version>5.18.1</version>
245
245
  <licenses>
246
246
  <license>
247
247
  <name>MIT</name>
@@ -250,8 +250,8 @@
250
250
  </licenses>
251
251
  </dependency>
252
252
  <dependency>
253
- <packageName>mustermann-contrib</packageName>
254
- <version>1.1.1</version>
253
+ <packageName>mustermann</packageName>
254
+ <version>1.1.2</version>
255
255
  <licenses>
256
256
  <license>
257
257
  <name>MIT</name>
@@ -260,8 +260,8 @@
260
260
  </licenses>
261
261
  </dependency>
262
262
  <dependency>
263
- <packageName>nokogiri</packageName>
264
- <version>1.13.1</version>
263
+ <packageName>mustermann-contrib</packageName>
264
+ <version>1.1.2</version>
265
265
  <licenses>
266
266
  <license>
267
267
  <name>MIT</name>
@@ -270,8 +270,8 @@
270
270
  </licenses>
271
271
  </dependency>
272
272
  <dependency>
273
- <packageName>oas_parser</packageName>
274
- <version>0.25.4</version>
273
+ <packageName>nokogiri</packageName>
274
+ <version>1.15.3</version>
275
275
  <licenses>
276
276
  <license>
277
277
  <name>MIT</name>
@@ -280,8 +280,8 @@
280
280
  </licenses>
281
281
  </dependency>
282
282
  <dependency>
283
- <packageName>parslet</packageName>
284
- <version>1.8.2</version>
283
+ <packageName>oas_parser</packageName>
284
+ <version>0.25.4</version>
285
285
  <licenses>
286
286
  <license>
287
287
  <name>MIT</name>
@@ -291,7 +291,7 @@
291
291
  </dependency>
292
292
  <dependency>
293
293
  <packageName>pry</packageName>
294
- <version>0.14.1</version>
294
+ <version>0.14.2</version>
295
295
  <licenses>
296
296
  <license>
297
297
  <name>MIT</name>
@@ -301,7 +301,7 @@
301
301
  </dependency>
302
302
  <dependency>
303
303
  <packageName>public_suffix</packageName>
304
- <version>4.0.6</version>
304
+ <version>5.0.1</version>
305
305
  <licenses>
306
306
  <license>
307
307
  <name>MIT</name>
@@ -311,15 +311,15 @@
311
311
  </dependency>
312
312
  <dependency>
313
313
  <packageName>racc</packageName>
314
- <version>1.6.0</version>
314
+ <version>1.7.1</version>
315
315
  <licenses>
316
316
  <license>
317
- <name>ruby</name>
318
- <url>http://www.ruby-lang.org/en/LICENSE.txt</url>
319
- </license>
320
- <license>
321
317
  <name>Simplified BSD</name>
322
318
  <url>http://opensource.org/licenses/bsd-license</url>
319
+ </license>
320
+ <license>
321
+ <name>ruby</name>
322
+ <url>http://www.ruby-lang.org/en/LICENSE.txt</url>
323
323
  </license>
324
324
  </licenses>
325
325
  </dependency>
@@ -345,7 +345,7 @@
345
345
  </dependency>
346
346
  <dependency>
347
347
  <packageName>rspec</packageName>
348
- <version>3.10.0</version>
348
+ <version>3.12.0</version>
349
349
  <licenses>
350
350
  <license>
351
351
  <name>MIT</name>
@@ -355,7 +355,7 @@
355
355
  </dependency>
356
356
  <dependency>
357
357
  <packageName>rspec-core</packageName>
358
- <version>3.10.2</version>
358
+ <version>3.12.0</version>
359
359
  <licenses>
360
360
  <license>
361
361
  <name>MIT</name>
@@ -365,7 +365,7 @@
365
365
  </dependency>
366
366
  <dependency>
367
367
  <packageName>rspec-expectations</packageName>
368
- <version>3.10.2</version>
368
+ <version>3.12.2</version>
369
369
  <licenses>
370
370
  <license>
371
371
  <name>MIT</name>
@@ -375,7 +375,7 @@
375
375
  </dependency>
376
376
  <dependency>
377
377
  <packageName>rspec-mocks</packageName>
378
- <version>3.10.3</version>
378
+ <version>3.12.3</version>
379
379
  <licenses>
380
380
  <license>
381
381
  <name>MIT</name>
@@ -385,7 +385,7 @@
385
385
  </dependency>
386
386
  <dependency>
387
387
  <packageName>rspec-support</packageName>
388
- <version>3.10.3</version>
388
+ <version>3.12.0</version>
389
389
  <licenses>
390
390
  <license>
391
391
  <name>MIT</name>
@@ -398,12 +398,12 @@
398
398
  <version>0.0.5</version>
399
399
  <licenses>
400
400
  <license>
401
- <name>ruby</name>
402
- <url>http://www.ruby-lang.org/en/LICENSE.txt</url>
403
- </license>
404
- <license>
405
401
  <name>Simplified BSD</name>
406
402
  <url>http://opensource.org/licenses/bsd-license</url>
403
+ </license>
404
+ <license>
405
+ <name>ruby</name>
406
+ <url>http://www.ruby-lang.org/en/LICENSE.txt</url>
407
407
  </license>
408
408
  </licenses>
409
409
  </dependency>
@@ -439,7 +439,7 @@
439
439
  </dependency>
440
440
  <dependency>
441
441
  <packageName>simplecov_json_formatter</packageName>
442
- <version>0.1.3</version>
442
+ <version>0.1.4</version>
443
443
  <licenses>
444
444
  <license>
445
445
  <name>MIT</name>
@@ -449,7 +449,7 @@
449
449
  </dependency>
450
450
  <dependency>
451
451
  <packageName>thor</packageName>
452
- <version>1.0.1</version>
452
+ <version>1.2.1</version>
453
453
  <licenses>
454
454
  <license>
455
455
  <name>MIT</name>
@@ -458,8 +458,8 @@
458
458
  </licenses>
459
459
  </dependency>
460
460
  <dependency>
461
- <packageName>toml</packageName>
462
- <version>0.2.0</version>
461
+ <packageName>tomlrb</packageName>
462
+ <version>2.0.3</version>
463
463
  <licenses>
464
464
  <license>
465
465
  <name>MIT</name>
@@ -469,7 +469,7 @@
469
469
  </dependency>
470
470
  <dependency>
471
471
  <packageName>tzinfo</packageName>
472
- <version>2.0.4</version>
472
+ <version>2.0.6</version>
473
473
  <licenses>
474
474
  <license>
475
475
  <name>MIT</name>
@@ -479,7 +479,7 @@
479
479
  </dependency>
480
480
  <dependency>
481
481
  <packageName>webmock</packageName>
482
- <version>3.14.0</version>
482
+ <version>3.18.1</version>
483
483
  <licenses>
484
484
  <license>
485
485
  <name>MIT</name>
@@ -506,16 +506,6 @@
506
506
  <url>http://opensource.org/licenses/mit-license</url>
507
507
  </license>
508
508
  </licenses>
509
- </dependency>
510
- <dependency>
511
- <packageName>zeitwerk</packageName>
512
- <version>2.5.4</version>
513
- <licenses>
514
- <license>
515
- <name>MIT</name>
516
- <url>http://opensource.org/licenses/mit-license</url>
517
- </license>
518
- </licenses>
519
509
  </dependency>
520
510
  </dependencies>
521
511
  </licenseSummary>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: 3scale_toolbox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.20.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miguel Soriano
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2022-02-03 00:00:00.000000000 Z
12
+ date: 2023-07-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -141,16 +141,22 @@ dependencies:
141
141
  name: activesupport
142
142
  requirement: !ruby/object:Gem::Requirement
143
143
  requirements:
144
- - - "~>"
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: '6'
147
+ - - "<"
145
148
  - !ruby/object:Gem::Version
146
- version: '6.0'
149
+ version: '8'
147
150
  type: :runtime
148
151
  prerelease: false
149
152
  version_requirements: !ruby/object:Gem::Requirement
150
153
  requirements:
151
- - - "~>"
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ version: '6'
157
+ - - "<"
152
158
  - !ruby/object:Gem::Version
153
- version: '6.0'
159
+ version: '8'
154
160
  description: 3scale tools to manage your API from the terminal.
155
161
  email:
156
162
  - msoriano@redhat.com
@@ -358,14 +364,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
358
364
  requirements:
359
365
  - - ">="
360
366
  - !ruby/object:Gem::Version
361
- version: '2.6'
367
+ version: '3.0'
362
368
  required_rubygems_version: !ruby/object:Gem::Requirement
363
369
  requirements:
364
370
  - - ">="
365
371
  - !ruby/object:Gem::Version
366
372
  version: '0'
367
373
  requirements: []
368
- rubygems_version: 3.0.3
374
+ rubygems_version: 3.4.10
369
375
  signing_key:
370
376
  specification_version: 4
371
377
  summary: 3scale Toolbox.