descope 1.1.0 → 1.2.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 (76) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yaml +4 -4
  3. data/.github/workflows/publish-gem.yaml +2 -2
  4. data/.github/workflows/release-please.yaml +1 -1
  5. data/.release-please-manifest.json +1 -1
  6. data/.rubocop.yml +1 -1
  7. data/.rubocop_todo.yml +1 -1
  8. data/.ruby-version +1 -1
  9. data/CHANGELOG.md +10 -0
  10. data/Gemfile +5 -5
  11. data/Gemfile.lock +32 -32
  12. data/README.md +233 -1
  13. data/lib/descope/api/v1/auth/enchantedlink.rb +76 -9
  14. data/lib/descope/api/v1/management/access_key.rb +8 -7
  15. data/lib/descope/api/v1/management/analytics.rb +62 -0
  16. data/lib/descope/api/v1/management/audit.rb +2 -2
  17. data/lib/descope/api/v1/management/authz.rb +15 -15
  18. data/lib/descope/api/v1/management/common.rb +76 -0
  19. data/lib/descope/api/v1/management/descoper.rb +45 -0
  20. data/lib/descope/api/v1/management/engine.rb +44 -0
  21. data/lib/descope/api/v1/management/fga.rb +64 -0
  22. data/lib/descope/api/v1/management/flow.rb +5 -5
  23. data/lib/descope/api/v1/management/group.rb +42 -0
  24. data/lib/descope/api/v1/management/jwt_template.rb +49 -0
  25. data/lib/descope/api/v1/management/lists.rb +96 -0
  26. data/lib/descope/api/v1/management/management_key.rb +54 -0
  27. data/lib/descope/api/v1/management/outbound_app.rb +112 -0
  28. data/lib/descope/api/v1/management/password.rb +2 -2
  29. data/lib/descope/api/v1/management/permission.rb +4 -4
  30. data/lib/descope/api/v1/management/project.rb +5 -5
  31. data/lib/descope/api/v1/management/role.rb +5 -5
  32. data/lib/descope/api/v1/management/scim.rb +14 -14
  33. data/lib/descope/api/v1/management/scope_claim_mapping.rb +34 -0
  34. data/lib/descope/api/v1/management/sso_application.rb +7 -7
  35. data/lib/descope/api/v1/management/sso_settings.rb +5 -5
  36. data/lib/descope/api/v1/management/tenant.rb +8 -6
  37. data/lib/descope/api/v1/management/third_party_application.rb +190 -0
  38. data/lib/descope/api/v1/management/user.rb +36 -36
  39. data/lib/descope/api/v1/management.rb +22 -0
  40. data/lib/descope/http_client.rb +30 -0
  41. data/lib/descope/mixins/common.rb +1 -0
  42. data/lib/descope/mixins/http.rb +23 -16
  43. data/lib/descope/mixins/initializer.rb +19 -9
  44. data/lib/descope/mixins/requests.rb +24 -0
  45. data/lib/descope/mixins.rb +2 -1
  46. data/lib/descope/version.rb +1 -1
  47. data/spec/integration/lib.descope/api/v1/management/user_spec.rb +1 -1
  48. data/spec/lib.descope/api/v1/auth/enchantedlink_spec.rb +163 -1
  49. data/spec/lib.descope/api/v1/management/access_key_spec.rb +7 -7
  50. data/spec/lib.descope/api/v1/management/analytics_spec.rb +82 -0
  51. data/spec/lib.descope/api/v1/management/audit_spec.rb +2 -2
  52. data/spec/lib.descope/api/v1/management/authz_spec.rb +16 -16
  53. data/spec/lib.descope/api/v1/management/descoper_spec.rb +101 -0
  54. data/spec/lib.descope/api/v1/management/engine_spec.rb +115 -0
  55. data/spec/lib.descope/api/v1/management/fga_spec.rb +169 -0
  56. data/spec/lib.descope/api/v1/management/flow_spec.rb +5 -5
  57. data/spec/lib.descope/api/v1/management/group_spec.rb +72 -0
  58. data/spec/lib.descope/api/v1/management/jwt_template_spec.rb +103 -0
  59. data/spec/lib.descope/api/v1/management/lists_spec.rb +285 -0
  60. data/spec/lib.descope/api/v1/management/management_key_spec.rb +109 -0
  61. data/spec/lib.descope/api/v1/management/outbound_app_spec.rb +236 -0
  62. data/spec/lib.descope/api/v1/management/password_spec.rb +2 -2
  63. data/spec/lib.descope/api/v1/management/permission_spec.rb +4 -4
  64. data/spec/lib.descope/api/v1/management/project_spec.rb +4 -4
  65. data/spec/lib.descope/api/v1/management/role_spec.rb +5 -5
  66. data/spec/lib.descope/api/v1/management/scim_spec.rb +14 -14
  67. data/spec/lib.descope/api/v1/management/scope_claim_mapping_spec.rb +59 -0
  68. data/spec/lib.descope/api/v1/management/sso_application_spec.rb +6 -6
  69. data/spec/lib.descope/api/v1/management/sso_settings_spec.rb +5 -5
  70. data/spec/lib.descope/api/v1/management/tenant_spec.rb +6 -6
  71. data/spec/lib.descope/api/v1/management/third_party_application_spec.rb +171 -0
  72. data/spec/lib.descope/api/v1/management/user_spec.rb +36 -36
  73. data/spec/lib.descope/auth_management_key_spec.rb +151 -0
  74. data/spec/support/client_config.rb +1 -0
  75. data/spec/support/dummy_class.rb +12 -9
  76. metadata +28 -3
