trusona 1.0.1 → 2.0.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: a247b40861b6bc4e0be194544e166c56962bc5454cd419368c6dc41aa4de0841
4
- data.tar.gz: c1ad1124fe9b1a7c7d6e943d5e7b8a5273a77459b3cc2f6dab57385ffeb340e9
2
+ SHA1:
3
+ metadata.gz: 0d7dcf565b866754150b98eff9c086093ef77bb1
4
+ data.tar.gz: 32c9eb74488c07fe534f3c1fc6060bce95c19a19
5
5
  SHA512:
6
- metadata.gz: 318e23bfdd1d81cd85ccfd0baedbcf0f96082ee0e86b73893a354149f85f76c35cf25c511b30518943e19a94303cf196699f6ba33f2a8dd69f2ddbb8d7b9d638
7
- data.tar.gz: 5b1457a19c03f7b566fc71c36684f19cf537cf2ef6a49c457191441250bbc9f2a2d9db6a1b4a7e3e3b794b0848b6313e8db434aa230c970172c3945b53b4a1ea
6
+ metadata.gz: 511921672c8a23e8b1d67a58911bfba6329ad9a687e8319eb29a83e380774aedb8a8b4fe00025db150c0412b1fc10dda680511a39d8910966cecb86b02fb14ab
7
+ data.tar.gz: 3be6d6bee99c64e6b0c2dd2c7a05afca8b0309d27713e4510ad468a0cfb4c7b8faeee71efd83837109529dd9ce004de0dc57e8b20937b0c8c9296087e5d767cf
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -7,7 +7,6 @@ rvm:
7
7
  - 2.5.1
8
8
  before_install:
9
9
  - openssl aes-256-cbc -K $encrypted_b73e363d372e_key -iv $encrypted_b73e363d372e_iv -in trusona.key.pem.enc -out trusona.key.pem -d
10
- - gem install bundler -v 1.15.1
11
10
  before_script:
12
11
  - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
13
12
  - chmod +x ./cc-test-reporter
@@ -18,12 +17,12 @@ script:
18
17
  - gem build trusona.gemspec
19
18
  after_script:
20
19
  - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
21
- before_deploy:
22
- - gem install bundler -v 1.15.1
23
20
  deploy:
21
+ provider: rubygems
22
+ api_key: $RUBYGEMS_API_KEY
23
+ gem: trusona
24
+ gemspec: trusona.gemspec
24
25
  skip_cleanup: true
25
- provider: script
26
- script: "./release-gem"
27
26
  on:
28
27
  tags: true
