trusona 2.3.0 → 2.5.3
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 +5 -5
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/.gitignore +3 -0
- data/.rubocop.yml +13 -0
- data/.ruby-version +1 -1
- data/.travis.yml +19 -15
- data/README.md +4 -3
- data/integrations/buster.rb +15 -0
- data/integrations/spec_helper.rb +3 -0
- data/integrations/trusonafication_spec.rb +18 -3
- data/lib/trusona.rb +3 -1
- data/lib/trusona/api/signed_request.rb +4 -1
- data/lib/trusona/api/verified_response.rb +6 -1
- data/lib/trusona/identity_document.rb +0 -6
- data/lib/trusona/mappers/base_mapper.rb +5 -0
- data/lib/trusona/mappers/paired_tru_code_mapper.rb +1 -0
- data/lib/trusona/resources/base_resource.rb +1 -1
- data/lib/trusona/resources/device_user_binding.rb +1 -0
- data/lib/trusona/resources/device_user_binding_activation.rb +2 -1
- data/lib/trusona/resources/identity_document.rb +4 -4
- data/lib/trusona/resources/paired_tru_code.rb +1 -0
- data/lib/trusona/resources/tru_code.rb +2 -1
- data/lib/trusona/resources/trusonafication.rb +29 -20
- data/lib/trusona/resources/user_account.rb +6 -2
- data/lib/trusona/resources/user_identifier.rb +3 -1
- data/lib/trusona/resources/validators.rb +1 -0
- data/lib/trusona/services/base_service.rb +9 -2
- data/lib/trusona/services/device_user_bindings_service.rb +3 -3
- data/lib/trusona/services/identity_documents_service.rb +3 -3
- data/lib/trusona/services/paired_tru_code_service.rb +1 -0
- data/lib/trusona/trusonafication.rb +32 -3
- data/lib/trusona/version.rb +1 -1
- data/lib/trusona/workers/device_finder.rb +1 -0
- data/lib/trusona/workers/identity_document_finder.rb +1 -0
- data/lib/trusona/workers/paired_tru_code_finder.rb +1 -0
- data/lib/trusona/workers/tru_code_finder.rb +1 -0
- data/lib/trusona/workers/trusonafication_canceler.rb +27 -0
- data/lib/trusona/workers/trusonafication_creator.rb +2 -1
- data/lib/trusona/workers/trusonafication_finder.rb +1 -1
- data/lib/trusona/workers/user_account_finder.rb +1 -3
- data/lib/trusona/workers/user_deactivator.rb +1 -3
- data/lib/trusona/workers/user_identifier_finder.rb +1 -0
- data/trusona.cnf +14 -0
- data/trusona.gemspec +9 -7
- metadata +85 -57
- metadata.gz.sig +0 -0
- data/certs/trusona.pem +0 -34
- data/trusona.key.pem.enc +0 -0
@@ -38,12 +38,12 @@ module Trusona
|
|
38
38
|
@emails = parse_emails(params_with_symbol_keys[:emails])
|
39
39
|
@max_level = parse_max_level(params_with_symbol_keys[:metadata])
|
40
40
|
|
41
|
-
@params
|
41
|
+
@params = params_with_symbol_keys
|
42
42
|
end
|
43
43
|
# rubocop:enable Metrics/MethodLength
|
44
44
|
# rubocop:enable Metrics/AbcSize
|
45
45
|
|
46
|
-
def to_json
|
46
|
+
def to_json(*_args)
|
47
47
|
JSON(to_h)
|
48
48
|
end
|
49
49
|
|
@@ -52,20 +52,24 @@ module Trusona
|
|
52
52
|
def determine_status(status)
|
53
53
|
return Status::INACTIVE if status == 'inactive'
|
54
54
|
return Status::ACTIVE if status == 'active'
|
55
|
+
|
55
56
|
Status::UNKNOWN
|
56
57
|
end
|
57
58
|
|
58
59
|
def parse_emails(emails)
|
59
60
|
return [] if emails.nil? || emails.empty?
|
61
|
+
|
60
62
|
emails.map { |e| UserAccountEmail.new(e) }
|
61
63
|
end
|
62
64
|
|
63
65
|
def parse_max_level(metadata)
|
64
66
|
return Level::ENTRY unless metadata
|
67
|
+
|
65
68
|
level = metadata['max_level'] || metadata[:max_level]
|
66
69
|
|
67
70
|
return Level::ESSENTIAL if level == 'essential'
|
68
71
|
return Level::EXECUTIVE if level == 'executive'
|
72
|
+
|
69
73
|
Level::ENTRY
|
70
74
|
end
|
71
75
|
|
@@ -19,7 +19,7 @@ module Trusona
|
|
19
19
|
@params
|
20
20
|
end
|
21
21
|
|
22
|
-
def to_json
|
22
|
+
def to_json(*_args)
|
23
23
|
JSON(to_h)
|
24
24
|
end
|
25
25
|
|
@@ -36,12 +36,14 @@ module Trusona
|
|
36
36
|
def attributes_present
|
37
37
|
return false unless @params.key?(:identifier)
|
38
38
|
return false unless @params.key?(:trusona_id)
|
39
|
+
|
39
40
|
true
|
40
41
|
end
|
41
42
|
|
42
43
|
def attributes_filled
|
43
44
|
return false if @params.fetch(:identifier).empty?
|
44
45
|
return false if @params.fetch(:trusona_id).empty?
|
46
|
+
|
45
47
|
true
|
46
48
|
end
|
47
49
|
end
|
@@ -21,21 +21,25 @@ module Trusona
|
|
21
21
|
|
22
22
|
def get(resource)
|
23
23
|
raise Trusona::InvalidResourceError unless resource.id
|
24
|
+
|
24
25
|
handle(@client.get(member_path(resource)), resource)
|
25
26
|
end
|
26
27
|
|
27
28
|
def create(resource)
|
28
29
|
raise Trusona::InvalidResourceError unless resource.valid?
|
30
|
+
|
29
31
|
handle(@client.post(collection_path, resource.to_json), resource)
|
30
32
|
end
|
31
33
|
|
32
34
|
def update(resource)
|
33
35
|
raise Trusona::InvalidResourceError unless resource.id
|
36
|
+
|
34
37
|
handle(@client.patch(member_path(resource), resource.to_json), resource)
|
35
38
|
end
|
36
39
|
|
37
40
|
def delete(resource)
|
38
41
|
raise Trusona::InvalidResourceError unless resource.id
|
42
|
+
|
39
43
|
handle(@client.delete(member_path(resource)), resource)
|
40
44
|
end
|
41
45
|
|
@@ -53,12 +57,13 @@ module Trusona
|
|
53
57
|
raise Trusona::SigningError unless response.verified?
|
54
58
|
end
|
55
59
|
|
56
|
-
# rubocop:disable MethodLength
|
60
|
+
# rubocop:disable Metrics/MethodLength
|
57
61
|
# rubocop:disable Metrics/CyclomaticComplexity
|
58
62
|
def handle(response, resource = {})
|
59
63
|
@response = response
|
60
64
|
|
61
65
|
raise if resource.nil?
|
66
|
+
|
62
67
|
case response.code
|
63
68
|
when 200..299
|
64
69
|
success(response, resource)
|
@@ -78,7 +83,7 @@ module Trusona
|
|
78
83
|
raise Trusona::RequestError, readable_error
|
79
84
|
end
|
80
85
|
end
|
81
|
-
# rubocop:enable MethodLength
|
86
|
+
# rubocop:enable Metrics/MethodLength
|
82
87
|
# rubocop:enable Metrics/CyclomaticComplexity
|
83
88
|
|
84
89
|
def success(response, resource)
|
@@ -113,10 +118,12 @@ module Trusona
|
|
113
118
|
def readable_error
|
114
119
|
default = '[UNKNOWN] Error - An unknown error has occurred.'
|
115
120
|
return default unless @response
|
121
|
+
|
116
122
|
body = @response.to_h
|
117
123
|
msg = []
|
118
124
|
msg << "[#{body['error']}] #{body['message']} - #{body['description']}"
|
119
125
|
return msg.join("\n") unless body['field_errors']
|
126
|
+
|
120
127
|
body['field_errors'].each do |field|
|
121
128
|
msg << "\t #{field.join(' => ')}"
|
122
129
|
end
|
@@ -6,9 +6,9 @@ module Trusona
|
|
6
6
|
## Device User Bindings Service
|
7
7
|
class DeviceUserBindingsService < BaseService
|
8
8
|
def initialize(
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
client: Trusona::Api::HTTPClient.new(Trusona.config.api_host),
|
10
|
+
mapper: Trusona::Mappers::DeviceUserBindingMapper.new
|
11
|
+
)
|
12
12
|
@client = client
|
13
13
|
@mapper = mapper
|
14
14
|
@resource_path = '/api/v2/user_devices'
|
@@ -6,9 +6,9 @@ module Trusona
|
|
6
6
|
## Identity Documents Service
|
7
7
|
class IdentityDocumentsService < BaseService
|
8
8
|
def initialize(
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
client: Trusona::Api::HTTPClient.new(Trusona.config.api_host),
|
10
|
+
mapper: Trusona::Mappers::IdentityDocumentMapper.new
|
11
|
+
)
|
12
12
|
@client = client
|
13
13
|
@mapper = mapper
|
14
14
|
@resource_path = '/api/v2/identity_documents'
|
@@ -28,6 +28,29 @@ module Trusona
|
|
28
28
|
Trusona::Workers::TrusonaficationFinder.new.find(trusonafication_id)
|
29
29
|
end
|
30
30
|
|
31
|
+
##
|
32
|
+
# Cancels existing IN_PROGRESS Trusonafications using their ID. Once
|
33
|
+
# canceled the trusonafication can no longer be acted upon.
|
34
|
+
#
|
35
|
+
# @param trusonafication_id [String] the ID of an existing Trusonafication
|
36
|
+
# @raise [Trusona::InvalidRecordIdentifier] if the +trusonafication_id+ is
|
37
|
+
# empty or nil.
|
38
|
+
# @raise [Trusona::ResourceNotFoundError] if the resource does not exist
|
39
|
+
# in the Trusona API
|
40
|
+
# @raise [Trusona::UnprocessableEntityError] if the resource could not be
|
41
|
+
# cancel because it was not IN_PROGRESS
|
42
|
+
#
|
43
|
+
# @example
|
44
|
+
# Trusona::Trusonafication.cancel('756c1034-2159-4cf9-bd48-662a60a7afff')
|
45
|
+
#
|
46
|
+
def self.cancel(trusonafication_id)
|
47
|
+
if trusonafication_id.nil? || trusonafication_id.strip.empty?
|
48
|
+
raise Trusona::InvalidRecordIdentifier, 'Trusonafication ID is missing'
|
49
|
+
end
|
50
|
+
|
51
|
+
Trusona::Workers::TrusonaficationCanceler.new.cancel(trusonafication_id)
|
52
|
+
end
|
53
|
+
|
31
54
|
##
|
32
55
|
# Creates a Trusonafication using the supplied options
|
33
56
|
#
|
@@ -55,12 +78,18 @@ module Trusona
|
|
55
78
|
# Accept or Reject this Trusonafication?
|
56
79
|
# @option params [String] :expires_at ('90 seconds') The ISO-8601 UTC
|
57
80
|
# timestamp of the Trusonafication's expiration.
|
58
|
-
# @param timeout [Int] (30) The max amount of time, in seconds, to wait
|
59
|
-
# for a response from the Trusona API when polling for a Trusonafication
|
60
|
-
# result
|
61
81
|
# @option params [Hash] :custom_fields Optional data to be associated with
|
62
82
|
# this Trusonafication and can be used to constomize any UX elements. Total
|
63
83
|
# size of data is limited to 1MB.
|
84
|
+
# @option params [String] :callback_url A HTTPS URL to POST to call when the
|
85
|
+
# trusonafication has been completed (accepted, rejected, or expired).
|
86
|
+
#
|
87
|
+
# NOTE: The URL should include a randomized segment so it cannot be guessed
|
88
|
+
# and abused by third-parties e.g. https://your.domain.com/completed_authentications/f8abe61d-4e51-493f-97b1-464c157624f2.
|
89
|
+
#
|
90
|
+
# @param timeout [Int] (30) The max amount of time, in seconds, to wait
|
91
|
+
# for a response from the Trusona API when polling for a Trusonafication
|
92
|
+
# result
|
64
93
|
# @yield [Trusona::Resources::Trusonafication] Yields the completed
|
65
94
|
# Trusonafication to the block
|
66
95
|
# @raise [Trusona::InvalidResourceError] if the resource is not +valid?+
|
data/lib/trusona/version.rb
CHANGED
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Trusona
|
4
|
+
module Workers
|
5
|
+
#
|
6
|
+
## Cancel a Trusonafication
|
7
|
+
class TrusonaficationCanceler
|
8
|
+
def initialize(service: nil)
|
9
|
+
@service = service || Trusona::Services::TrusonaficationService.new
|
10
|
+
end
|
11
|
+
|
12
|
+
def cancel(trusonafication_id)
|
13
|
+
if trusonafication_id.nil? || trusonafication_id.strip.empty?
|
14
|
+
raise(
|
15
|
+
Trusona::InvalidResourceError,
|
16
|
+
'Trusonafication Id cannot be empty or nil'
|
17
|
+
)
|
18
|
+
end
|
19
|
+
|
20
|
+
resource = Trusona::Resources::Trusonafication.new(
|
21
|
+
id: trusonafication_id
|
22
|
+
)
|
23
|
+
@service.delete(resource)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -14,6 +14,7 @@ module Trusona
|
|
14
14
|
def create(params: {}, timeout: nil, &block)
|
15
15
|
raise ArgumentError, 'Missing or empty params hash' if
|
16
16
|
params.nil? || params.empty?
|
17
|
+
|
17
18
|
resource = Trusona::Resources::Trusonafication.new(params)
|
18
19
|
trusonafication = @service.create(resource)
|
19
20
|
return trusonafication unless block_given?
|
@@ -43,4 +44,4 @@ module Trusona
|
|
43
44
|
# rubocop:enable Metrics/MethodLength
|
44
45
|
end
|
45
46
|
end
|
46
|
-
end
|
47
|
+
end
|
@@ -18,9 +18,7 @@ module Trusona
|
|
18
18
|
|
19
19
|
resource = build_resource(opts)
|
20
20
|
|
21
|
-
if opts[:trusona_id] || opts['trusona_id']
|
22
|
-
return @user_accounts.get(resource)
|
23
|
-
end
|
21
|
+
return @user_accounts.get(resource) if opts[:trusona_id] || opts['trusona_id']
|
24
22
|
|
25
23
|
@lookups.create(resource) if opts[:email] || opts['email']
|
26
24
|
end
|
@@ -10,9 +10,7 @@ module Trusona
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def deactivate(user_identifier)
|
13
|
-
if user_identifier.nil? || user_identifier.empty?
|
14
|
-
raise(ArgumentError, "The user's identifier is required")
|
15
|
-
end
|
13
|
+
raise(ArgumentError, "The user's identifier is required") if user_identifier.nil? || user_identifier.empty?
|
16
14
|
|
17
15
|
user = Trusona::Resources::User.new(user_identifier: user_identifier)
|
18
16
|
@service.delete(user)
|
data/trusona.cnf
ADDED
data/trusona.gemspec
CHANGED
@@ -14,8 +14,8 @@ Gem::Specification.new do |spec|
|
|
14
14
|
spec.description = 'Easily interact with the Trusona REST API'
|
15
15
|
spec.homepage = 'https://trusona.com'
|
16
16
|
spec.license = 'Apache-2.0'
|
17
|
-
spec.cert_chain = ['
|
18
|
-
spec.signing_key
|
17
|
+
spec.cert_chain = ['trusona.pub.pem']
|
18
|
+
spec.signing_key = 'trusona.key.pem' if $0 =~ /gem\z/
|
19
19
|
|
20
20
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
21
21
|
f.match(%r{^(test|spec|features)/})
|
@@ -28,17 +28,19 @@ Gem::Specification.new do |spec|
|
|
28
28
|
|
29
29
|
spec.metadata['yard.run'] = 'yri' # use "yard" to build full HTML docs.
|
30
30
|
|
31
|
+
spec.add_development_dependency 'activesupport', '~> 6.0'
|
31
32
|
spec.add_development_dependency 'bump', '~> 0.5'
|
32
|
-
spec.add_development_dependency 'bundler'
|
33
33
|
spec.add_development_dependency 'dotenv', '~> 2.2'
|
34
34
|
spec.add_development_dependency 'guard', '~> 2.14'
|
35
35
|
spec.add_development_dependency 'guard-rspec', '~> 4.7'
|
36
36
|
spec.add_development_dependency 'guard-rubocop', '~> 1.3'
|
37
37
|
spec.add_development_dependency 'guard-yard', '~> 2.2'
|
38
|
-
spec.add_development_dependency 'rake', '~>
|
38
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
39
39
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
40
|
-
spec.add_development_dependency '
|
41
|
-
spec.add_development_dependency '
|
40
|
+
spec.add_development_dependency 'rspec-wait', '~> 0.0'
|
41
|
+
spec.add_development_dependency 'rubocop', '~> 0.89.1'
|
42
|
+
spec.add_development_dependency 'rubocop-performance', '~> 1.7.1'
|
43
|
+
spec.add_development_dependency 'simplecov', '0.19.0'
|
42
44
|
spec.add_development_dependency 'yard', '~> 0.9'
|
43
|
-
spec.add_development_dependency 'webmock'
|
45
|
+
spec.add_development_dependency 'webmock', '~> 3.5'
|
44
46
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trusona
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3
|
4
|
+
version: 2.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Trusona
|
@@ -10,40 +10,39 @@ bindir: exe
|
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
/
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
eNCk84I=
|
13
|
+
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
|
45
44
|
-----END CERTIFICATE-----
|
46
|
-
date:
|
45
|
+
date: 2020-09-01 00:00:00.000000000 Z
|
47
46
|
dependencies:
|
48
47
|
- !ruby/object:Gem::Dependency
|
49
48
|
name: httparty
|
@@ -60,33 +59,33 @@ dependencies:
|
|
60
59
|
- !ruby/object:Gem::Version
|
61
60
|
version: '0.15'
|
62
61
|
- !ruby/object:Gem::Dependency
|
63
|
-
name:
|
62
|
+
name: activesupport
|
64
63
|
requirement: !ruby/object:Gem::Requirement
|
65
64
|
requirements:
|
66
65
|
- - "~>"
|
67
66
|
- !ruby/object:Gem::Version
|
68
|
-
version: '0
|
67
|
+
version: '6.0'
|
69
68
|
type: :development
|
70
69
|
prerelease: false
|
71
70
|
version_requirements: !ruby/object:Gem::Requirement
|
72
71
|
requirements:
|
73
72
|
- - "~>"
|
74
73
|
- !ruby/object:Gem::Version
|
75
|
-
version: '0
|
74
|
+
version: '6.0'
|
76
75
|
- !ruby/object:Gem::Dependency
|
77
|
-
name:
|
76
|
+
name: bump
|
78
77
|
requirement: !ruby/object:Gem::Requirement
|
79
78
|
requirements:
|
80
|
-
- - "
|
79
|
+
- - "~>"
|
81
80
|
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
81
|
+
version: '0.5'
|
83
82
|
type: :development
|
84
83
|
prerelease: false
|
85
84
|
version_requirements: !ruby/object:Gem::Requirement
|
86
85
|
requirements:
|
87
|
-
- - "
|
86
|
+
- - "~>"
|
88
87
|
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
88
|
+
version: '0.5'
|
90
89
|
- !ruby/object:Gem::Dependency
|
91
90
|
name: dotenv
|
92
91
|
requirement: !ruby/object:Gem::Requirement
|
@@ -163,14 +162,14 @@ dependencies:
|
|
163
162
|
requirements:
|
164
163
|
- - "~>"
|
165
164
|
- !ruby/object:Gem::Version
|
166
|
-
version: '
|
165
|
+
version: '13.0'
|
167
166
|
type: :development
|
168
167
|
prerelease: false
|
169
168
|
version_requirements: !ruby/object:Gem::Requirement
|
170
169
|
requirements:
|
171
170
|
- - "~>"
|
172
171
|
- !ruby/object:Gem::Version
|
173
|
-
version: '
|
172
|
+
version: '13.0'
|
174
173
|
- !ruby/object:Gem::Dependency
|
175
174
|
name: rspec
|
176
175
|
requirement: !ruby/object:Gem::Requirement
|
@@ -185,34 +184,62 @@ dependencies:
|
|
185
184
|
- - "~>"
|
186
185
|
- !ruby/object:Gem::Version
|
187
186
|
version: '3.0'
|
187
|
+
- !ruby/object:Gem::Dependency
|
188
|
+
name: rspec-wait
|
189
|
+
requirement: !ruby/object:Gem::Requirement
|
190
|
+
requirements:
|
191
|
+
- - "~>"
|
192
|
+
- !ruby/object:Gem::Version
|
193
|
+
version: '0.0'
|
194
|
+
type: :development
|
195
|
+
prerelease: false
|
196
|
+
version_requirements: !ruby/object:Gem::Requirement
|
197
|
+
requirements:
|
198
|
+
- - "~>"
|
199
|
+
- !ruby/object:Gem::Version
|
200
|
+
version: '0.0'
|
188
201
|
- !ruby/object:Gem::Dependency
|
189
202
|
name: rubocop
|
190
203
|
requirement: !ruby/object:Gem::Requirement
|
191
204
|
requirements:
|
192
205
|
- - "~>"
|
193
206
|
- !ruby/object:Gem::Version
|
194
|
-
version:
|
207
|
+
version: 0.89.1
|
195
208
|
type: :development
|
196
209
|
prerelease: false
|
197
210
|
version_requirements: !ruby/object:Gem::Requirement
|
198
211
|
requirements:
|
199
212
|
- - "~>"
|
200
213
|
- !ruby/object:Gem::Version
|
201
|
-
version:
|
214
|
+
version: 0.89.1
|
202
215
|
- !ruby/object:Gem::Dependency
|
203
|
-
name:
|
216
|
+
name: rubocop-performance
|
204
217
|
requirement: !ruby/object:Gem::Requirement
|
205
218
|
requirements:
|
206
219
|
- - "~>"
|
207
220
|
- !ruby/object:Gem::Version
|
208
|
-
version:
|
221
|
+
version: 1.7.1
|
209
222
|
type: :development
|
210
223
|
prerelease: false
|
211
224
|
version_requirements: !ruby/object:Gem::Requirement
|
212
225
|
requirements:
|
213
226
|
- - "~>"
|
214
227
|
- !ruby/object:Gem::Version
|
215
|
-
version:
|
228
|
+
version: 1.7.1
|
229
|
+
- !ruby/object:Gem::Dependency
|
230
|
+
name: simplecov
|
231
|
+
requirement: !ruby/object:Gem::Requirement
|
232
|
+
requirements:
|
233
|
+
- - '='
|
234
|
+
- !ruby/object:Gem::Version
|
235
|
+
version: 0.19.0
|
236
|
+
type: :development
|
237
|
+
prerelease: false
|
238
|
+
version_requirements: !ruby/object:Gem::Requirement
|
239
|
+
requirements:
|
240
|
+
- - '='
|
241
|
+
- !ruby/object:Gem::Version
|
242
|
+
version: 0.19.0
|
216
243
|
- !ruby/object:Gem::Dependency
|
217
244
|
name: yard
|
218
245
|
requirement: !ruby/object:Gem::Requirement
|
@@ -231,16 +258,16 @@ dependencies:
|
|
231
258
|
name: webmock
|
232
259
|
requirement: !ruby/object:Gem::Requirement
|
233
260
|
requirements:
|
234
|
-
- - "
|
261
|
+
- - "~>"
|
235
262
|
- !ruby/object:Gem::Version
|
236
|
-
version: '
|
263
|
+
version: '3.5'
|
237
264
|
type: :development
|
238
265
|
prerelease: false
|
239
266
|
version_requirements: !ruby/object:Gem::Requirement
|
240
267
|
requirements:
|
241
|
-
- - "
|
268
|
+
- - "~>"
|
242
269
|
- !ruby/object:Gem::Version
|
243
|
-
version: '
|
270
|
+
version: '3.5'
|
244
271
|
description: Easily interact with the Trusona REST API
|
245
272
|
email:
|
246
273
|
- engineering@trusona.com
|
@@ -251,6 +278,7 @@ files:
|
|
251
278
|
- ".env.example"
|
252
279
|
- ".gitignore"
|
253
280
|
- ".rspec"
|
281
|
+
- ".rubocop.yml"
|
254
282
|
- ".ruby-version"
|
255
283
|
- ".travis.yml"
|
256
284
|
- DEVELOP.md
|
@@ -261,8 +289,8 @@ files:
|
|
261
289
|
- Rakefile
|
262
290
|
- bin/console
|
263
291
|
- bin/setup
|
264
|
-
- certs/trusona.pem
|
265
292
|
- checksum/trusona-0.16.0.gem.sha512
|
293
|
+
- integrations/buster.rb
|
266
294
|
- integrations/device_user_binding_integration_spec.rb
|
267
295
|
- integrations/identity_documents_spec.rb
|
268
296
|
- integrations/paired_tru_code_spec.rb
|
@@ -331,14 +359,15 @@ files:
|
|
331
359
|
- lib/trusona/workers/paired_tru_code_finder.rb
|
332
360
|
- lib/trusona/workers/tru_code_creator.rb
|
333
361
|
- lib/trusona/workers/tru_code_finder.rb
|
362
|
+
- lib/trusona/workers/trusonafication_canceler.rb
|
334
363
|
- lib/trusona/workers/trusonafication_creator.rb
|
335
364
|
- lib/trusona/workers/trusonafication_finder.rb
|
336
365
|
- lib/trusona/workers/user_account_finder.rb
|
337
366
|
- lib/trusona/workers/user_deactivator.rb
|
338
367
|
- lib/trusona/workers/user_identifier_creator.rb
|
339
368
|
- lib/trusona/workers/user_identifier_finder.rb
|
369
|
+
- trusona.cnf
|
340
370
|
- trusona.gemspec
|
341
|
-
- trusona.key.pem.enc
|
342
371
|
homepage: https://trusona.com
|
343
372
|
licenses:
|
344
373
|
- Apache-2.0
|
@@ -359,8 +388,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
359
388
|
- !ruby/object:Gem::Version
|
360
389
|
version: '0'
|
361
390
|
requirements: []
|
362
|
-
|
363
|
-
rubygems_version: 2.6.14
|
391
|
+
rubygems_version: 3.0.8
|
364
392
|
signing_key:
|
365
393
|
specification_version: 4
|
366
394
|
summary: Trusona REST API wrapper
|