descope 1.0.4 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yaml +15 -27
  3. data/.github/workflows/publish-gem.yaml +36 -0
  4. data/Gemfile +12 -14
  5. data/Gemfile.lock +40 -87
  6. data/README.md +39 -17
  7. data/examples/ruby/access_key_app.rb +4 -2
  8. data/examples/ruby/management/Gemfile.lock +2 -2
  9. data/examples/ruby/management/role_app.rb +8 -3
  10. data/examples/ruby-on-rails-api/descope/.gitignore +58 -28
  11. data/examples/ruby-on-rails-api/descope/Gemfile.lock +3 -3
  12. data/examples/ruby-on-rails-api/descope/app/assets/builds/App.css +62 -0
  13. data/examples/ruby-on-rails-api/descope/app/assets/builds/App.css.map +7 -0
  14. data/examples/ruby-on-rails-api/descope/app/assets/builds/application.css +62 -0
  15. data/examples/ruby-on-rails-api/descope/app/assets/builds/application.css.map +7 -0
  16. data/examples/ruby-on-rails-api/descope/app/assets/builds/application.js +40369 -0
  17. data/examples/ruby-on-rails-api/descope/app/assets/builds/application.js.map +7 -0
  18. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/App.css +62 -0
  19. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/App.css.map +7 -0
  20. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/App.js +27979 -0
  21. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/App.js.map +7 -0
  22. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Dashboard.css +62 -0
  23. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Dashboard.css.map +7 -0
  24. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Dashboard.js +27118 -0
  25. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Dashboard.js.map +7 -0
  26. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Home.css +62 -0
  27. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Home.css.map +7 -0
  28. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Home.js +27113 -0
  29. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Home.js.map +7 -0
  30. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Login.css +62 -0
  31. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Login.css.map +7 -0
  32. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Login.js +27131 -0
  33. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Login.js.map +7 -0
  34. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Profile.css +62 -0
  35. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Profile.css.map +7 -0
  36. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Profile.js +27168 -0
  37. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Profile.js.map +7 -0
  38. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/index.css +62 -0
  39. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/index.css.map +7 -0
  40. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/index.js +28250 -0
  41. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/index.js.map +7 -0
  42. data/examples/ruby-on-rails-api/descope/app/assets/builds/controllers/application.js +2456 -0
  43. data/examples/ruby-on-rails-api/descope/app/assets/builds/controllers/application.js.map +7 -0
  44. data/examples/ruby-on-rails-api/descope/app/assets/builds/controllers/index.js +2453 -0
  45. data/examples/ruby-on-rails-api/descope/app/assets/builds/controllers/index.js.map +7 -0
  46. data/examples/ruby-on-rails-api/descope/app/assets/builds/reportWebVitals.js +211 -0
  47. data/examples/ruby-on-rails-api/descope/app/assets/builds/reportWebVitals.js.map +7 -0
  48. data/examples/ruby-on-rails-api/descope/app/assets/builds/routes/index.css +62 -0
  49. data/examples/ruby-on-rails-api/descope/app/assets/builds/routes/index.css.map +7 -0
  50. data/examples/ruby-on-rails-api/descope/app/assets/builds/routes/index.js +27973 -0
  51. data/examples/ruby-on-rails-api/descope/app/assets/builds/routes/index.js.map +7 -0
  52. data/examples/ruby-on-rails-api/descope/package-lock.json +7 -8
  53. data/examples/ruby-on-rails-api/descope/yarn.lock +3 -3
  54. data/lib/descope/api/v1/auth.rb +21 -6
  55. data/lib/descope/api/v1/management/access_key.rb +5 -4
  56. data/lib/descope/api/v1/management/common.rb +4 -1
  57. data/lib/descope/api/v1/management/role.rb +22 -6
  58. data/lib/descope/api/v1/management/user.rb +17 -0
  59. data/lib/descope/mixins/common.rb +2 -12
  60. data/lib/descope/mixins/http.rb +1 -1
  61. data/lib/descope/version.rb +1 -1
  62. data/spec/integration/lib.descope/api/v1/auth/enchantedlink_spec.rb +81 -0
  63. data/spec/integration/lib.descope/api/v1/auth/magiclink_spec.rb +49 -0
  64. data/spec/integration/lib.descope/api/v1/auth/otp_spec.rb +38 -0
  65. data/spec/integration/lib.descope/api/v1/auth/password_spec.rb +41 -0
  66. data/spec/integration/lib.descope/api/v1/auth/totp_spec.rb +76 -0
  67. data/spec/integration/lib.descope/api/v1/management/access_key_spec.rb +62 -0
  68. data/spec/integration/lib.descope/api/v1/management/audit_spec.rb +16 -0
  69. data/spec/integration/lib.descope/api/v1/management/authz_spec.rb +187 -0
  70. data/spec/integration/lib.descope/api/v1/management/flow_spec.rb +44 -0
  71. data/spec/integration/lib.descope/api/v1/management/permissions_spec.rb +27 -0
  72. data/spec/integration/lib.descope/api/v1/management/project_spec.rb +29 -0
  73. data/spec/integration/lib.descope/api/v1/management/roles_spec.rb +116 -0
  74. data/spec/integration/lib.descope/api/v1/management/user_spec.rb +262 -0
  75. data/spec/lib.descope/api/v1/auth_spec.rb +50 -1
  76. data/spec/lib.descope/api/v1/management/access_key_spec.rb +4 -2
  77. data/spec/lib.descope/api/v1/management/role_spec.rb +35 -6
  78. data/spec/lib.descope/api/v1/management/user_spec.rb +40 -0
  79. data/spec/spec_helper.rb +9 -38
  80. data/spec/support/client_config.rb +5 -1
  81. data/spec/support/dummy_class.rb +15 -1
  82. data/spec/support/utils.rb +1 -1
  83. metadata +56 -4
  84. data/examples/ruby-on-rails-api/descope/tmp/pids/.keep +0 -0
  85. data/examples/ruby-on-rails-api/descope/tmp/storage/.keep +0 -0