@@ -11,6 +11,7 @@ module Configuration
11
11
  descope_base_uri: ENV.fetch('DESCOPE_BASE_URI', Descope::Mixins::Common::DEFAULT_BASE_URL),
12
12
  project_id: ENV.fetch('DESCOPE_PROJECT_ID', nil),
13
13
  management_key: ENV.fetch('DESCOPE_MANAGEMENT_KEY', nil),
14
+ auth_management_key: ENV.fetch('DESCOPE_AUTH_MANAGEMENT_KEY', nil),
14
15
  log_level: ENV.fetch('DESCOPE_LOG_LEVEL', 'info')
15
16
  }
16
17
  end
@@ -33,18 +33,21 @@ class DummyClass
33
33
  @headers.merge!(h.to_hash)
34
34
  end
35
35
 
36
+ # Mirrors Descope::HttpClient#authorization_header. Specs that need to assert on the real bearer
37
+ # should drive a Descope::Client instead - see spec/lib.descope/auth_management_key_spec.rb.
36
38
  def authorization_header(pswd = nil)
37
- pswd = @default_pswd if pswd.nil? || pswd.empty?
38
- bearer = "#{@project_id}:#{pswd}"
39
- add_headers('Authorization' => "Bearer #{bearer}")
39
+ bearer = [@project_id, pswd, @key].reject { |part| part.nil? || part.to_s.empty? }.join(':')
40
+ { 'Authorization' => "Bearer #{bearer}" }
40
41
  end
41
42
 
42
- %i[get post post_file post_form put patch delete delete_with_body].each do |method|
43
- define_method(method) do |uri, body = {}, extra_headers = {}, pswd = nil|
44
- body = body.delete_if { |_, v| v.nil? }
45
- authorization_header(pswd) unless pswd.nil? || pswd.empty?
46
- {}
43
+ # The bare verbs stand in for authentication requests, the mgmt_ prefixed ones for management
44
+ # requests, matching how Descope::Client routes them to its two HTTP clients.
45
+ Descope::Mixins::HTTP::HTTP_METHODS.each do |method|
46
+ [method, :"mgmt_#{method}"].each do |name|
47
+ define_method(name) do |_uri, _body = {}, _extra_headers = {}, pswd = nil|
48
+ add_headers(authorization_header(pswd)) unless pswd.nil? || pswd.empty?
49
+ {}
50
+ end
47
51
  end
48
52
  end
49
-
50
53
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: descope
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Descope Inc.
@@ -268,28 +268,41 @@ files:
268
268
  - lib/descope/api/v1/auth/totp.rb
269
269
  - lib/descope/api/v1/management.rb
270
270
  - lib/descope/api/v1/management/access_key.rb
271
+ - lib/descope/api/v1/management/analytics.rb
271
272
  - lib/descope/api/v1/management/audit.rb
272
273
  - lib/descope/api/v1/management/authz.rb
273
274
  - lib/descope/api/v1/management/common.rb
275
+ - lib/descope/api/v1/management/descoper.rb
276
+ - lib/descope/api/v1/management/engine.rb
277
+ - lib/descope/api/v1/management/fga.rb
274
278
  - lib/descope/api/v1/management/flow.rb
279
+ - lib/descope/api/v1/management/group.rb
280
+ - lib/descope/api/v1/management/jwt_template.rb
281
+ - lib/descope/api/v1/management/lists.rb
282
+ - lib/descope/api/v1/management/management_key.rb
283
+ - lib/descope/api/v1/management/outbound_app.rb
275
284
  - lib/descope/api/v1/management/password.rb
