descope 1.0.4 → 1.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yaml +15 -27
- data/.github/workflows/publish-gem.yaml +36 -0
- data/Gemfile +12 -14
- data/Gemfile.lock +40 -87
- data/README.md +39 -17
- data/examples/ruby/access_key_app.rb +4 -2
- data/examples/ruby/management/Gemfile.lock +2 -2
- data/examples/ruby/management/role_app.rb +8 -3
- data/examples/ruby-on-rails-api/descope/.gitignore +58 -28
- data/examples/ruby-on-rails-api/descope/Gemfile.lock +3 -3
- data/examples/ruby-on-rails-api/descope/app/assets/builds/App.css +62 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/App.css.map +7 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/application.css +62 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/application.css.map +7 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/application.js +40369 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/application.js.map +7 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/components/App.css +62 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/components/App.css.map +7 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/components/App.js +27979 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/components/App.js.map +7 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Dashboard.css +62 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Dashboard.css.map +7 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Dashboard.js +27118 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Dashboard.js.map +7 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Home.css +62 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Home.css.map +7 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Home.js +27113 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Home.js.map +7 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Login.css +62 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Login.css.map +7 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Login.js +27131 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Login.js.map +7 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Profile.css +62 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Profile.css.map +7 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Profile.js +27168 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/components/Profile.js.map +7 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/components/index.css +62 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/components/index.css.map +7 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/components/index.js +28250 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/components/index.js.map +7 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/controllers/application.js +2456 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/controllers/application.js.map +7 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/controllers/index.js +2453 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/controllers/index.js.map +7 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/reportWebVitals.js +211 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/reportWebVitals.js.map +7 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/routes/index.css +62 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/routes/index.css.map +7 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/routes/index.js +27973 -0
- data/examples/ruby-on-rails-api/descope/app/assets/builds/routes/index.js.map +7 -0
- data/examples/ruby-on-rails-api/descope/package-lock.json +7 -8
- data/examples/ruby-on-rails-api/descope/yarn.lock +3 -3
- data/lib/descope/api/v1/auth.rb +21 -6
- data/lib/descope/api/v1/management/access_key.rb +5 -4
- data/lib/descope/api/v1/management/common.rb +4 -1
- data/lib/descope/api/v1/management/role.rb +22 -6
- data/lib/descope/api/v1/management/user.rb +17 -0
- data/lib/descope/mixins/common.rb +2 -12
- data/lib/descope/mixins/http.rb +1 -1
- data/lib/descope/version.rb +1 -1
- data/spec/integration/lib.descope/api/v1/auth/enchantedlink_spec.rb +81 -0
- data/spec/integration/lib.descope/api/v1/auth/magiclink_spec.rb +49 -0
- data/spec/integration/lib.descope/api/v1/auth/otp_spec.rb +38 -0
- data/spec/integration/lib.descope/api/v1/auth/password_spec.rb +41 -0
- data/spec/integration/lib.descope/api/v1/auth/totp_spec.rb +76 -0
- data/spec/integration/lib.descope/api/v1/management/access_key_spec.rb +62 -0
- data/spec/integration/lib.descope/api/v1/management/audit_spec.rb +16 -0
- data/spec/integration/lib.descope/api/v1/management/authz_spec.rb +187 -0
- data/spec/integration/lib.descope/api/v1/management/flow_spec.rb +44 -0
- data/spec/integration/lib.descope/api/v1/management/permissions_spec.rb +27 -0
- data/spec/integration/lib.descope/api/v1/management/project_spec.rb +29 -0
- data/spec/integration/lib.descope/api/v1/management/roles_spec.rb +116 -0
- data/spec/integration/lib.descope/api/v1/management/user_spec.rb +262 -0
- data/spec/lib.descope/api/v1/auth_spec.rb +50 -1
- data/spec/lib.descope/api/v1/management/access_key_spec.rb +4 -2
- data/spec/lib.descope/api/v1/management/role_spec.rb +35 -6
- data/spec/lib.descope/api/v1/management/user_spec.rb +40 -0
- data/spec/spec_helper.rb +9 -38
- data/spec/support/client_config.rb +5 -1
- data/spec/support/dummy_class.rb +15 -1
- data/spec/support/utils.rb +1 -1
- metadata +56 -4
- data/examples/ruby-on-rails-api/descope/tmp/pids/.keep +0 -0
- 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
|
-
|
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
|
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
|
-
|
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')
|
data/spec/support/dummy_class.rb
CHANGED
@@ -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|
|
data/spec/support/utils.rb
CHANGED
@@ -16,7 +16,7 @@ module SpecUtils
|
|
16
16
|
special_chars.sample
|
17
17
|
|
18
18
|
# Fill in remaining characters randomly
|
19
|
-
|
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
|
+
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-
|
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
|