@@ -180,7 +180,9 @@ describe Descope::Api::V1::Auth do
180
180
  token = JWT.encode(default_payload.merge(payload), rsa_private, ALGORITHM)
181
181
 
182
182
  expect do
183
- sleep(20)
183
+ exp_in_seconds = 20
184
+ puts "Sleeping for #{exp_in_seconds} seconds to test token expiration. Please wait..."
185
+ sleep(exp_in_seconds)
184
186
  @instance.send(:validate_token, token)
185
187
  end.to raise_error(
186
188
  Descope::AuthException, /Signature has expired/
@@ -369,4 +371,51 @@ describe Descope::Api::V1::Auth do
369
371
  expect(@instance.validate_tenant_roles(jwt_response: { 'tenants' => { 't1' => { 'roles' => 'Role 1' } } }, tenant: 't2', roles: [])).to be false
370
372
  end
371
373
  end
374
+
375
+ context '.exchange_access_key' do
376
+ it 'is expected to respond to exchange access key' do
377
+ expect(@instance).to respond_to(:exchange_access_key)
378
+ end
379
+
380
+ it 'is expected to fail when access key is nil' do
381
+ expect { @instance.exchange_access_key(access_key: nil) }.to raise_error(Descope::AuthException)
382
+ end
383
+
384
+ it 'is expected to fail when access key is empty' do
385
+ expect { @instance.exchange_access_key(access_key: '') }.to raise_error(Descope::AuthException)
386
+ end
387
+
388
+ it 'is expected to fail when access key is not a string' do
389
+ expect { @instance.exchange_access_key(access_key: 123) }.to raise_error(Descope::AuthException)
390
+ end
391
+
392
+ it 'is expected to successfully exchange access key without login_options' do
393
+ jwt_response = { 'fake': 'response' }
394
+ access_key = 'abc'
395
+
396
+ expect(@instance).to receive(:post).with(
397
+ EXCHANGE_AUTH_ACCESS_KEY_PATH, { loginOptions: {}, audience: 'IT' }, {}, access_key
398
+ ).and_return(jwt_response)
399
+
400
+ allow(@instance).to receive(:generate_jwt_response).and_return(jwt_response)
401
+
402
+ expect { @instance.exchange_access_key(access_key:, audience: 'IT') }.not_to raise_error
403
+ end
404
+
405
+ it 'is expected to successfully exchange access key with login_options' do
406
+ jwt_response = { 'fake': 'response' }
407
+ access_key = 'abc'
408
+
409
+ expect(@instance).to receive(:post).with(
410
+ EXCHANGE_AUTH_ACCESS_KEY_PATH,
411
+ { loginOptions: { customClaims: { k1: 'v1' } }, audience: 'IT' },
412
+ {},
413
+ access_key
414
+ ).and_return(jwt_response)
415
+
416
+ allow(@instance).to receive(:generate_jwt_response).and_return(jwt_response)
417
+
418
+ expect { @instance.exchange_access_key(access_key:, login_options: { customClaims: { k1: 'v1' } }, audience: 'IT') }.not_to raise_error
419
+ end
420
+ end
372
421
  end
@@ -22,7 +22,8 @@ describe Descope::Api::V1::Management::AccessKey do
22
22
  roleNames: ['test'],
23
23
  keyTenants: [
24
24
  { tenantId: 'test', roleNames: %w[test test2] }
25
- ]
25
+ ],
26
+ customClaims: {'k1': 'v1'}
26
27
  }
