osso 0.0.3.3 → 0.0.3.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/.buildkite/pipeline.yml +4 -1
  3. data/.gitignore +1 -1
  4. data/.rubocop.yml +1 -2
  5. data/Gemfile.lock +3 -1
  6. data/bin/console +4 -3
  7. data/config/database.yml +2 -2
  8. data/{lib/osso/db → db}/schema.rb +7 -15
  9. data/lib/osso.rb +2 -0
  10. data/lib/osso/db/migrate/20200328143305_create_identity_providers.rb +12 -0
  11. data/lib/osso/db/migrate/20200411184535_add_provider_id_to_users.rb +2 -2
  12. data/lib/osso/db/migrate/20200411192645_create_enterprise_accounts.rb +1 -1
  13. data/lib/osso/db/migrate/20200502135008_add_oauth_client_id_to_enterprise_accounts_and_identity_providers.rb +6 -0
  14. data/lib/osso/db/migrate/20200714223226_add_identity_provider_service_enum.rb +17 -0
  15. data/lib/osso/db/migrate/20200715154211_rename_idp_fields_on_identity_provider_to_sso.rb +6 -0
  16. data/lib/osso/db/migrate/20200715205801_add_name_to_enterprise_account.rb +5 -0
  17. data/lib/osso/db/migrate/20200722230116_add_identity_provider_status_enum_and_use_on_identity_providers.rb +15 -0
  18. data/lib/osso/graphql/mutation.rb +16 -0
  19. data/lib/osso/graphql/mutations.rb +12 -0
  20. data/lib/osso/graphql/mutations/base_mutation.rb +41 -0
  21. data/lib/osso/graphql/mutations/configure_identity_provider.rb +36 -0
  22. data/lib/osso/graphql/mutations/create_enterprise_account.rb +25 -0
  23. data/lib/osso/graphql/mutations/create_identity_provider.rb +30 -0
  24. data/lib/osso/graphql/mutations/set_identity_provider.rb +27 -0
  25. data/lib/osso/graphql/query.rb +25 -0
  26. data/lib/osso/graphql/resolvers.rb +12 -0
  27. data/lib/osso/graphql/resolvers/enterprise_account.rb +25 -0
  28. data/lib/osso/graphql/resolvers/enterprise_accounts.rb +17 -0
  29. data/lib/osso/graphql/resolvers/oauth_clients.rb +15 -0
  30. data/lib/osso/graphql/schema.rb +46 -0
  31. data/lib/osso/graphql/types.rb +16 -0
  32. data/lib/osso/graphql/types/base_enum.rb +10 -0
  33. data/lib/osso/graphql/types/base_input_object.rb +10 -0
  34. data/lib/osso/graphql/types/base_object.rb +12 -0
  35. data/lib/osso/graphql/types/enterprise_account.rb +33 -0
  36. data/lib/osso/graphql/types/identity_provider.rb +33 -0
  37. data/lib/osso/graphql/types/identity_provider_service.rb +12 -0
  38. data/lib/osso/graphql/types/identity_provider_status.rb +14 -0
  39. data/lib/osso/graphql/types/oauth_client.rb +20 -0
  40. data/lib/osso/graphql/types/user.rb +17 -0
  41. data/lib/osso/helpers/auth.rb +53 -49
  42. data/lib/osso/helpers/helpers.rb +3 -1
  43. data/lib/osso/lib/app_config.rb +1 -1
  44. data/lib/osso/lib/route_map.rb +28 -0
  45. data/lib/osso/models/enterprise_account.rb +4 -4
  46. data/lib/osso/models/identity_provider.rb +56 -0
  47. data/lib/osso/models/models.rb +1 -1
  48. data/lib/osso/models/oauth_client.rb +2 -2
  49. data/lib/osso/models/saml_provider.rb +13 -16
  50. data/lib/osso/models/saml_providers/azure_saml_provider.rb +2 -2
  51. data/lib/osso/models/saml_providers/okta_saml_provider.rb +1 -1
  52. data/lib/osso/models/user.rb +3 -3
  53. data/lib/osso/routes/admin.rb +18 -19
  54. data/lib/osso/routes/auth.rb +30 -27
  55. data/lib/osso/routes/oauth.rb +50 -44
  56. data/lib/osso/version.rb +1 -1
  57. data/osso-rb.gemspec +3 -3
  58. data/spec/factories/enterprise_account.rb +5 -4
  59. data/spec/factories/identity_providers.rb +49 -0
  60. data/spec/factories/user.rb +1 -1
  61. data/spec/graphql/mutations/configure_identity_provider_spec.rb +75 -0
  62. data/spec/graphql/mutations/create_enterprise_account_spec.rb +68 -0
  63. data/spec/graphql/mutations/create_identity_provider_spec.rb +104 -0
  64. data/spec/graphql/query/enterprise_account_spec.rb +68 -0
  65. data/spec/graphql/query/enterprise_accounts_spec.rb +44 -0
  66. data/spec/graphql/query/identity_provider_spec.rb +65 -0
  67. data/spec/graphql/query/oauth_clients_account_spec.rb +48 -0
  68. data/spec/models/azure_saml_provider_spec.rb +14 -14
  69. data/spec/models/identity_provider_spec.rb +17 -0
  70. data/spec/models/okta_saml_provider_spec.rb +15 -15
  71. data/spec/routes/admin_spec.rb +3 -0
  72. data/spec/routes/auth_spec.rb +9 -9
  73. data/spec/routes/oauth_spec.rb +1 -1
  74. data/spec/spec_helper.rb +8 -5
  75. data/spec/support/spec_app.rb +9 -0
  76. data/spec/support/views/admin.erb +5 -0
  77. metadata +60 -12
  78. data/lib/osso/db/migrate/20200411144528_create_saml_providers.rb +0 -13
  79. data/lib/osso/db/migrate/20200413153029_add_oauth_client_reference_to_saml_providers.rb +0 -5
  80. data/lib/osso/db/migrate/20200501203026_drop_null_constraints_from_saml_provider.rb +0 -7
  81. data/lib/osso/db/migrate/20200501204047_drop_acs_url.rb +0 -5
  82. data/lib/osso/db/migrate/20200502135008_add_oauth_client_id_to_enterprise_account.rb +0 -5
  83. data/lib/osso/db/migrate/20200601131227_drop_null_constraint_from_saml_providers_provider.rb +0 -7
  84. data/spec/factories/saml_providers.rb +0 -46
  85. data/spec/models/saml_provider_spec.rb +0 -31
  86. data/spec/support/vcr_cassettes/okta_saml_callback.yml +0 -59
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Osso::GraphQL::Schema do
6
+ describe 'EnterpriseAccounts' do
7
+ describe 'for an admin user' do
8
+ let(:current_scope) { :admin }
9
+
10
+ it 'returns Enterprise Accounts' do
11
+ create_list(:enterprise_account, 2)
12
+
13
+ query = <<~GRAPHQL
14
+ query EnterpriseAccounts {
15
+ enterpriseAccounts {
16
+ domain
17
+ id
18
+ identityProviders {
19
+ id
20
+ service
21
+ domain
22
+ acsUrl
23
+ ssoCert
24
+ ssoUrl
25
+ status
26
+ }
27
+ name
28
+ status
29
+ }
30
+ }
31
+ GRAPHQL
32
+
33
+ response = described_class.execute(
34
+ query,
35
+ variables: nil,
36
+ context: { scope: current_scope },
37
+ )
38
+
39
+ expect(response['errors']).to be_nil
40
+ expect(response.dig('data', 'enterpriseAccounts').count).to eq(2)
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Osso::GraphQL::Schema do
6
+ describe 'Identity Provider' do
7
+ let(:id) { Faker::Internet.uuid }
8
+ let(:domain) { Faker::Internet.domain_name }
9
+ let(:variables) { { id: id } }
10
+ let(:query) do
11
+ <<~GRAPHQL
12
+ query IdentityProvider($id: ID!) {
13
+ identityProvider(id: $id) {
14
+ id
15
+ service
16
+ domain
17
+ acsUrl
18
+ ssoCert
19
+ ssoUrl
20
+ status
21
+ }
22
+ }
23
+ GRAPHQL
24
+ end
25
+
26
+ before do
27
+ create(:identity_provider)
28
+ create(:identity_provider, id: id, domain: domain)
29
+ end
30
+
31
+ subject do
32
+ described_class.execute(
33
+ query,
34
+ variables: variables,
35
+ context: { scope: current_scope },
36
+ )
37
+ end
38
+
39
+ describe 'for an admin user' do
40
+ let(:current_scope) { :admin }
41
+ it 'returns Identity Provider for id' do
42
+ expect(subject['errors']).to be_nil
43
+ expect(subject.dig('data', 'identityProvider', 'id')).to eq(id)
44
+ end
45
+ end
46
+
47
+ describe 'for an email scoped user' do
48
+ let(:current_scope) { domain }
49
+
50
+ it 'returns Enterprise Account for domain' do
51
+ expect(subject['errors']).to be_nil
52
+ expect(subject.dig('data', 'identityProvider', 'domain')).to eq(domain)
53
+ end
54
+ end
55
+
56
+ describe 'for the wrong email scoped user' do
57
+ let(:current_scope) { 'bar.com' }
58
+
59
+ it 'returns Enterprise Account for domain' do
60
+ expect(subject['errors']).to_not be_empty
61
+ expect(subject.dig('data', 'enterpriseAccount')).to be_nil
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Osso::GraphQL::Schema do
6
+ describe 'OAuthClients' do
7
+ let(:query) do
8
+ <<~GRAPHQL
9
+ query OAuthClients {
10
+ oauthClients {
11
+ name
12
+ id
13
+ }
14
+ }
15
+ GRAPHQL
16
+ end
17
+
18
+ before do
19
+ create_list(:oauth_client, 2)
20
+ end
21
+
22
+ subject do
23
+ described_class.execute(
24
+ query,
25
+ variables: nil,
26
+ context: { scope: current_scope },
27
+ )
28
+ end
29
+
30
+ describe 'for an admin user' do
31
+ let(:current_scope) { :admin }
32
+
33
+ it 'returns Oauth Clients' do
34
+ expect(subject['errors']).to be_nil
35
+ expect(subject.dig('data', 'oauthClients').count).to eq(2)
36
+ end
37
+ end
38
+
39
+ describe 'for an email scoped user' do
40
+ let(:current_scope) { 'foo.com' }
41
+
42
+ it 'returns Oauth Clients' do
43
+ expect(subject['errors']).to be_nil
44
+ expect(subject.dig('data', 'oauthClients')).to be_nil
45
+ end
46
+ end
47
+ end
48
+ end
@@ -2,18 +2,18 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- describe Osso::Models::AzureSamlProvider do
6
- subject { create(:azure_saml_provider) }
5
+ # describe Osso::Models::AzureSamlProvider do
6
+ # subject { create(:azure_identity_provider) }
7
7
 