276
285
  - lib/descope/api/v1/management/permission.rb
277
286
  - lib/descope/api/v1/management/project.rb
278
287
  - lib/descope/api/v1/management/role.rb
279
288
  - lib/descope/api/v1/management/scim.rb
289
+ - lib/descope/api/v1/management/scope_claim_mapping.rb
280
290
  - lib/descope/api/v1/management/sso_application.rb
281
291
  - lib/descope/api/v1/management/sso_settings.rb
282
292
  - lib/descope/api/v1/management/tenant.rb
293
+ - lib/descope/api/v1/management/third_party_application.rb
283
294
  - lib/descope/api/v1/management/user.rb
284
295
  - lib/descope/api/v1/session.rb
285
296
  - lib/descope/client.rb
286
297
  - lib/descope/exception.rb
298
+ - lib/descope/http_client.rb
287
299
  - lib/descope/mixins.rb
288
300
  - lib/descope/mixins/common.rb
289
301
  - lib/descope/mixins/headers.rb
290
302
  - lib/descope/mixins/http.rb
291
303
  - lib/descope/mixins/initializer.rb
292
304
  - lib/descope/mixins/logging.rb
305
+ - lib/descope/mixins/requests.rb
293
306
  - lib/descope/mixins/validation.rb
294
307
  - lib/descope/version.rb
295
308
  - lib/descope_client.rb
@@ -323,19 +336,31 @@ files:
323
336
  - spec/lib.descope/api/v1/auth_spec.rb
324
337
  - spec/lib.descope/api/v1/cookie_domain_fix_integration_spec.rb
325
338
  - spec/lib.descope/api/v1/management/access_key_spec.rb
339
+ - spec/lib.descope/api/v1/management/analytics_spec.rb
326
340
  - spec/lib.descope/api/v1/management/audit_spec.rb
327
341
  - spec/lib.descope/api/v1/management/authz_spec.rb
342
+ - spec/lib.descope/api/v1/management/descoper_spec.rb
343
+ - spec/lib.descope/api/v1/management/engine_spec.rb
344
+ - spec/lib.descope/api/v1/management/fga_spec.rb
328
345
  - spec/lib.descope/api/v1/management/flow_spec.rb
346
+ - spec/lib.descope/api/v1/management/group_spec.rb
347
+ - spec/lib.descope/api/v1/management/jwt_template_spec.rb
348
+ - spec/lib.descope/api/v1/management/lists_spec.rb
349
+ - spec/lib.descope/api/v1/management/management_key_spec.rb
350
+ - spec/lib.descope/api/v1/management/outbound_app_spec.rb
329
351
  - spec/lib.descope/api/v1/management/password_spec.rb
330
352
  - spec/lib.descope/api/v1/management/permission_spec.rb
331
353
  - spec/lib.descope/api/v1/management/project_spec.rb
332
354
  - spec/lib.descope/api/v1/management/role_spec.rb
333
355
  - spec/lib.descope/api/v1/management/scim_spec.rb
356
+ - spec/lib.descope/api/v1/management/scope_claim_mapping_spec.rb
334
357
  - spec/lib.descope/api/v1/management/sso_application_spec.rb
335
358
  - spec/lib.descope/api/v1/management/sso_settings_spec.rb
336
359
  - spec/lib.descope/api/v1/management/tenant_spec.rb
360
+ - spec/lib.descope/api/v1/management/third_party_application_spec.rb
337
361
  - spec/lib.descope/api/v1/management/user_spec.rb
338
362
  - spec/lib.descope/api/v1/session_spec.rb
363
+ - spec/lib.descope/auth_management_key_spec.rb
339
364
  - spec/lib.descope/client_spec.rb
340
365
  - spec/lib.descope/mixins/http_spec.rb
341
366
  - spec/spec_helper.rb
@@ -347,9 +372,9 @@ licenses:
347
372
  - MIT
348
373
  metadata:
349
374
  bug_tracker_uri: https://github.com/descope/descope-ruby-sdk/issues
350
- changelog_uri: https://github.com/descope/descope-ruby-sdk/releases/tag/1.1.0
375
+ changelog_uri: https://github.com/descope/descope-ruby-sdk/releases/tag/1.2.0
351
376
  documentation_uri: https://docs.descope.com
352
- source_code_uri: https://github.com/descope/descope-ruby-sdk/tree/1.1.0
377
+ source_code_uri: https://github.com/descope/descope-ruby-sdk/tree/1.2.0
353
378
  rdoc_options: []
354
379
  require_paths:
355
380
  - lib