27
28
  )
28
29
  expect do
@@ -32,7 +33,8 @@ describe Descope::Api::V1::Management::AccessKey do
32
33
  role_names: ['test'],
33
34
  key_tenants: [
34
35
  { tenant_id: 'test', role_names: %w[test test2] }
35
- ]
36
+ ],
37
+ custom_claims: {'k1': 'v1'}
36
38
  )
37
39
  end.not_to raise_error
38
40
  end
@@ -19,14 +19,16 @@ describe Descope::Api::V1::Management::Role do
19
19
  ROLE_CREATE_PATH, {
20
20
  name: 'test',
21
21
  description: 'test',
22
- permissionNames: ['test']
22
+ permissionNames: ['test'],
23
+ tenantId: 'test'
23
24
  }
24
25
  )
25
26
  expect do
26
27
  @instance.create_role(
27
28
  name: 'test',
28
29
  description: 'test',
29
- permission_names: ['test']
30
+ permission_names: ['test'],
31
+ tenant_id: 'test'
30
32
  )
31
33
  end.not_to raise_error
32
34
  end
@@ -43,7 +45,8 @@ describe Descope::Api::V1::Management::Role do
43
45
  name: 'test',
44
46
  newName: 'production',
45
47
  description: 'test',
46
- permissionNames: ['test']
48
+ permissionNames: ['test'],
49
+ tenantId: 'test'
47
50
  }
48
51
  )
49
52
  expect do
@@ -51,7 +54,8 @@ describe Descope::Api::V1::Management::Role do
51
54
  name: 'test',
52
55
  new_name: 'production',
53
56
  description: 'test',
54
- permission_names: ['test']
57
+ permission_names: ['test'],
58
+ tenant_id: 'test'
55
59
  )
56
60
  end.not_to raise_error
57
61
  end
@@ -64,10 +68,10 @@ describe Descope::Api::V1::Management::Role do
64
68
 
65
69
  it 'is expected to delete a role' do
66
70
  expect(@instance).to receive(:post).with(
67
- ROLE_DELETE_PATH, { name: 'test' }
71
+ ROLE_DELETE_PATH, { name: 'test', tenantId: 'test' }
68
72
  )