8
- describe '#saml_options' do
9
- it 'returns the required args' do
10
- expect(subject.saml_options).
11
- to match(
12
- domain: subject.domain,
13
- idp_cert: subject.idp_cert,
14
- idp_sso_target_url: subject.idp_sso_target_url,
15
- issuer: "id:#{subject.id}",
16
- )
17
- end
18
- end
19
- end
8
+ # describe '#saml_options' do
9
+ # it 'returns the required args' do
10
+ # expect(subject.saml_options).
11
+ # to match(
12
+ # domain: subject.domain,
13
+ # idp_cert: subject.idp_cert,
14
+ # idp_sso_target_url: subject.idp_sso_target_url,
15
+ # issuer: "id:#{subject.id}",
16
+ # )
17
+ # end
18
+ # end
19
+ # end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Osso::Models::IdentityProvider do
6
+ subject { create(:okta_identity_provider) }
7
+
8
+ describe '#assertion_consumer_service_url' do
9
+ it 'returns the expected URI' do
10
+ ENV['BASE_URL'] = 'https://example.com'
11
+
12
+ expect(subject.assertion_consumer_service_url).to eq(
13
+ "https://example.com/auth/saml/#{subject.id}/callback",
14
+ )
15
+ end
16
+ end
17
+ end
@@ -2,19 +2,19 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- describe Osso::Models::OktaSamlProvider do
6
- subject { create(:okta_saml_provider) }
5
+ # describe Osso::Models::OktaSamlProvider do
6
+ # subject { create(:okta_identity_provider) }
7
7
 
