osso 0.0.3.7 → 0.0.3.12
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.
- checksums.yaml +4 -4
- data/.buildkite/pipeline.yml +5 -3
- data/Gemfile.lock +5 -1
- data/bin/annotate +1 -0
- data/db/schema.rb +11 -54
- data/lib/osso/db/migrate/20200714223226_add_identity_provider_service_enum.rb +1 -1
- data/lib/osso/db/migrate/20200722230116_add_identity_provider_status_enum_and_use_on_identity_providers.rb +15 -0
- data/lib/osso/db/migrate/20200723153750_add_missing_timestamps.rb +35 -0
- data/lib/osso/db/migrate/20200723162228_drop_unneeded_tables.rb +9 -0
- data/lib/osso/graphql/mutation.rb +7 -1
- data/lib/osso/graphql/mutations.rb +7 -1
- data/lib/osso/graphql/mutations/add_redirect_uris_to_oauth_client.rb +39 -0
- data/lib/osso/graphql/mutations/configure_identity_provider.rb +1 -1
- data/lib/osso/graphql/mutations/create_oauth_client.rb +30 -0
- data/lib/osso/graphql/mutations/delete_enterprise_account.rb +34 -0
- data/lib/osso/graphql/mutations/delete_oauth_client.rb +30 -0
- data/lib/osso/graphql/mutations/delete_redirect_uri.rb +38 -0
- data/lib/osso/graphql/mutations/mark_redirect_uri_primary.rb +34 -0
- data/lib/osso/graphql/mutations/regenerate_oauth_credentials.rb +31 -0
- data/lib/osso/graphql/query.rb +15 -2
- data/lib/osso/graphql/resolvers/enterprise_accounts.rb +12 -4
- data/lib/osso/graphql/resolvers/oauth_clients.rb +1 -1
- data/lib/osso/graphql/types.rb +3 -0
- data/lib/osso/graphql/types/base_connection.rb +15 -0
- data/lib/osso/graphql/types/base_object.rb +4 -0
- data/lib/osso/graphql/types/identity_provider.rb +1 -5
- data/lib/osso/graphql/types/identity_provider_status.rb +14 -0
- data/lib/osso/graphql/types/oauth_client.rb +14 -1
- data/lib/osso/graphql/types/redirect_uri.rb +23 -0
- data/lib/osso/helpers/auth.rb +13 -12
- data/lib/osso/models/access_token.rb +18 -0
- data/lib/osso/models/authorization_code.rb +20 -0
- data/lib/osso/models/enterprise_account.rb +20 -0
- data/lib/osso/models/identity_provider.rb +29 -0
- data/lib/osso/models/models.rb +2 -0
- data/lib/osso/models/oauth_client.rb +20 -10
- data/lib/osso/models/redirect_uri.rb +17 -0
- data/lib/osso/models/user.rb +22 -0
- data/lib/osso/routes/admin.rb +6 -0
- data/lib/osso/routes/auth.rb +1 -1
- data/lib/osso/version.rb +1 -1
- data/osso-rb.gemspec +1 -0
- data/spec/factories/identity_providers.rb +22 -0
- data/spec/graphql/mutations/configure_identity_provider_spec.rb +3 -3
- data/spec/graphql/mutations/create_oauth_client_spec.rb +55 -0
- data/spec/graphql/mutations/delete_enterprise_account_spec.rb +63 -0
- data/spec/graphql/mutations/delete_oauth_client_spec.rb +51 -0
- data/spec/graphql/query/enterprise_account_spec.rb +1 -1
- data/spec/graphql/query/enterprise_accounts_spec.rb +32 -18
- data/spec/graphql/query/identity_provider_spec.rb +2 -2
- data/spec/graphql/query/{oauth_clients_account_spec.rb → oauth_clients_spec.rb} +2 -0
- data/spec/routes/auth_spec.rb +25 -0
- metadata +35 -8
- data/lib/osso/db/migrate/20200328143303_create_oauth_tables.rb +0 -57
- data/lib/osso/graphql/mutations/set_identity_provider.rb +0 -27
- data/lib/osso/models/saml_provider.rb +0 -49
- data/lib/osso/models/saml_providers/azure_saml_provider.rb +0 -22
- data/lib/osso/models/saml_providers/okta_saml_provider.rb +0 -23
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.
|
4
|
+
version: 0.0.3.12
|
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-
|
11
|
+
date: 2020-08-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -178,6 +178,20 @@ dependencies:
|
|
178
178
|
- - ">="
|
179
179
|
- !ruby/object:Gem::Version
|
180
180
|
version: '0'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: annotate
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - "~>"
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '3.1'
|
188
|
+
type: :development
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - "~>"
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '3.1'
|
181
195
|
- !ruby/object:Gem::Dependency
|
182
196
|
name: bundler
|
183
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -210,6 +224,7 @@ description: This gem includes the main functionality for Osso apps,
|
|
210
224
|
email:
|
211
225
|
- sbauch@gmail.com
|
212
226
|
executables:
|
227
|
+
- annotate
|
213
228
|
- console
|
214
229
|
- setup
|
215
230
|
extensions: []
|
@@ -229,6 +244,7 @@ files:
|
|
229
244
|
- LICENSE
|
230
245
|
- README.md
|
231
246
|
- Rakefile
|
247
|
+
- bin/annotate
|
232
248
|
- bin/console
|
233
249
|
- bin/setup
|
234
250
|
- config/database.yml
|
@@ -238,7 +254,6 @@ files:
|
|
238
254
|
- lib/osso/Rakefile
|
239
255
|
- lib/osso/db/migrate/20190909230109_enable_uuid.rb
|
240
256
|
- lib/osso/db/migrate/20200328135750_create_users.rb
|
241
|
-
- lib/osso/db/migrate/20200328143303_create_oauth_tables.rb
|
242
257
|
- lib/osso/db/migrate/20200328143305_create_identity_providers.rb
|
243
258
|
- lib/osso/db/migrate/20200411184535_add_provider_id_to_users.rb
|
244
259
|
- lib/osso/db/migrate/20200411192645_create_enterprise_accounts.rb
|
@@ -250,14 +265,23 @@ files:
|
|
250
265
|
- lib/osso/db/migrate/20200714223226_add_identity_provider_service_enum.rb
|
251
266
|
- lib/osso/db/migrate/20200715154211_rename_idp_fields_on_identity_provider_to_sso.rb
|
252
267
|
- lib/osso/db/migrate/20200715205801_add_name_to_enterprise_account.rb
|
268
|
+
- lib/osso/db/migrate/20200722230116_add_identity_provider_status_enum_and_use_on_identity_providers.rb
|
269
|
+
- lib/osso/db/migrate/20200723153750_add_missing_timestamps.rb
|
270
|
+
- lib/osso/db/migrate/20200723162228_drop_unneeded_tables.rb
|
253
271
|
- lib/osso/graphql/.DS_Store
|
254
272
|
- lib/osso/graphql/mutation.rb
|
255
273
|
- lib/osso/graphql/mutations.rb
|
274
|
+
- lib/osso/graphql/mutations/add_redirect_uris_to_oauth_client.rb
|
256
275
|
- lib/osso/graphql/mutations/base_mutation.rb
|
257
276
|
- lib/osso/graphql/mutations/configure_identity_provider.rb
|
258
277
|
- lib/osso/graphql/mutations/create_enterprise_account.rb
|
259
278
|
- lib/osso/graphql/mutations/create_identity_provider.rb
|
260
|
-
- lib/osso/graphql/mutations/
|
279
|
+
- lib/osso/graphql/mutations/create_oauth_client.rb
|
280
|
+
- lib/osso/graphql/mutations/delete_enterprise_account.rb
|
281
|
+
- lib/osso/graphql/mutations/delete_oauth_client.rb
|
282
|
+
- lib/osso/graphql/mutations/delete_redirect_uri.rb
|
283
|
+
- lib/osso/graphql/mutations/mark_redirect_uri_primary.rb
|
284
|
+
- lib/osso/graphql/mutations/regenerate_oauth_credentials.rb
|
261
285
|
- lib/osso/graphql/query.rb
|
262
286
|
- lib/osso/graphql/resolvers.rb
|
263
287
|
- lib/osso/graphql/resolvers/enterprise_account.rb
|
@@ -265,13 +289,16 @@ files:
|
|
265
289
|
- lib/osso/graphql/resolvers/oauth_clients.rb
|
266
290
|
- lib/osso/graphql/schema.rb
|
267
291
|
- lib/osso/graphql/types.rb
|
292
|
+
- lib/osso/graphql/types/base_connection.rb
|
268
293
|
- lib/osso/graphql/types/base_enum.rb
|
269
294
|
- lib/osso/graphql/types/base_input_object.rb
|
270
295
|
- lib/osso/graphql/types/base_object.rb
|
271
296
|
- lib/osso/graphql/types/enterprise_account.rb
|
272
297
|
- lib/osso/graphql/types/identity_provider.rb
|
273
298
|
- lib/osso/graphql/types/identity_provider_service.rb
|
299
|
+
- lib/osso/graphql/types/identity_provider_status.rb
|
274
300
|
- lib/osso/graphql/types/oauth_client.rb
|
301
|
+
- lib/osso/graphql/types/redirect_uri.rb
|
275
302
|
- lib/osso/graphql/types/user.rb
|
276
303
|
- lib/osso/helpers/auth.rb
|
277
304
|
- lib/osso/helpers/helpers.rb
|
@@ -285,9 +312,6 @@ files:
|
|
285
312
|
- lib/osso/models/models.rb
|
286
313
|
- lib/osso/models/oauth_client.rb
|
287
314
|
- lib/osso/models/redirect_uri.rb
|
288
|
-
- lib/osso/models/saml_provider.rb
|
289
|
-
- lib/osso/models/saml_providers/azure_saml_provider.rb
|
290
|
-
- lib/osso/models/saml_providers/okta_saml_provider.rb
|
291
315
|
- lib/osso/models/user.rb
|
292
316
|
- lib/osso/rake.rb
|
293
317
|
- lib/osso/routes/admin.rb
|
@@ -308,10 +332,13 @@ files:
|
|
308
332
|
- spec/graphql/mutations/configure_identity_provider_spec.rb
|
309
333
|
- spec/graphql/mutations/create_enterprise_account_spec.rb
|
310
334
|
- spec/graphql/mutations/create_identity_provider_spec.rb
|
335
|
+
- spec/graphql/mutations/create_oauth_client_spec.rb
|
336
|
+
- spec/graphql/mutations/delete_enterprise_account_spec.rb
|
337
|
+
- spec/graphql/mutations/delete_oauth_client_spec.rb
|
311
338
|
- spec/graphql/query/enterprise_account_spec.rb
|
312
339
|
- spec/graphql/query/enterprise_accounts_spec.rb
|
313
340
|
- spec/graphql/query/identity_provider_spec.rb
|
314
|
-
- spec/graphql/query/
|
341
|
+
- spec/graphql/query/oauth_clients_spec.rb
|
315
342
|
- spec/models/azure_saml_provider_spec.rb
|
316
343
|
- spec/models/identity_provider_spec.rb
|
317
344
|
- spec/models/okta_saml_provider_spec.rb
|
@@ -1,57 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
class CreateOauthTables < ActiveRecord::Migration[6.0]
|
4
|
-
def change
|
5
|
-
create_table :oauth_applications, id: :uuid do |t|
|
6
|
-
t.string :name, null: false
|
7
|
-
t.string :secret, null: false
|
8
|
-
t.text :redirect_uri, null: false
|
9
|
-
t.string :scopes, null: false, default: ''
|
10
|
-
t.boolean :confidential, null: false, default: true
|
11
|
-
t.timestamps null: false
|
12
|
-
end
|
13
|
-
|
14
|
-
create_table :oauth_access_grants, id: :uuid do |t|
|
15
|
-
t.uuid :resource_owner_id, null: false
|
16
|
-
t.references :application, type: :uuid, null: false
|
17
|
-
t.string :token, null: false
|
18
|
-
t.integer :expires_in, null: false
|
19
|
-
t.text :redirect_uri, null: false
|
20
|
-
t.datetime :created_at, null: false
|
21
|
-
t.datetime :revoked_at
|
22
|
-
t.string :scopes, null: false, default: ''
|
23
|
-
end
|
24
|
-
|
25
|
-
add_index :oauth_access_grants, :token, unique: true
|
26
|
-
add_foreign_key(
|
27
|
-
:oauth_access_grants,
|
28
|
-
:oauth_applications,
|
29
|
-
column: :application_id
|
30
|
-
)
|
31
|
-
|
32
|
-
create_table :oauth_access_tokens, id: :uuid do |t|
|
33
|
-
t.uuid :resource_owner_id
|
34
|
-
t.references :application, type: :uuid
|
35
|
-
t.string :token, null: false
|
36
|
-
|
37
|
-
t.string :refresh_token
|
38
|
-
t.integer :expires_in
|
39
|
-
t.datetime :revoked_at
|
40
|
-
t.datetime :created_at, null: false
|
41
|
-
t.string :scopes
|
42
|
-
|
43
|
-
t.string :previous_refresh_token, null: false, default: ''
|
44
|
-
end
|
45
|
-
|
46
|
-
add_index :oauth_access_tokens, :token, unique: true
|
47
|
-
add_index :oauth_access_tokens, :refresh_token, unique: true
|
48
|
-
add_foreign_key(
|
49
|
-
:oauth_access_tokens,
|
50
|
-
:oauth_applications,
|
51
|
-
column: :application_id
|
52
|
-
)
|
53
|
-
|
54
|
-
add_foreign_key :oauth_access_grants, :users, column: :resource_owner_id
|
55
|
-
add_foreign_key :oauth_access_tokens, :users, column: :resource_owner_id
|
56
|
-
end
|
57
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Osso
|
4
|
-
module GraphQL
|
5
|
-
module Mutations
|
6
|
-
class SetSamlProvider < BaseMutation
|
7
|
-
null false
|
8
|
-
|
9
|
-
argument :provider, Types::IdentityProviderService, required: true
|
10
|
-
argument :id, ID, required: true
|
11
|
-
|
12
|
-
field :identity_provider, Types::IdentityProvider, null: false
|
13
|
-
field :errors, [String], null: false
|
14
|
-
|
15
|
-
def resolve(provider:, id:)
|
16
|
-
identity_provider = Osso::Models::IdentityProvider.find(id)
|
17
|
-
identity_provider.service = provider
|
18
|
-
identity_provider.save!
|
19
|
-
{
|
20
|
-
identity_provider: identity_provider,
|
21
|
-
errors: [],
|
22
|
-
}
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,49 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Osso
|
4
|
-
module Models
|
5
|
-
# Base class for SAML Providers
|
6
|
-
class IdentityProvider < ActiveRecord::Base
|
7
|
-
NAME_FORMAT = 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress'
|
8
|
-
belongs_to :enterprise_account
|
9
|
-
belongs_to :oauth_client
|
10
|
-
has_many :users
|
11
|
-
|
12
|
-
before_create :create_enterprise_account
|
13
|
-
|
14
|
-
# def name
|
15
|
-
# raise(
|
16
|
-
# NoMethodError,
|
17
|
-
# '#name must be defined on each provider specific subclass',
|
18
|
-
# )
|
19
|
-
# end
|
20
|
-
|
21
|
-
# def saml_options
|
22
|
-
# raise(
|
23
|
-
# NoMethodError,
|
24
|
-
# '#saml_options must be defined on each provider specific subclass',
|
25
|
-
# )
|
26
|
-
# end
|
27
|
-
|
28
|
-
def assertion_consumer_service_url
|
29
|
-
[
|
30
|
-
ENV.fetch('BASE_URL'),
|
31
|
-
'auth',
|
32
|
-
'saml',
|
33
|
-
id,
|
34
|
-
'callback',
|
35
|
-
].join('/')
|
36
|
-
end
|
37
|
-
|
38
|
-
alias acs_url assertion_consumer_service_url
|
39
|
-
|
40
|
-
def create_enterprise_account
|
41
|
-
return if enterprise_account_id
|
42
|
-
|
43
|
-
self.enterprise_account = Models::EnterpriseAccount.create(
|
44
|
-
domain: domain,
|
45
|
-
)
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Osso
|
4
|
-
module Models
|
5
|
-
# Subclass for Azure / ADFS IDP instances
|
6
|
-
class AzureSamlProvider < Models::IdentityProvider
|
7
|
-
def name
|
8
|
-
'Azure'
|
9
|
-
end
|
10
|
-
|
11
|
-
def saml_options
|
12
|
-
attributes.slice(
|
13
|
-
'domain',
|
14
|
-
'idp_cert',
|
15
|
-
'idp_sso_target_url',
|
16
|
-
).merge(
|
17
|
-
issuer: "id:#{id}",
|
18
|
-
).symbolize_keys
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Osso
|
4
|
-
module Models
|
5
|
-
# Subclass for Okta IDP instances
|
6
|
-
class OktaSamlProvider < Models::IdentityProvider
|
7
|
-
def name
|
8
|
-
'Okta'
|
9
|
-
end
|
10
|
-
|
11
|
-
def saml_options
|
12
|
-
attributes.slice(
|
13
|
-
'domain',
|
14
|
-
'idp_cert',
|
15
|
-
'idp_sso_target_url',
|
16
|
-
).merge(
|
17
|
-
issuer: id,
|
18
|
-
name_identifier_format: NAME_FORMAT,
|
19
|
-
).symbolize_keys
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|