osso 0.0.8 → 0.0.10
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 +1 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +11 -11
- data/Rakefile +1 -0
- data/bin/console +3 -0
- data/lib/osso/routes/admin.rb +34 -6
- data/lib/osso/version.rb +1 -1
- data/osso-rb.gemspec +1 -1
- data/spec/routes/admin_spec.rb +27 -9
- metadata +12 -7
- data/spec/routes/app_spec.rb +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c1ba94c32e61517dd429dd54e06ac24924ddb1245fff2c4dd1795d9e227972b4
|
4
|
+
data.tar.gz: bd239880638f0d8f344050c5fa92e110dc519c06e75321c28b3fa92e1860a2be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: abb0e59b77e44230d47850e9e43d1a131a76694b6482706ce4d245f6832c823eeffebea468f75a4007e80ecf151271b5e9908e748e191b652c24c32984ff5c74
|
7
|
+
data.tar.gz: 12e250de2709aad8a60da53237a1489034d21f0caa05b084edabab93395266dd77060b0ad68a8d38956a9e8177315d3a35724a746aab04c438a3678194eeff4c
|
data/.buildkite/pipeline.yml
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
osso (0.0.
|
4
|
+
osso (0.0.9)
|
5
5
|
activesupport (>= 6.0.3.2)
|
6
6
|
bcrypt (~> 3.1.13)
|
7
7
|
graphql
|
@@ -13,7 +13,7 @@ PATH
|
|
13
13
|
rack-contrib
|
14
14
|
rack-oauth2
|
15
15
|
rake
|
16
|
-
rodauth (
|
16
|
+
rodauth (>= 2.6, < 2.8)
|
17
17
|
sequel (>= 5.37, < 5.40)
|
18
18
|
sequel-activerecord_connection (>= 0.3, < 2.0)
|
19
19
|
sinatra
|
@@ -66,7 +66,7 @@ GEM
|
|
66
66
|
i18n (1.8.5)
|
67
67
|
concurrent-ruby (~> 1.0)
|
68
68
|
json (2.3.1)
|
69
|
-
json-jwt (1.
|
69
|
+
json-jwt (1.12.0)
|
70
70
|
activesupport (>= 4.2)
|
71
71
|
aes_key_wrap
|
72
72
|
bindata
|
@@ -91,7 +91,7 @@ GEM
|
|
91
91
|
omniauth (~> 1.3, >= 1.3.2)
|
92
92
|
ruby-saml (~> 1.9)
|
93
93
|
parallel (1.20.1)
|
94
|
-
parser (
|
94
|
+
parser (3.0.0.0)
|
95
95
|
ast (~> 2.4.1)
|
96
96
|
pg (1.2.3)
|
97
97
|
pry (0.13.1)
|
@@ -112,12 +112,12 @@ GEM
|
|
112
112
|
rack-test (1.1.0)
|
113
113
|
rack (>= 1.0, < 3)
|
114
114
|
rainbow (3.0.0)
|
115
|
-
rake (13.0.
|
116
|
-
regexp_parser (2.0.
|
115
|
+
rake (13.0.3)
|
116
|
+
regexp_parser (2.0.2)
|
117
117
|
rexml (3.2.4)
|
118
|
-
roda (3.
|
118
|
+
roda (3.39.0)
|
119
119
|
rack
|
120
|
-
rodauth (2.
|
120
|
+
rodauth (2.7.0)
|
121
121
|
roda (>= 2.6.0)
|
122
122
|
sequel (>= 4)
|
123
123
|
rspec (3.10.0)
|
@@ -133,7 +133,7 @@ GEM
|
|
133
133
|
diff-lcs (>= 1.2.0, < 2.0)
|
134
134
|
rspec-support (~> 3.10.0)
|
135
135
|
rspec-support (3.10.0)
|
136
|
-
rubocop (1.
|
136
|
+
rubocop (1.7.0)
|
137
137
|
parallel (~> 1.10)
|
138
138
|
parser (>= 2.7.1.5)
|
139
139
|
rainbow (>= 2.2.2, < 4.0)
|
@@ -176,7 +176,7 @@ GEM
|
|
176
176
|
tzinfo (2.0.3)
|
177
177
|
concurrent-ruby (~> 1.0)
|
178
178
|
unicode-display_width (1.7.0)
|
179
|
-
webmock (3.
|
179
|
+
webmock (3.11.0)
|
180
180
|
addressable (>= 2.3.6)
|
181
181
|
crack (>= 0.3.2)
|
182
182
|
hashdiff (>= 0.4.0, < 2.0.0)
|
@@ -198,7 +198,7 @@ DEPENDENCIES
|
|
198
198
|
rspec (~> 3.10)
|
199
199
|
rubocop
|
200
200
|
simplecov (= 0.17)
|
201
|
-
webmock (~> 3.
|
201
|
+
webmock (~> 3.11)
|
202
202
|
|
203
203
|
BUNDLED WITH
|
204
204
|
2.1.4
|
data/Rakefile
CHANGED
data/bin/console
CHANGED
data/lib/osso/routes/admin.rb
CHANGED
@@ -9,17 +9,42 @@ module Osso
|
|
9
9
|
class Admin < Roda
|
10
10
|
DB = Sequel.postgres(extensions: :activerecord_connection)
|
11
11
|
use Rack::Session::Cookie, secret: ENV.fetch('SESSION_SECRET')
|
12
|
-
|
12
|
+
|
13
|
+
plugin :json
|
13
14
|
plugin :middleware
|
14
15
|
plugin :render, engine: 'erb', views: ENV['RODAUTH_VIEWS'] || DEFAULT_VIEWS_DIR
|
15
16
|
plugin :route_csrf
|
16
17
|
|
17
18
|
plugin :rodauth do
|
18
|
-
enable :login, :verify_account
|
19
|
+
enable :login, :verify_account, :jwt
|
20
|
+
|
21
|
+
base_uri = URI.parse(ENV.fetch('BASE_URL'))
|
22
|
+
base_url base_uri
|
23
|
+
domain base_uri.host
|
24
|
+
|
25
|
+
jwt_secret ENV.fetch('SESSION_SECRET')
|
26
|
+
only_json? false
|
27
|
+
|
28
|
+
email_from { "Osso <no-reply@#{domain}>" }
|
19
29
|
verify_account_set_password? true
|
20
|
-
already_logged_in { redirect login_redirect }
|
21
30
|
use_database_authentication_functions? false
|
22
31
|
|
32
|
+
verify_account_view do
|
33
|
+
render :admin
|
34
|
+
end
|
35
|
+
|
36
|
+
login_view do
|
37
|
+
render :admin
|
38
|
+
end
|
39
|
+
|
40
|
+
verify_account_email_subject do
|
41
|
+
DB[:accounts].one? ? 'Your Osso instance is ready' : 'You\'ve been invited to start using Osso'
|
42
|
+
end
|
43
|
+
|
44
|
+
verify_account_email_body do
|
45
|
+
DB[:accounts].one? ? render('verify-first-account-email') : render('verify-account-email')
|
46
|
+
end
|
47
|
+
|
23
48
|
before_create_account_route do
|
24
49
|
request.halt unless DB[:accounts].empty?
|
25
50
|
end
|
@@ -31,13 +56,16 @@ module Osso
|
|
31
56
|
r.rodauth
|
32
57
|
|
33
58
|
def current_account
|
34
|
-
Osso::Models::Account.find(
|
35
|
-
|
59
|
+
Osso::Models::Account.find(
|
60
|
+
rodauth.
|
61
|
+
session.
|
62
|
+
to_hash.
|
63
|
+
stringify_keys['account_id']
|
64
|
+
).context.
|
36
65
|
merge({ rodauth: rodauth })
|
37
66
|
end
|
38
67
|
|
39
68
|
r.on 'admin' do
|
40
|
-
rodauth.require_authentication
|
41
69
|
erb :admin, layout: false
|
42
70
|
end
|
43
71
|
|
data/lib/osso/version.rb
CHANGED
data/osso-rb.gemspec
CHANGED
@@ -26,7 +26,7 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.add_runtime_dependency 'rack-contrib'
|
27
27
|
spec.add_runtime_dependency 'rack-oauth2'
|
28
28
|
spec.add_runtime_dependency 'rake'
|
29
|
-
spec.add_runtime_dependency 'rodauth', '
|
29
|
+
spec.add_runtime_dependency 'rodauth', '>= 2.6', '< 2.8'
|
30
30
|
spec.add_runtime_dependency 'sequel', '>= 5.37', '< 5.40'
|
31
31
|
spec.add_runtime_dependency 'sequel-activerecord_connection', '>= 0.3', '< 2.0'
|
32
32
|
spec.add_runtime_dependency 'sinatra'
|
data/spec/routes/admin_spec.rb
CHANGED
@@ -4,23 +4,41 @@ require 'spec_helper'
|
|
4
4
|
|
5
5
|
describe Osso::Admin do
|
6
6
|
describe 'get /admin' do
|
7
|
-
it '
|
7
|
+
it 'renders the admin layout' do
|
8
8
|
get('/admin')
|
9
9
|
|
10
|
-
expect(last_response).to
|
11
|
-
follow_redirect!
|
12
|
-
expect(last_request.url).to match('/login')
|
10
|
+
expect(last_response).to be_ok
|
13
11
|
end
|
12
|
+
end
|
14
13
|
|
15
|
-
|
16
|
-
|
17
|
-
account = create(:verified_account, password: password)
|
14
|
+
describe 'post /graphql' do
|
15
|
+
let(:account) { create(:account) }
|
18
16
|
|
19
|
-
|
17
|
+
it 'runs a GraphQL query with a valid jwt' do
|
18
|
+
allow_any_instance_of(described_class.rodauth).to receive(:logged_in?).and_return(true)
|
19
|
+
allow(Osso::Models::Account).to receive(:find).and_return(account)
|
20
|
+
allow(Osso::GraphQL::Schema).to receive(:execute).and_return({graphql: true})
|
20
21
|
|
21
|
-
|
22
|
+
header 'Content-Type', 'application/json'
|
23
|
+
post("/graphql")
|
22
24
|
|
23
25
|
expect(last_response).to be_ok
|
26
|
+
expect(last_json_response).to eq({graphql: true})
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'returns a 400 for an invalid jwt' do
|
30
|
+
header 'Content-Type', 'application/json'
|
31
|
+
header 'Authorization', 'Bearer bad-token'
|
32
|
+
post("/graphql")
|
33
|
+
|
34
|
+
expect(last_response.status).to eq 400
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'returns a 401 without a jwt' do
|
38
|
+
header 'Content-Type', 'application/json'
|
39
|
+
post("/graphql")
|
40
|
+
|
41
|
+
expect(last_response.status).to eq 401
|
24
42
|
end
|
25
43
|
end
|
26
44
|
end
|
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.
|
4
|
+
version: 0.0.10
|
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-12-
|
11
|
+
date: 2020-12-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -168,16 +168,22 @@ dependencies:
|
|
168
168
|
name: rodauth
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
|
-
- - "
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '2.6'
|
174
|
+
- - "<"
|
172
175
|
- !ruby/object:Gem::Version
|
173
|
-
version: 2.
|
176
|
+
version: '2.8'
|
174
177
|
type: :runtime
|
175
178
|
prerelease: false
|
176
179
|
version_requirements: !ruby/object:Gem::Requirement
|
177
180
|
requirements:
|
178
|
-
- - "
|
181
|
+
- - ">="
|
182
|
+
- !ruby/object:Gem::Version
|
183
|
+
version: '2.6'
|
184
|
+
- - "<"
|
179
185
|
- !ruby/object:Gem::Version
|
180
|
-
version: 2.
|
186
|
+
version: '2.8'
|
181
187
|
- !ruby/object:Gem::Dependency
|
182
188
|
name: sequel
|
183
189
|
requirement: !ruby/object:Gem::Requirement
|
@@ -455,7 +461,6 @@ files:
|
|
455
461
|
- spec/models/enterprise_account_spec.rb
|
456
462
|
- spec/models/identity_provider_spec.rb
|
457
463
|
- spec/routes/admin_spec.rb
|
458
|
-
- spec/routes/app_spec.rb
|
459
464
|
- spec/routes/auth_spec.rb
|
460
465
|
- spec/routes/oauth_spec.rb
|
461
466
|
- spec/spec_helper.rb
|