8
- describe '#saml_options' do
9
- it 'returns the required args' do
10
- expect(subject.saml_options).
11
- to match(
12
- domain: subject.domain,
13
- idp_cert: subject.idp_cert,
14
- idp_sso_target_url: subject.idp_sso_target_url,
15
- issuer: subject.id,
16
- name_identifier_format: described_class::NAME_FORMAT,
17
- )
18
- end
19
- end
20
- end
8
+ # describe '#saml_options' do
9
+ # it 'returns the required args' do
10
+ # expect(subject.saml_options).
11
+ # to match(
12
+ # domain: subject.domain,
13
+ # idp_cert: subject.idp_cert,
14
+ # idp_sso_target_url: subject.idp_sso_target_url,
15
+ # issuer: subject.id,
16
+ # name_identifier_format: described_class::NAME_FORMAT,
17
+ # )
18
+ # end
19
+ # end
20
+ # end
@@ -9,6 +9,7 @@ describe Osso::Admin do
9
9
  before do
10
10
  ENV['JWT_URL'] = jwt_url
11
11
  ENV['JWT_HMAC_SECRET'] = jwt_hmac_secret
12
+ described_class.set(:views, spec_views)
12
13
  end
13
14
 
14
15
  describe 'get /admin' do
@@ -24,7 +25,9 @@ describe Osso::Admin do
24
25
  get('/admin', token: SecureRandom.hex(32))