69
73
  expect do
70
- @instance.delete_role('test')
74
+ @instance.delete_role(name: 'test', tenant_id: 'test')
71
75
  end.not_to raise_error
72
76
  end
73
77
  end
@@ -82,4 +86,29 @@ describe Descope::Api::V1::Management::Role do
82
86
  expect { @instance.load_all_roles }.not_to raise_error
83
87
  end
84
88
  end
89
+
90
+ context '.search_roles' do
91
+ it 'should respond to .search_roles' do
92
+ expect(@instance).to respond_to :search_roles
93
+ end
94
+
95
+ it 'is expected to search roles' do
96
+ expect(@instance).to receive(:post).with(
97
+ ROLE_SEARCH_PATH, {
98
+ roleNames: %w[tester test2],
99
+ tenantIds: %w[t1 t2],
100
+ roleNameLike: 'test',
101
+ permissionNames: %w[perm1 perm2]
102
+ }
103
+ )
104
+ expect do
105
+ @instance.search_roles(
106
+ role_names: %w[tester test2],
107
+ tenant_ids: %w[t1 t2],
108
+ role_name_like: 'test',
109
+ permission_names: %w[perm1 perm2]
110
+ )
111
+ end.not_to raise_error
112
+ end
113
+ end
85
114
  end
@@ -548,6 +548,46 @@ describe Descope::Api::V1::Management::User do
548
548
  end
549
549
  end
550
550
 
551
+ context '.set_temporary_password' do
552
+ it 'is expected to respond to a set_temporary_password method' do
553
+ expect(@instance).to respond_to(:set_temporary_password)
554
+
555
+ expect(@instance).to receive(:post).with(
556
+ USER_SET_TEMPORARY_PASSWORD_PATH, {
557
+ loginId: 'someone@example.com',
558
+ password: 's3cr3t'
559
+ }
560
+ )
561
+
562
+ expect do
563
+ @instance.set_temporary_password(
564
+ login_id: 'someone@example.com',
565
+ password: 's3cr3t'
566
+ )
567
+ end.not_to raise_error
568
+ end
569
+ end
570
+
571
+ context '.set_active_password' do
572
+ it 'is expected to respond to a set_active_password method' do
573
+ expect(@instance).to respond_to(:set_active_password)
574
+
575
+ expect(@instance).to receive(:post).with(
576
+ USER_SET_ACTIVE_PASSWORD_PATH, {
577
+ loginId: 'someone@example.com',
578
+ password: 's3cr3t'
579
+ }
580
+ )
581
+
582
+ expect do
583
+ @instance.set_active_password(
584
+ login_id: 'someone@example.com',
585
+ password: 's3cr3t'
586
+ )
587
+ end.not_to raise_error
588
+ end
589
+ end
590
+
551
591
  context '.set_password' do
552
592
  it 'is expected to respond to a set_password method' do
553
593
  expect(@instance).to respond_to(:set_password)
data/spec/spec_helper.rb CHANGED
@@ -7,41 +7,27 @@ require 'base64'
7
7
  require 'descope'
8
8
  require 'super_diff/rspec'
9
9
  require 'factory_bot'
10
-
11
- if RUBY_VERSION >= '2.7.2'
12
- # NOTE: https://bugs.ruby-lang.org/issues/17000
13
- Warning[:deprecated] = true
14
- end
15
-
16
10
  require 'simplecov'
17
11
  require 'simplecov-html'
18
-
19
- SimpleCov.start
20
- SimpleCov.formatter = SimpleCov::Formatter::HTMLFormatter
21
-
22
- if ENV['CI'] == 'true'
23
- require 'simplecov-cobertura'
24
- SimpleCov.formatter = SimpleCov::Formatter::CoberturaFormatter
25
- end
26
-
27
- require 'webmock/rspec'
28
- WebMock.allow_net_connect!
12
+ require 'rspec'
29
13
 
