trusona 2.1.0 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5dc92807458496cc372e1677fb0ea1ea0b7de6ac
4
- data.tar.gz: 2689baece986ce2b1c29e0b5dc5800132365942d
3
+ metadata.gz: 398cae673c18c91ca4edf45a61db8321a4b3a409
4
+ data.tar.gz: e65a8f49e68558631ade4e92a565c9d9f113cedc
5
5
  SHA512:
6
- metadata.gz: 0cfb9ab9584badb3eef44d5365facc89a89aa1b0f57ed2159ab209991c5c0e30195da9462fe6069014e4b7833ff8a3bc00c6605d0df7214ab6ede9b8e50c1017
7
- data.tar.gz: ebd7c4eff42bd88de0dca65a1f222c829a0e5522ded8a4ebd10f8fd7334275da542b3a9620fb88b987e7b13900eb2b8705d5593b5cbb1dcc08a06bab525c8892
6
+ metadata.gz: bae3928a80ca2f52a2c4ce3a0d4d8afa4e72d079b8ee73016b28c5efcdb963422ef7b30593125f8dddbae533760395e49abec02157572fb42b63cb6a71f40c81
7
+ data.tar.gz: 40d854cab5c18fd0451ce85317ed337b10bafc815a35f6dceb2f871a7b477d3f3dbdfc4ceb1cccf54d831da81c71b59c1b98b75ab46c95b02b7ef628ef7cda31
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/.travis.yml CHANGED
@@ -1,13 +1,12 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  cache:
4
- - bundler
4
+ - bundler
5
5
  rvm:
6
- - 2.4.3
7
- - 2.5.1
8
- before_install:
9
- - openssl aes-256-cbc -K $encrypted_b73e363d372e_key -iv $encrypted_b73e363d372e_iv -in trusona.key.pem.enc -out trusona.key.pem -d
6
+ - 2.4.3
7
+ - 2.5.1
10
8
  before_script:
9
+ - openssl aes-256-cbc -K $encrypted_2ddff5084a28_key -iv $encrypted_2ddff5084a28_iv -in trusona.key.pem.enc -out trusona.key.pem -d
11
10
  - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
12
11
  - chmod +x ./cc-test-reporter
13
12
  - ./cc-test-reporter before-build
@@ -26,3 +25,9 @@ deploy:
26
25
  on:
27
26
  tags: true
28
27
  rvm: '2.4.3'
28
+ notifications:
29
+ slack:
30
+ on_success: always
31
+ on_failure: always
32
+ rooms:
33
+ - secure: "qRApZOlTg30kMRnRkaF2FrEjsu41iCYWyKH+jBDrw9/27fDxSooSFTrd9zoukyZOsh4j7IcXhM63ZsoOP5eYNc49PsPJlDvSWo3pwp3sQwFpXbbci1axEQeqWr3gwpQ9QiGNbKGelhr6zgMK5Qa41GrgpsAR/7R21SuqDyDczzPgRQQxxbAFUI1hHyDvs4H+/CZdno1y8NKbLqSzwNxnZQFAZlXvrnlTWNL4Afr9MqarTlxvg62FKhBmpExThMhmvh0egcfrH1SEkEn9WECqReO6m+evpK/uF5fFRiBPnOEj+aJswWt0tUoSSATNCOoKSQt6aOpGe6RLpiaUljCHK/0pLAsSXroCiEQ6DSRwEkiGOzMFkrefPIvHQqWMTlJKsO+oJOY4utnRnX+ykg0nQ1+6HZPoUX+E+chlYIIomQ0GMtn7LuT22kXlnuYgv64tc7/wtRlIoQ0oS+Hj0sOz5u3T78eiGn+hXvCaRsfMjq9InP01lFS/3X4mK4fI89L9cTKN+8Kvk072boibGApyusJBzt5SS9LFYS44B6d63pFGlpfZUrSBbwr44jfwCIyWPKuf+7SLzJKzeduRX/2/PIAweMm/yUz6ERAEcw6fYUDziMljhWKZh8ME4B1VAWpUAGR9/Gq4iYCLGRiJ2ajG4CE2Sf7+9W74V6fe1RiAodo="
data/README.md CHANGED
@@ -122,12 +122,31 @@ In the above example, the addition of `user_presence: false` and `prompt: false`
122
122
  email: 'user@domain.com'