25
26
 
26
27
  expect(last_response).to be_redirect
28
+
27
29
  follow_redirect!
30
+
28
31
  expect(last_request.url).to eq(jwt_url)
29
32
  end
30
33
 
@@ -6,7 +6,7 @@ describe Osso::Auth do
6
6
  describe 'post /auth/saml/:uuid/callback' do
7
7
  describe 'for an Okta SAML provider' do
8
8
  let(:enterprise) { create(:enterprise_with_okta) }
9
- let(:okta_provider) { enterprise.saml_providers.first }
9
+ let(:okta_provider) { enterprise.identity_providers.first }
10
10
 
11
11
  describe "on the user's first authentication" do
12
12
  it 'creates a user' do
@@ -18,7 +18,7 @@ describe Osso::Auth do
18
18
  nil,
19
19
  {
20
20
  'omniauth.auth' => OmniAuth.config.mock_auth[:saml],
21
- 'saml_provider' => okta_provider,
21
+ 'identity_provider' => okta_provider,
22
22
  },
23
23
  )
24
24
  end.to change { Osso::Models::User.count }.by(1)
@@ -33,7 +33,7 @@ describe Osso::Auth do
33
33
  nil,
34
34
  {
35
35
  'omniauth.auth' => OmniAuth.config.mock_auth[:saml],
36
- 'saml_provider' => okta_provider,
36
+ 'identity_provider' => okta_provider,
37
37
  },
38
38
  )
39
39
  end.to change { Osso::Models::AuthorizationCode.count }.by(1)
@@ -42,8 +42,8 @@ describe Osso::Auth do
42
42
 
43
43
  describe 'on subsequent authentications' do
44
44
  let!(:enterprise) { create(:enterprise_with_okta) }
45
- let!(:okta_provider) { enterprise.saml_providers.first }
46
- let(:user) { create(:user, saml_provider_id: okta_provider.id) }
45
+ let!(:okta_provider) { enterprise.identity_providers.first }
46
+ let(:user) { create(:user, identity_provider_id: okta_provider.id) }
47
47
 
48
48
  before do
49
49
  mock_saml_omniauth(email: user.email, id: user.idp_id)
@@ -56,7 +56,7 @@ describe Osso::Auth do
56
56
  nil,
57
57
  {
58
58
  'omniauth.auth' => OmniAuth.config.mock_auth[:saml],
59
- 'saml_provider' => okta_provider,
59
+ 'identity_provider' => okta_provider,
60
60
  },
61
61
  )
62
62
  end.to_not(change { Osso::Models::User.count })
@@ -78,7 +78,7 @@ describe Osso::Auth do
78
78
  nil,
79
79
  {
80
80
  'omniauth.auth' => OmniAuth.config.mock_auth[:saml],
81
- 'saml_provider' => azure_provider,
81
+ 'identity_provider' => azure_provider,
82
82
  },
83
83
  )
84
84
  end.to change { Osso::Models::User.count }.by(1)
@@ -88,7 +88,7 @@ describe Osso::Auth do
88
88
  describe 'on subsequent authentications' do
89
89
  let!(:enterprise) { create(:enterprise_with_azure) }
90
90
  let!(:azure_provider) { enterprise.provider }
91
- let(:user) { create(:user, saml_provider_id: azure_provider.id) }
91
+ let(:user) { create(:user, identity_provider_id: azure_provider.id) }
92
92
 
93
93
  before do
94
94
  mock_saml_omniauth(email: user.email, id: user.idp_id)
@@ -101,7 +101,7 @@ describe Osso::Auth do
101
101
  nil,
102
102
  {
103
103
  'omniauth.auth' => OmniAuth.config.mock_auth[:saml],
104
- 'saml_provider' => azure_provider,
104
+ 'identity_provider' => azure_provider,
105
105
  },