30
14
  $LOAD_PATH.unshift File.expand_path('..', __FILE__)
31
15
  $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
32
16
 
33
- Dir['./lib/*.rb'].each { |f| require f }
34
- Dir['./lib/api/**/*.rb'].each { |f| require f }
35
- Dir['./spec/support/**/*.rb'].each { |f| require f }
36
- Dir['./spec/support/*.rb'].each { |f| require f }
37
-
38
17
  include Descope::Api::V1::Management::Common
39
18
  include Descope::Mixins::Common
40
19
  include Descope::Mixins::Common::EndpointsV1
41
20
  include Descope::Mixins::Common::EndpointsV2
42
21
  include Descope::Api::V1::Auth
43
22
 
44
- require 'rspec'
23
+ Dir['./lib/*.rb'].each { |f| require f }
24
+ Dir['./lib/api/**/*.rb'].each { |f| require f }
25
+ Dir['./spec/support/**/*.rb'].each { |f| require f }
26
+ Dir['./spec/support/*.rb'].each { |f| require f }
27
+
28
+ SimpleCov.start
29
+ SimpleCov.formatter = SimpleCov::Formatter::HTMLFormatter
30
+
45
31
  RSpec.configure do |config|
46
32
  config.filter_run focus: true
47
33
  config.run_all_when_everything_filtered = true
@@ -55,18 +41,3 @@ RSpec.configure do |config|
55
41
  FactoryBot.find_definitions
56
42
  end
57
43
  end
58
-
59
-
60
- def wait(time, increment = 5, elapsed_time = 0, &block)
61
- yield
62
- rescue RSpec::Expectations::ExpectationNotMetError => e
63
- raise e if elapsed_time >= time
64
- sleep increment
65
- wait(time, increment, elapsed_time + increment, &block)
66
- end
67
-
68
- def entity_suffix
69
- 'rubytest-210908'
70
- end
71
-
72
- puts "Entity suffix is #{entity_suffix}"
@@ -1,11 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+
3
4
  module Configuration
4
5
  module_function
5
6
 
6
7
  def config
8
+ raise 'DESCOPE_MANAGEMENT_KEY is not set' if ENV['DESCOPE_MANAGEMENT_KEY'].nil?
9
+ raise 'DESCOPE_PROJECT_ID is not set' if ENV['DESCOPE_PROJECT_ID'].nil?
10
+
7
11
  {
8
- base_uri: ENV.fetch('DESCOPE_BASE_URI', nil),
12
+ descope_base_uri: ENV.fetch('DESCOPE_BASE_URI', Descope::Mixins::Common::DEFAULT_BASE_URL),
9
13
  project_id: ENV.fetch('DESCOPE_PROJECT_ID', nil),
10
14
  management_key: ENV.fetch('DESCOPE_MANAGEMENT_KEY', nil),
11
15
  log_level: ENV.fetch('DESCOPE_LOG_LEVEL', 'info')
@@ -5,6 +5,7 @@ class DummyClass
5
5
  include Descope::Mixins::Headers
6
6
  include Descope::Mixins::Common
7
7
  include Descope::Mixins::Common::EndpointsV1
8
+ include Descope::Mixins::Common::EndpointsV2
8
9
  include Descope::Api::V1::Management::Common
9
10
  include Descope::Api::V1::Auth
10
11
 
@@ -22,7 +23,20 @@ class DummyClass
22
23
  @management_key = 'management_key'
23
24
  @public_keys = {}
24
25
  @mlock = Mutex.new
25
- @logger ||= Descope::Mixins::Logging.logger_for(self.class.name, 'info')
26
+ @logger ||= Descope::Mixins::Logging.logger_for(self.class.name, ENV.fetch('DESCOPE_LOG_LEVEL', 'info'))
27
+ end
28
+
29
+ def add_headers(h = {})
30
+ raise ArgumentError, 'Headers must be an object which responds to #to_hash' unless h.respond_to?(:to_hash)
31
+
32
+ @headers ||= {}
33
+ @headers.merge!(h.to_hash)
34
+ end
35
+
36
+ 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}")
26
40
  end