29
- rvm: '2.5.1'
28
+ rvm: '2.4.3'
@@ -0,0 +1,74 @@
1
+ ## Development
2
+
3
+ ### Patterns
4
+
5
+ The Trusona gem is built with a few principles in mind:
6
+
7
+ 1. Provide a simple, idomatic, rails-like public interface.
8
+ 1. Reduce the scope of the internals exposed to the end-user of the gem.
9
+
10
+ #### Workers
11
+
12
+ Behind the public facing API are a variety of Workers that complete simple, single-focused tasks. For example, when creating a Trusonafication, the responsibility of creation is offloaded to the `Trusona::Workers::TrusonaficationCreator`. This pattern is used for nearly all aspects of the SDK internals.
13
+
14
+ #### Services
15
+
16
+ Communicating with the Trusona API is done via a set of `Trusona::Services` which are responsible for making HMAC'd requests to the Trusona API and verifying the HMAC'd responses from the Trusona API.
17
+
18
+ #### Resources
19
+
20
+ Resources are designed to be simple representations of entities which are represented by the Trusona API.
21
+
22
+ #### Mappers
23
+
24
+ Mappers help translate JSON representations of Trusona API entities to Resource objects.
25
+
26
+ ### Rubocop
27
+
28
+ `Rubocop` is used to ensure adherence to an known style guide. It can be run
29
+ from the command line. Rubocop standards are currently _not_ enforced during
30
+ continuous integration builds.
31
+
32
+ `bundle exec rubocop lib`
33
+
34
+ ### Testing
35
+
36
+ `bundle exec rake`
37
+
38
+ #### Integration Tests
39
+
40
+ Included in the `integrations` directory are a set of ever growing integration tests which rely on the Trusona config variables in your environment (try `.env`.)
41
+
42
+ ##### One time setup
43
+
44
+ ```bash
45
+ cp .env.example .env
46
+ ```
47
+
48
+ Edit .env:
49
+
50
+ ```txt
51
+ TRUSONA_TOKEN=<A Server RP token that can send trusonafications to your email>
52
+ TRUSONA_SECRET=<The Server RP secret>
53
+ TRUSONA_API_HOST=https://api.staging.trusona.net
54
+ INTEGRATION_TEST_EMAIL=<your UAT email>
55
+ ```
56
+
57
+ ##### Running the tests
58
+
59
+ `bundle exec rspec integrations/`
60
+
61
+ #### Code Coverage
62
+
63
+ Code coverage is calculated used `SimpleCov` and can be found in the `coverage`
64
+ directory after running the tests
65
+
66
+ ### Deployment
67
+
68
+ To deploy a new version of the gem to Artifactory, use `bump` to bump the
69
+ version by either `major`, `minor` or `patch` and then push the tags to
70
+ github. Travis CI will build and deploy any tagged commits.
71
+
72
+ 1. Ensure a clean working directory
73
+ 1. `bundle exec bump patch --tag`
74
+ 1. `git push; and git push origin --tags`
data/README.md CHANGED
@@ -38,8 +38,6 @@ Configuring the Trusona gem is easy. We recommend using environment variables an
38
38
 
39
39
  ```ruby
40
40
  Trusona.config do |c|
41
- c.tru_codes_host = ENV['TRU_CODES_HOST']
42
- c.api_host = ENV['TRUSONA_API_HOST']
43
41
  c.secret = ENV['TRUSONA_SECRET']
44
42
  c.token = ENV['TRUSONA_TOKEN']
45
43
  end
@@ -221,77 +219,15 @@ You may wish to disable a user from having the ability to authenticate from any
221
219
 
222
220
  The deactivated user can be reactivated at a later date by binding them to a new device in Trusona.
223
221
 
224
- ## Development
225
222
 
226
- ### Patterns
223
+ ### Using a specific Trusona region
227
224
 
228
- The Trusona gem is built with a few principles in mind:
225
+ All users are provisioned in the default region. Unless otherwise noted, you will not need to configure Trusona to use a specific region. If you have been provisioned in a specific region, you will need to point the SDK to use that region. This can be done by configuring the region endpoint as the `api_host`. For example:
229
226
 
230
- 1. Provide a simple, idomatic, rails-like public interface.
231
- 1. Reduce the scope of the internals exposed to the end-user of the gem.
232
-
233
- #### Workers
234
-
235
- Behind the public facing API are a variety of Workers that complete simple, single-focused tasks. For example, when creating a Trusonafication, the responsibility of creation is offloaded to the `Trusona::Workers::TrusonaficationCreator`. This pattern is used for nearly all aspects of the SDK internals.
236
-
237
- #### Services
238
-
239
- Communicating with the Trusona API is done via a set of `Trusona::Services` which are responsible for making HMAC'd requests to the Trusona API and verifying the HMAC'd responses from the Trusona API.
240
-
241
- #### Resources
242
-
243
- Resources are designed to be simple representations of entities which are represented by the Trusona API.
244
-
245
- #### Mappers
246
-
247
- Mappers help translate JSON representations of Trusona API entities to Resource objects.
248
-
249
- ### Rubocop
250
-
251
- `Rubocop` is used to ensure adherence to an known style guide. It can be run
252
- from the command line. Rubocop standards are currently _not_ enforced during
253
- continuous integration builds.
254
-
255
- `bundle exec rubocop lib`
256
-
257
- ### Testing
258
-
259
- `bundle exec rake`
260
-
261
- #### Integration Tests
262
-
263
- Included in the `integrations` directory are a set of ever growing integration tests which rely on the Trusona config variables in your environment (try `.env`.)
264
-
265
- ##### One time setup
266
-
267
- ```bash
268
- cp .env.example .env
269
- ```
270
-
271
- Edit .env:
272
-
273
- ```txt
274
- TRUSONA_TOKEN=<A Server RP token that can send trusonafications to your email>
275
- TRUSONA_SECRET=<The Server RP secret>
276
- TRUSONA_API_HOST=https://api.staging.trusona.net
277
- INTEGRATION_TEST_EMAIL=<your UAT email>
227
+ ```ruby
228
+ Trusona.config do |c|
229
+ c.api_host = 'https://api.ap.trusona.net'
230
+ c.secret = ENV['TRUSONA_SECRET']
231
+ c.token = ENV['TRUSONA_TOKEN']
232
+ end
278
233
  ```