106
106
  )
107
107
  end.to_not(change { Osso::Models::User.count })
@@ -35,7 +35,7 @@ describe Osso::Oauth do
35
35
  redirect_uri: client.redirect_uri_values.sample,
36
36
  )
37
37
 
38
- provider_id = enterprise.saml_providers.first.id
38
+ provider_id = enterprise.identity_providers.first.id
39
39
 
40
40
  expect(last_response).to be_redirect
41
41
  follow_redirect!
@@ -11,18 +11,17 @@ require 'webmock/rspec'
11
11
 
12
12
  ENV['RACK_ENV'] = 'test'
13
13
  ENV['SESSION_SECRET'] = 'supersecret'
14
+ ENV['BASE_URL'] = 'https://example.com'
14
15
 
15
16
  require File.expand_path '../lib/osso.rb', __dir__
16
17
 
18
+ require File.expand_path 'support/spec_app', __dir__
19
+
17
20
  module RSpecMixin
18
21
  include Rack::Test::Methods
19
22
 
20
23
  def app
21
- Rack::URLMap.new(
22
- '/admin' => Osso::Admin,
23
- '/auth' => Osso::Auth,
24
- '/oauth' => Osso::Oauth,
25
- )
24
+ SpecApp
26
25
  end
27
26
 
28
27
  def mock_saml_omniauth(email: 'user@enterprise.com', id: SecureRandom.uuid)
@@ -40,6 +39,10 @@ module RSpecMixin
40
39
  def last_json_response
41
40
  JSON.parse(last_response.body, symbolize_names: true)
42
41
  end
42
+
43
+ def spec_views
44
+ File.dirname(__FILE__) + '/support/views'
45
+ end
43
46
  end
44
47
 
45
48
  RSpec.configure do |config|
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ class SpecApp < Sinatra::Base
4
+ include Osso::RouteMap
5
+
6
+ get '/health' do
7
+ 'ok'
8
+ end
9
+ end
@@ -0,0 +1,5 @@
1
+ <%#
2
+ NB: this file exists so that the admin routes have something to render in spec.
3
+ In real-world usage, those routes render an index.html file that includes the
4
+ React app.
5
+ %>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: osso
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3.3
4
+ version: 0.0.3.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Bauch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-09 00:00:00.000000000 Z
11
+ date: 2020-07-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 6.0.3.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: graphql
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: jwt
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -218,32 +232,58 @@ files:
218
232
  - bin/console
219
233
  - bin/setup
220
234
  - config/database.yml
235
+ - db/schema.rb
221
236
  - lib/.DS_Store
222
237
  - lib/osso.rb
223
238
  - lib/osso/Rakefile
224
239
  - lib/osso/db/migrate/20190909230109_enable_uuid.rb
225
240
  - lib/osso/db/migrate/20200328135750_create_users.rb
226
241
  - lib/osso/db/migrate/20200328143303_create_oauth_tables.rb
227
- - lib/osso/db/migrate/20200411144528_create_saml_providers.rb
242
+ - lib/osso/db/migrate/20200328143305_create_identity_providers.rb
228
243
  - lib/osso/db/migrate/20200411184535_add_provider_id_to_users.rb
229
244
  - lib/osso/db/migrate/20200411192645_create_enterprise_accounts.rb
230
245
  - lib/osso/db/migrate/20200413132407_add_oauth_clients.rb
231
246
  - lib/osso/db/migrate/20200413142511_create_authorization_codes.rb
232
- - lib/osso/db/migrate/20200413153029_add_oauth_client_reference_to_saml_providers.rb
233
247
  - lib/osso/db/migrate/20200413163451_create_access_tokens.rb
234
- - lib/osso/db/migrate/20200501203026_drop_null_constraints_from_saml_provider.rb
235
- - lib/osso/db/migrate/20200501204047_drop_acs_url.rb
236
248
  - lib/osso/db/migrate/20200502120616_create_redirect_uris_and_drop_from_oauth_clients.rb