123
123
  })
124
124
  ```
125
- In some cases you may be able to send a Trusonafication to a user
126
- by specifying their email address. This is the case if one of the following is true:
125
+ In some cases you may be able to send a Trusonafication to a user by specifying their email address. This is the case if one of the following is true:
127
126
  - You have verified ownership of a domain through the Trusona Developer's site
128
127
  - You have an agreement with Trusona allowing you to send Trusonafications to any email address.
129
- Creating a Trusonafication with an email address is similar to the other
130
- use cases, except you use the `email` parameter rather than `user_identifier` or `device_identifier`.
128
+ Creating a Trusonafication with an email address is similar to the other use cases, except you use the `email` parameter rather than `user_identifier` or `device_identifier`.
129
+
130
+ #### Adding custom fields to a Trusonafication
131
+ ```ruby
132
+ Trusona::ExecutiveTrusonafication.create(params: {
133
+ action: 'login',
134
+ resource: 'Acme Bank',
135
+ device_identifier: 'Vdza6-JQMfAJePj2H69oMn1YTyXTu73IiYt9oBa3kj',
136
+ custom_fields: { greeting: 'hello!', last_login: false }
137
+ })
138
+ ```
139
+
140
+ If you are using the mobile SDK to build a custom app that integrates with Trusona, you have the option of including additional data on the Trusonafication which the app can use to affect its behavior.
141
+
142
+ For example, you may want to include additional context on the Trusonafication prompt.
143
+
144
+ You can add these custom fields by including a `custom_fields` hash as shown above.
145
+
146
+ The custom fields will then be available in the Trusonafication received by the SDK.
147
+
148
+ Note that the custom fields are not used in the case that the Trusonafication is being handled by the Trusona app.
149
+
131
150
 
132
151
  #### An Executive level Trusonafication
133
152
 
@@ -151,6 +170,7 @@ use cases, except you use the `email` parameter rather than `user_identifier` or
151
170
  | User Presence | `user_presence` | N | Should the user be required to demonstrate presence (e.g. via Biometric) when accepting this Trusonafication? Defaults to `true`. |
152
171
  | Prompt | `prompt` | N | Should the user be prompted to Accept or Reject this Trusonafication? Defaults to `true`. |
153
172
  | Expiration | `expires_at` | N | The ISO-8601 UTC timestamp of the Trusonafication's expiration. Defaults to 90 seconds from creation. |
173
+ | Custom Fields | `custom_fields` | N | Arbitrary key-value data fields made available to the Trusonafication. Amount of data in the hash is limited to 1MB |
154
174
 
155
175
  [^1]: You must provide at least one field that would allow Trusona to determine which user to authenticate. The identifier fields are `device_identifier`, `user_identifier`, and `trucode_id`.
156
176
 
data/certs/trusona.pem CHANGED
@@ -1,26 +1,34 @@
1
1
  -----BEGIN CERTIFICATE-----
2
- MIIETTCCArWgAwIBAgIBATANBgkqhkiG9w0BAQsFADAoMSYwJAYDVQQDDB1lbmdp
3
- bmVlcmluZy9EQz10cnVzb25hL0RDPWNvbTAeFw0xODA3MDUxNjQyNTVaFw0xOTA3
4
- MDUxNjQyNTVaMCgxJjAkBgNVBAMMHWVuZ2luZWVyaW5nL0RDPXRydXNvbmEvREM9
5
- Y29tMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAtZt82g/ZeiJshGdi
6
- twfXgueVDyMEsV+h7mRwDqOhwwwJ9/EBwu2Ma56LQHKMqDsVaSljTUo4WNSm9M7r
7
- H6c/IW6O07X/2YA29jwUveauKjkBmmEpECr7hTe0UHoOm9jV5DHeoBsgpMSFqC3C
8
- myBP8ik/A+xEQPo8F43TMX2YP3EFQw8ievUdCvwgjapFoyFoBlmrbfHMyYH1XTfF
9
- hth9YAZoYYSaVHKYleEWz73ZPZyYqXUm2G56eAOAu6+Ghi3G9F2FtxwGVpjAnKc6
10
- r37RRWG5b6Sfuj9ojds9sn8EExUTroti5Jb6RpJI54+IKuarfEe7ygn6PBsianbF
11
- b9FJ/PQgUNOrCkEum8iBrJW2eBgNKsC39kX7luUeot6aBpO16E8exrNwia7aWVn1
12
- lOW2DpjLWpyQDC3iCmV5JZD3Ffg1uGaMg1ln1BAtLH9StDqi8EPL3lmXQM2uvi9f
13
- KXCrw0eSiDGD1PUdKJ0RE/hByKLtGn7UygIKsV8v7R/L+PwNAgMBAAGjgYEwfzAJ
14
- BgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU82ZI29Yn4SX0EuOrfvkc
15
- Fs2cy2wwIgYDVR0RBBswGYEXZW5naW5lZXJpbmdAdHJ1c29uYS5jb20wIgYDVR0S
16
- BBswGYEXZW5naW5lZXJpbmdAdHJ1c29uYS5jb20wDQYJKoZIhvcNAQELBQADggGB
17
- AC3rcLcSs4JCMfVNJxx2ugAqxagKV9Hbpl9hLMDCv2M4rc4kWKwuSyihhaetq+2U
18
- hzWaqX0yUzBC1KCOxuZOxpC0KscsYGeLiGRILZetUl6Kj/4H/Xjaj1gkW4mtCfeh
19
- 5QC/1FM/C3AExN5oWNQUTBQ2XFain5RxR/SJVidJt+6DOePhqY2zAp7lweIIcjit
20
- bJNU+hSx7iO750Wnn969yQDRNKnNIULAmpvgGpErv8kx5FELDypEZtRWK4wmPkyz
21
- vDcXXHq4276Zr5idZbx/uxeRuS05rL+o/LmN1KNvxxJCoqAv+meGhMQ645WKs5La
22
- oeFOElmMyJfOJcYAp5KP5Rvn/llhVYYaGtOsoY7+6U0fN0DzucZmtfwtp4r9foVY
23
- 5dMuMQ9V7c0EWtZm8J+tcQh9dPPC4Va/FnYWw+x6CDmVU/nijUAI1UOxSSuekJXb
24
- vbhUT8kOS+bZTalorEol37DD/P4Bbv0fMpw+ozetR2RmwhwTKPKJ5r0oQP6tiqHn
25
- hQ==
2
+ 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
33
+ eNCk84I=
26
34
  -----END CERTIFICATE-----
@@ -11,7 +11,7 @@ module Trusona
11
11
  attr_accessor :device_identifier, :user_identifier, :trucode_id,
12
12
  :resource, :action, :level, :id, :email,
13
13
  :accepted_level, :trusona_id, :expires_at,
14
- :user_presence, :prompt
14
+ :user_presence, :prompt, :custom_fields
15
15
 
16
16
  # rubocop:disable Metrics/AbcSize
17
17
  # rubocop:disable Metrics/MethodLength
@@ -31,6 +31,7 @@ module Trusona
31
31
  self.trusona_id = @params[:trusona_id]
32
32
  self.prompt = defaulting_to(true, @params[:prompt])
33
33
  self.user_presence = defaulting_to(true, @params[:user_presence])
34
+ self.custom_fields = @params[:custom_fields]
34
35
 
35
36
  @status = @params[:status]
36
37
  end
@@ -55,6 +56,7 @@ module Trusona
55
56
  status: @status,
56
57
  prompt: prompt,
57
58
  user_presence: user_presence,
59
+ custom_fields: custom_fields,
58
60
  expires_at: expires_at&.iso8601)
59
61
  end
60
62
  # rubocop:enable Metrics/MethodLength
@@ -58,6 +58,9 @@ module Trusona
58
58
  # @param timeout [Int] (30) The max amount of time, in seconds, to wait
59
59
  # for a response from the Trusona API when polling for a Trusonafication
60
60
  # result
61
+ # @option params [Hash] :custom_fields Optional data to be associated with
62
+ # this Trusonafication and can be used to constomize any UX elements. Total
63
+ # size of data is limited to 1MB.
61
64
  # @yield [Trusona::Resources::Trusonafication] Yields the completed
62
65
  # Trusonafication to the block
63
66
  # @raise [Trusona::InvalidResourceError] if the resource is not +valid?+
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Trusona
4
- VERSION = '2.1.0'
4
+ VERSION = '2.2.0'
5
5
  end
data/trusona.key.pem.enc CHANGED
Binary file
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.1.0
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Trusona
@@ -10,32 +10,40 @@ bindir: exe
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIETTCCArWgAwIBAgIBATANBgkqhkiG9w0BAQsFADAoMSYwJAYDVQQDDB1lbmdp
14
- bmVlcmluZy9EQz10cnVzb25hL0RDPWNvbTAeFw0xODA3MDUxNjQyNTVaFw0xOTA3
15
- MDUxNjQyNTVaMCgxJjAkBgNVBAMMHWVuZ2luZWVyaW5nL0RDPXRydXNvbmEvREM9
16
- Y29tMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAtZt82g/ZeiJshGdi
17
- twfXgueVDyMEsV+h7mRwDqOhwwwJ9/EBwu2Ma56LQHKMqDsVaSljTUo4WNSm9M7r
18
- H6c/IW6O07X/2YA29jwUveauKjkBmmEpECr7hTe0UHoOm9jV5DHeoBsgpMSFqC3C
19
- myBP8ik/A+xEQPo8F43TMX2YP3EFQw8ievUdCvwgjapFoyFoBlmrbfHMyYH1XTfF
20
- hth9YAZoYYSaVHKYleEWz73ZPZyYqXUm2G56eAOAu6+Ghi3G9F2FtxwGVpjAnKc6
21
- r37RRWG5b6Sfuj9ojds9sn8EExUTroti5Jb6RpJI54+IKuarfEe7ygn6PBsianbF
22
- b9FJ/PQgUNOrCkEum8iBrJW2eBgNKsC39kX7luUeot6aBpO16E8exrNwia7aWVn1
23
- lOW2DpjLWpyQDC3iCmV5JZD3Ffg1uGaMg1ln1BAtLH9StDqi8EPL3lmXQM2uvi9f
24
- KXCrw0eSiDGD1PUdKJ0RE/hByKLtGn7UygIKsV8v7R/L+PwNAgMBAAGjgYEwfzAJ
25
- BgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU82ZI29Yn4SX0EuOrfvkc
26
- Fs2cy2wwIgYDVR0RBBswGYEXZW5naW5lZXJpbmdAdHJ1c29uYS5jb20wIgYDVR0S
27
- BBswGYEXZW5naW5lZXJpbmdAdHJ1c29uYS5jb20wDQYJKoZIhvcNAQELBQADggGB
28
- AC3rcLcSs4JCMfVNJxx2ugAqxagKV9Hbpl9hLMDCv2M4rc4kWKwuSyihhaetq+2U
29
- hzWaqX0yUzBC1KCOxuZOxpC0KscsYGeLiGRILZetUl6Kj/4H/Xjaj1gkW4mtCfeh
30
- 5QC/1FM/C3AExN5oWNQUTBQ2XFain5RxR/SJVidJt+6DOePhqY2zAp7lweIIcjit
31
- bJNU+hSx7iO750Wnn969yQDRNKnNIULAmpvgGpErv8kx5FELDypEZtRWK4wmPkyz
32
- vDcXXHq4276Zr5idZbx/uxeRuS05rL+o/LmN1KNvxxJCoqAv+meGhMQ645WKs5La
33
- oeFOElmMyJfOJcYAp5KP5Rvn/llhVYYaGtOsoY7+6U0fN0DzucZmtfwtp4r9foVY
34
- 5dMuMQ9V7c0EWtZm8J+tcQh9dPPC4Va/FnYWw+x6CDmVU/nijUAI1UOxSSuekJXb
35
- vbhUT8kOS+bZTalorEol37DD/P4Bbv0fMpw+ozetR2RmwhwTKPKJ5r0oQP6tiqHn
36
- hQ==
13
+ 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
44
+ eNCk84I=
37
45
  -----END CERTIFICATE-----
38
- date: 2019-05-28 00:00:00.000000000 Z
46
+ date: 2019-07-16 00:00:00.000000000 Z
39
47
  dependencies:
40
48
  - !ruby/object:Gem::Dependency
41
49
  name: httparty
metadata.gz.sig CHANGED
Binary file