3scale_toolbox 0.20.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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.