237
- - lib/osso/db/migrate/20200502135008_add_oauth_client_id_to_enterprise_account.rb
238
- - lib/osso/db/migrate/20200601131227_drop_null_constraint_from_saml_providers_provider.rb
239
- - lib/osso/db/schema.rb
249
+ - lib/osso/db/migrate/20200502135008_add_oauth_client_id_to_enterprise_accounts_and_identity_providers.rb
250
+ - lib/osso/db/migrate/20200714223226_add_identity_provider_service_enum.rb
251
+ - lib/osso/db/migrate/20200715154211_rename_idp_fields_on_identity_provider_to_sso.rb
252
+ - lib/osso/db/migrate/20200715205801_add_name_to_enterprise_account.rb
253
+ - lib/osso/db/migrate/20200722230116_add_identity_provider_status_enum_and_use_on_identity_providers.rb
254
+ - lib/osso/graphql/.DS_Store
255
+ - lib/osso/graphql/mutation.rb
256
+ - lib/osso/graphql/mutations.rb
257
+ - lib/osso/graphql/mutations/base_mutation.rb
258
+ - lib/osso/graphql/mutations/configure_identity_provider.rb
259
+ - lib/osso/graphql/mutations/create_enterprise_account.rb
260
+ - lib/osso/graphql/mutations/create_identity_provider.rb
261
+ - lib/osso/graphql/mutations/set_identity_provider.rb
262
+ - lib/osso/graphql/query.rb
263
+ - lib/osso/graphql/resolvers.rb
264
+ - lib/osso/graphql/resolvers/enterprise_account.rb
265
+ - lib/osso/graphql/resolvers/enterprise_accounts.rb
266
+ - lib/osso/graphql/resolvers/oauth_clients.rb
267
+ - lib/osso/graphql/schema.rb
268
+ - lib/osso/graphql/types.rb
269
+ - lib/osso/graphql/types/base_enum.rb
270
+ - lib/osso/graphql/types/base_input_object.rb
271
+ - lib/osso/graphql/types/base_object.rb
272
+ - lib/osso/graphql/types/enterprise_account.rb
273
+ - lib/osso/graphql/types/identity_provider.rb
274
+ - lib/osso/graphql/types/identity_provider_service.rb
275
+ - lib/osso/graphql/types/identity_provider_status.rb
276
+ - lib/osso/graphql/types/oauth_client.rb
277
+ - lib/osso/graphql/types/user.rb
240
278
  - lib/osso/helpers/auth.rb
241
279
  - lib/osso/helpers/helpers.rb
242
280
  - lib/osso/lib/app_config.rb
243
281
  - lib/osso/lib/oauth2_token.rb
282
+ - lib/osso/lib/route_map.rb
244
283
  - lib/osso/models/access_token.rb
245
284
  - lib/osso/models/authorization_code.rb
246
285
  - lib/osso/models/enterprise_account.rb
286
+ - lib/osso/models/identity_provider.rb
247
287
  - lib/osso/models/models.rb
248
288
  - lib/osso/models/oauth_client.rb
249
289
  - lib/osso/models/redirect_uri.rb
@@ -263,19 +303,27 @@ files:
263
303
  - osso-rb.gemspec
264
304
  - spec/factories/authorization_code.rb
265
305
  - spec/factories/enterprise_account.rb
306
+ - spec/factories/identity_providers.rb
266
307
  - spec/factories/oauth_client.rb
267
308
  - spec/factories/redirect_uri.rb
268
- - spec/factories/saml_providers.rb
269
309
  - spec/factories/user.rb
310
+ - spec/graphql/mutations/configure_identity_provider_spec.rb
311
+ - spec/graphql/mutations/create_enterprise_account_spec.rb
312
+ - spec/graphql/mutations/create_identity_provider_spec.rb
313
+ - spec/graphql/query/enterprise_account_spec.rb
314
+ - spec/graphql/query/enterprise_accounts_spec.rb
315
+ - spec/graphql/query/identity_provider_spec.rb
316
+ - spec/graphql/query/oauth_clients_account_spec.rb
270
317
  - spec/models/azure_saml_provider_spec.rb
318
+ - spec/models/identity_provider_spec.rb
271
319
  - spec/models/okta_saml_provider_spec.rb
272
- - spec/models/saml_provider_spec.rb
273
320
  - spec/routes/admin_spec.rb
274
321
  - spec/routes/app_spec.rb
275
322
  - spec/routes/auth_spec.rb
276
323
  - spec/routes/oauth_spec.rb
277
324
  - spec/spec_helper.rb
278
- - spec/support/vcr_cassettes/okta_saml_callback.yml
325
+ - spec/support/spec_app.rb
326
+ - spec/support/views/admin.erb
279
327
  homepage: https://github.com/enterprise-oss/osso-rb
280
328
  licenses:
281
329
  - MIT