27
41
 
28
42
  %i[get post post_file post_form put patch delete delete_with_body].each do |method|
@@ -16,7 +16,7 @@ module SpecUtils
16
16
  special_chars.sample
17
17
 
18
18
  # Fill in remaining characters randomly
19
- 4.times { password += [lowercase_characters, uppercase_characters, digits, special_chars].sample.sample }
19
+ 5.times { password += [lowercase_characters, uppercase_characters, digits, special_chars].sample.sample }
20
20
 
21
21
  # Randomize the order of characters to make the password less predictable
22
22
  password.split('').shuffle.join
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: descope
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Descope
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-13 00:00:00.000000000 Z
11
+ date: 2024-03-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -200,6 +200,7 @@ extensions: []
200
200
  extra_rdoc_files: []
201
201
  files:
202
202
  - ".github/workflows/ci.yaml"
203
+ - ".github/workflows/publish-gem.yaml"
203
204
  - ".gitignore"
204
205
  - ".release-please-manifest.json"
205
206
  - ".rubocop.yml"
@@ -224,6 +225,46 @@ files:
224
225
  - examples/ruby-on-rails-api/descope/README.md
225
226
  - examples/ruby-on-rails-api/descope/Rakefile
226
227
  - examples/ruby-on-rails-api/descope/app/assets/builds/.keep
228
+ - examples/ruby-on-rails-api/descope/app/assets/builds/App.css
229
+ - examples/ruby-on-rails-api/descope/app/assets/builds/App.css.map
230
+ - examples/ruby-on-rails-api/descope/app/assets/builds/application.css
231
+ - examples/ruby-on-rails-api/descope/app/assets/builds/application.css.map
232
+ - examples/ruby-on-rails-api/descope/app/assets/builds/application.js
233
+ - examples/ruby-on-rails-api/descope/app/assets/builds/application.js.map
234
+ - examples/ruby-on-rails-api/descope/app/assets/builds/components/App.css
235
+ - examples/ruby-on-rails-api/descope/app/assets/builds/components/App.css.map
236
+ - examples/ruby-on-rails-api/descope/app/assets/builds/components/App.js
237
+ - examples/ruby-on-rails-api/descope/app/assets/builds/components/App.js.map
238
+ - examples/ruby-on-rails-api/descope/app/assets/builds/components/Dashboard.css
239
+ - examples/ruby-on-rails-api/descope/app/assets/builds/components/Dashboard.css.map
240
+ - examples/ruby-on-rails-api/descope/app/assets/builds/components/Dashboard.js
241
+ - examples/ruby-on-rails-api/descope/app/assets/builds/components/Dashboard.js.map
242
+ - examples/ruby-on-rails-api/descope/app/assets/builds/components/Home.css
243
+ - examples/ruby-on-rails-api/descope/app/assets/builds/components/Home.css.map
244
+ - examples/ruby-on-rails-api/descope/app/assets/builds/components/Home.js
245
+ - examples/ruby-on-rails-api/descope/app/assets/builds/components/Home.js.map
246
+ - examples/ruby-on-rails-api/descope/app/assets/builds/components/Login.css
247
+ - examples/ruby-on-rails-api/descope/app/assets/builds/components/Login.css.map
248
+ - examples/ruby-on-rails-api/descope/app/assets/builds/components/Login.js
249
+ - examples/ruby-on-rails-api/descope/app/assets/builds/components/Login.js.map
250
+ - examples/ruby-on-rails-api/descope/app/assets/builds/components/Profile.css
251
+ - examples/ruby-on-rails-api/descope/app/assets/builds/components/Profile.css.map
252
+ - examples/ruby-on-rails-api/descope/app/assets/builds/components/Profile.js
253
+ - examples/ruby-on-rails-api/descope/app/assets/builds/components/Profile.js.map
254
+ - examples/ruby-on-rails-api/descope/app/assets/builds/components/index.css
255
+ - examples/ruby-on-rails-api/descope/app/assets/builds/components/index.css.map
256
+ - examples/ruby-on-rails-api/descope/app/assets/builds/components/index.js
257
+ - examples/ruby-on-rails-api/descope/app/assets/builds/components/index.js.map
258
+ - examples/ruby-on-rails-api/descope/app/assets/builds/controllers/application.js
259
+ - examples/ruby-on-rails-api/descope/app/assets/builds/controllers/application.js.map
260
+ - examples/ruby-on-rails-api/descope/app/assets/builds/controllers/index.js
261
+ - examples/ruby-on-rails-api/descope/app/assets/builds/controllers/index.js.map
262
+ - examples/ruby-on-rails-api/descope/app/assets/builds/reportWebVitals.js
263
+ - examples/ruby-on-rails-api/descope/app/assets/builds/reportWebVitals.js.map
264
+ - examples/ruby-on-rails-api/descope/app/assets/builds/routes/index.css
265
+ - examples/ruby-on-rails-api/descope/app/assets/builds/routes/index.css.map
266
+ - examples/ruby-on-rails-api/descope/app/assets/builds/routes/index.js
267
+ - examples/ruby-on-rails-api/descope/app/assets/builds/routes/index.js.map
227
268
  - examples/ruby-on-rails-api/descope/app/assets/config/manifest.js