279
-
280
- ##### Running the tests
281
-
282
- `bundle exec rspec integrations/`
283
-
284
- #### Code Coverage
285
-
286
- Code coverage is calculated used `SimpleCov` and can be found in the `coverage`
287
- directory after running the tests
288
-
289
- ### Deployment
290
-
291
- To deploy a new version of the gem to Artifactory, use `bump` to bump the
292
- version by either `major`, `minor` or `patch` and then push the tags to
293
- github. Travis CI will build and deploy any tagged commits.
294
-
295
- 1. Ensure a clean working directory
296
- 1. `bundle exec bump patch --tag`
297
- 1. `git push origin --tags`
@@ -23,7 +23,6 @@ RSpec.configure do |config|
23
23
  end
24
24
 
25
25
  Trusona.config do |c|
26
- c.tru_codes_host = ENV['TRUSONA_API_HOST']
27
26
  c.api_host = ENV['TRUSONA_API_HOST']
28
27
  c.secret = ENV['TRUSONA_SECRET']
29
28
  c.token = ENV['TRUSONA_TOKEN']
@@ -101,16 +101,18 @@ module Trusona
101
101
  # using an instance of +Trusona::Configuration+.
102
102
  #
103
103
  # Trusona.config do |c|
104
- # c.tru_codes_host = ENV['TRU_CODES_HOST']
105
104
  # c.api_host = ENV['TRUSONA_API_HOST']
106
105
  # c.secret = ENV['TRUSONA_SECRET']
107
106
  # c.token = ENV['TRUSONA_TOKEN']
108
107
  # end
109
108
  #
110
109
  def self.config
111
- yield(@config ||= Configuration.new) if block_given?
110
+ if block_given?
111
+ @config = Configuration.new
112
+ yield(@config)
113
+ end
112
114
 
113
- @config ||= Configuration.new
115
+ @config
114
116
  end
115
117
 
116
118
  ##
@@ -124,39 +126,19 @@ module Trusona
124
126
  #
125
127
  # @attr_reader api_host [String] The full URL of the Trusona API
126
128
  # (e.g. +https://api.trusona.net+)
127
- #
128
- # @attr_reader tru_codes_host [String] The full URL of the host responsible
129
- # for managing TruCode tru_codes
130
- # (e.g. +https://tru_codes.trusona.net+)
131
129
  class Configuration
132
130
  attr_accessor :token, :secret
133
- attr_reader :api_host, :tru_codes_host
131
+ attr_reader :api_host
132
+
133
+ def initialize()
134
+ @api_host = 'api.trusona.net'
135
+ end
134
136
 
135
137
  ##
136
138
  # sets the API host by first ensuring the proper format
137
139
  # @param host [String] The full URL of the Trusona API
138
140
  def api_host=(host)
139
- @api_host = parse_host(host)
140
- end
141
-
142
- ##
143
- # sets the TruCodes host by first ensuring the proper format
144
- # @param host [String] The full URL of the TruCodes API
145
- def tru_codes_host=(host)
146
- @tru_codes_host = parse_host(host)
147
- end
148
-
149
- private
150
-
151
- def parse_host(maybe_host)
152
- parsed = URI('')
153
- begin
154
- parsed = URI(maybe_host).host
155
- rescue StandardError
156
- parsed = URI('')
157
- end
158
-
159
- parsed
141
+ @api_host = URI(host).host || host
160
142
  end
161
143
  end
162
144
  end
@@ -6,7 +6,7 @@ module Trusona
6
6
  ## A service for interacting with TruCode TruCodes
7
7
  class TruCodesService < BaseService
8
8
  def initialize(
9
- client: Trusona::Api::HTTPClient.new(Trusona.config.tru_codes_host),
9
+ client: Trusona::Api::HTTPClient.new(Trusona.config.api_host),
10
10
  mapper: Trusona::Mappers::TruCodeMapper.new
11
11
  )
12
12
  @client = client
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Trusona
4
- VERSION = '1.0.1'
4
+ VERSION = '2.0.0'
5
5
  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: 1.0.1
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Trusona
@@ -35,7 +35,7 @@ cert_chain:
35
35
  vbhUT8kOS+bZTalorEol37DD/P4Bbv0fMpw+ozetR2RmwhwTKPKJ5r0oQP6tiqHn
36
36
  hQ==
37
37
  -----END CERTIFICATE-----
38
- date: 2018-11-06 00:00:00.000000000 Z
38
+ date: 2018-12-21 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: httparty
@@ -231,6 +231,7 @@ files:
231
231
  - ".rspec"
232
232
  - ".ruby-version"
233
233
  - ".travis.yml"
234
+ - DEVELOP.md
234
235
  - Gemfile
235
236
  - Guardfile
236
237
  - LICENSE
@@ -308,7 +309,6 @@ files:
308
309
  - lib/trusona/workers/user_deactivator.rb
309
310
  - lib/trusona/workers/user_identifier_creator.rb
310
311
  - lib/trusona/workers/user_identifier_finder.rb
311
- - release-gem
312
312
  - trusona.gemspec
313
313
  - trusona.key.pem.enc
314
314
  homepage: https://trusona.com
@@ -332,7 +332,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
332
332
  version: '0'
333
333
  requirements: []
334
334
  rubyforge_project:
335
- rubygems_version: 2.7.8
335
+ rubygems_version: 2.6.14
336
336
  signing_key:
337
337
  specification_version: 4
338
338
  summary: Trusona REST API wrapper
metadata.gz.sig CHANGED
Binary file
@@ -1,20 +0,0 @@
1
- #!/bin/bash
2
-
3
- # Add the artifactory gem source
4
- gem source -a https://$ARTIFACTORY_USERNAME:$ARTIFACTORY_PASSWORD@trusona.jfrog.io/trusona/api/gems/trusona-rubygems/
5
-
6
- # fetch the gem credentials file from artifactory
7
- curl -u$ARTIFACTORY_USERNAME:$ARTIFACTORY_PASSWORD https://trusona.jfrog.io/trusona/api/gems/trusona-rubygems/api/v1/api_key.yaml > ~/.gem/credentials
8
-
9
- # change permissions on the fetched credentials file
10
- chmod 600 ~/.gem/credentials
11
-
12
- # build the gem
13
- gem build trusona.gemspec
14
-
15
- # push the gem to artifactory
16
- gem push trusona-*.gem --host https://trusona.jfrog.io/trusona/api/gems/trusona-rubygems
17
-
18
- # push to rubygems
19
- echo -e "---\n:rubygems_api_key: ${RUBYGEMS_API_KEY}" > ~/.gem/credentials
20
- gem push trusona-*.gem