228
269
  - examples/ruby-on-rails-api/descope/app/assets/images/.keep
229
270
  - examples/ruby-on-rails-api/descope/app/assets/images/descope.jpeg
@@ -305,8 +346,6 @@ files:
305
346
  - examples/ruby-on-rails-api/descope/public/robots.txt
306
347
  - examples/ruby-on-rails-api/descope/storage/.keep
307
348
  - examples/ruby-on-rails-api/descope/tmp/.keep
308
- - examples/ruby-on-rails-api/descope/tmp/pids/.keep
309
- - examples/ruby-on-rails-api/descope/tmp/storage/.keep
310
349
  - examples/ruby-on-rails-api/descope/vendor/.keep
311
350
  - examples/ruby-on-rails-api/descope/yarn.lock
312
351
  - examples/ruby/Gemfile
@@ -368,6 +407,19 @@ files:
368
407
  - release-please-config.json
369
408
  - renovate.json
370
409
  - spec/factories/user.rb
410
+ - spec/integration/lib.descope/api/v1/auth/enchantedlink_spec.rb
411
+ - spec/integration/lib.descope/api/v1/auth/magiclink_spec.rb
412
+ - spec/integration/lib.descope/api/v1/auth/otp_spec.rb
413
+ - spec/integration/lib.descope/api/v1/auth/password_spec.rb
414
+ - spec/integration/lib.descope/api/v1/auth/totp_spec.rb
415
+ - spec/integration/lib.descope/api/v1/management/access_key_spec.rb
416
+ - spec/integration/lib.descope/api/v1/management/audit_spec.rb
417
+ - spec/integration/lib.descope/api/v1/management/authz_spec.rb
418
+ - spec/integration/lib.descope/api/v1/management/flow_spec.rb
419
+ - spec/integration/lib.descope/api/v1/management/permissions_spec.rb
420
+ - spec/integration/lib.descope/api/v1/management/project_spec.rb
421
+ - spec/integration/lib.descope/api/v1/management/roles_spec.rb
422
+ - spec/integration/lib.descope/api/v1/management/user_spec.rb
371
423
  - spec/lib.descope/api/v1/auth/enchantedlink_spec.rb
372
424
  - spec/lib.descope/api/v1/auth/magiclink_spec.rb
373
425
  - spec/lib.descope/api/v1/auth/oauth_spec.rb
File without changes
File without changes