securenative 0.1.17 → 0.1.23

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.
Files changed (132) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +5 -2
  3. data/.github/workflows/test.yml +5 -2
  4. data/.gitignore +3 -1
  5. data/Gemfile +6 -4
  6. data/Gemfile.lock +234 -25
  7. data/README.md +37 -32
  8. data/lib/api_manager.rb +39 -0
  9. data/lib/config/configuration_builder.rb +27 -0
  10. data/lib/config/configuration_manager.rb +56 -0
  11. data/lib/config/securenative_options.rb +23 -0
  12. data/lib/context/hanami_context.rb +42 -0
  13. data/lib/context/rails_context.rb +44 -0
  14. data/lib/context/securenative_context.rb +67 -0
  15. data/lib/context/sinatra_context.rb +42 -0
  16. data/lib/enums/api_route.rb +6 -0
  17. data/lib/enums/event_types.rb +23 -0
  18. data/lib/enums/failover_strategy.rb +6 -0
  19. data/lib/enums/risk_level.rb +7 -0
  20. data/lib/errors/securenative_config_error.rb +4 -0
  21. data/lib/errors/securenative_http_error.rb +4 -0
  22. data/lib/errors/securenative_invalid_options_error.rb +4 -0
  23. data/lib/errors/securenative_invalid_uri_error.rb +4 -0
  24. data/lib/errors/securenative_parse_error.rb +4 -0
  25. data/lib/errors/securenative_sdk_Illegal_state_error.rb +4 -0
  26. data/lib/errors/securenative_sdk_error.rb +4 -0
  27. data/lib/event_manager.rb +157 -0
  28. data/lib/{securenative/http/http_response.rb → http/secure_native_http_response.rb} +4 -2
  29. data/lib/http/securenative_http_client.rb +50 -0
  30. data/lib/{securenative/models → models}/client_token.rb +2 -0
  31. data/lib/{securenative/models → models}/device.rb +3 -1
  32. data/lib/models/event_options.rb +37 -0
  33. data/lib/{securenative/models → models}/request_context.rb +7 -4
  34. data/lib/models/request_options.rb +12 -0
  35. data/lib/models/sdk_event.rb +49 -0
  36. data/lib/{securenative/models → models}/user_traits.rb +4 -2
  37. data/lib/{securenative/models → models}/verify_result.rb +8 -2
  38. data/lib/securenative.rb +83 -0
  39. data/lib/utils/date_utils.rb +9 -0
  40. data/lib/utils/encryption_utils.rb +49 -0
  41. data/lib/{securenative/utils → utils}/ip_utils.rb +7 -6
  42. data/lib/utils/request_utils.rb +69 -0
  43. data/lib/{securenative/logger.rb → utils/secure_native_logger.rb} +5 -3
  44. data/lib/{securenative/utils → utils}/signature_utils.rb +4 -2
  45. data/lib/utils/utils.rb +9 -0
  46. data/lib/utils/version_utils.rb +11 -0
  47. data/out/production/securenative-ruby/api_manager.rb +39 -0
  48. data/out/production/securenative-ruby/config/configuration_builder.rb +27 -0
  49. data/out/production/securenative-ruby/config/configuration_manager.rb +56 -0
  50. data/out/production/securenative-ruby/config/securenative_options.rb +23 -0
  51. data/out/production/securenative-ruby/context/hanami_context.rb +42 -0
  52. data/out/production/securenative-ruby/context/rails_context.rb +44 -0
  53. data/out/production/securenative-ruby/context/securenative_context.rb +67 -0
  54. data/out/production/securenative-ruby/context/sinatra_context.rb +42 -0
  55. data/out/production/securenative-ruby/enums/api_route.rb +6 -0
  56. data/out/production/securenative-ruby/enums/event_types.rb +23 -0
  57. data/out/production/securenative-ruby/enums/failover_strategy.rb +6 -0
  58. data/out/production/securenative-ruby/enums/risk_level.rb +7 -0
  59. data/out/production/securenative-ruby/errors/securenative_config_error.rb +4 -0
  60. data/out/production/securenative-ruby/errors/securenative_http_error.rb +4 -0
  61. data/out/production/securenative-ruby/errors/securenative_invalid_options_error.rb +4 -0
  62. data/out/production/securenative-ruby/errors/securenative_invalid_uri_error.rb +4 -0
  63. data/out/production/securenative-ruby/errors/securenative_parse_error.rb +4 -0
  64. data/out/production/securenative-ruby/errors/securenative_sdk_Illegal_state_error.rb +4 -0
  65. data/out/production/securenative-ruby/errors/securenative_sdk_error.rb +4 -0
  66. data/out/production/securenative-ruby/event_manager.rb +157 -0
  67. data/out/production/securenative-ruby/http/secure_native_http_response.rb +12 -0
  68. data/out/production/securenative-ruby/http/securenative_http_client.rb +50 -0
  69. data/out/production/securenative-ruby/models/client_token.rb +12 -0
  70. data/out/production/securenative-ruby/models/device.rb +10 -0
  71. data/out/production/securenative-ruby/models/event_options.rb +37 -0
  72. data/out/production/securenative-ruby/models/request_context.rb +18 -0
  73. data/out/production/securenative-ruby/models/request_options.rb +12 -0
  74. data/out/production/securenative-ruby/models/sdk_event.rb +49 -0
  75. data/out/production/securenative-ruby/models/user_traits.rb +13 -0
  76. data/out/production/securenative-ruby/models/verify_result.rb +16 -0
  77. data/out/production/securenative-ruby/securenative.rb +83 -0
  78. data/out/production/securenative-ruby/utils/date_utils.rb +9 -0
  79. data/out/production/securenative-ruby/utils/encryption_utils.rb +49 -0
  80. data/out/production/securenative-ruby/utils/ip_utils.rb +23 -0
  81. data/out/production/securenative-ruby/utils/request_utils.rb +69 -0
  82. data/out/production/securenative-ruby/utils/secure_native_logger.rb +44 -0
  83. data/out/production/securenative-ruby/utils/signature_utils.rb +16 -0
  84. data/out/production/securenative-ruby/utils/utils.rb +9 -0
  85. data/out/production/securenative-ruby/utils/version_utils.rb +11 -0
  86. data/out/test/securenative-ruby/spec_api_manager.rb +87 -0
  87. data/out/test/securenative-ruby/spec_context_builder.rb +87 -0
  88. data/out/test/securenative-ruby/spec_date_utils.rb +13 -0
  89. data/out/test/securenative-ruby/spec_encryption_utils.rb +26 -0
  90. data/out/test/securenative-ruby/spec_event_manager.rb +93 -0
  91. data/out/test/securenative-ruby/spec_helper.rb +28 -0
  92. data/out/test/securenative-ruby/spec_ip_utils.rb +41 -0
  93. data/out/test/securenative-ruby/spec_request_utils.rb +25 -0
  94. data/out/test/securenative-ruby/spec_sdk_event.rb +24 -0
  95. data/out/test/securenative-ruby/spec_securenative.rb +61 -0
  96. data/out/test/securenative-ruby/spec_securenative_http_client.rb +31 -0
  97. data/out/test/securenative-ruby/spec_signature_utils.rb +18 -0
  98. data/out/test/securenative-ruby/spec_version_util.rb +10 -0
  99. data/securenative.gemspec +2 -2
  100. metadata +93 -43
  101. data/.travis.yml +0 -6
  102. data/VERSION +0 -1
  103. data/lib/securenative/api_manager.rb +0 -30
  104. data/lib/securenative/config/configuration_builder.rb +0 -26
  105. data/lib/securenative/config/configuration_manager.rb +0 -53
  106. data/lib/securenative/config/securenative_options.rb +0 -18
  107. data/lib/securenative/context/context_builder.rb +0 -59
  108. data/lib/securenative/context/securenative_context.rb +0 -14
  109. data/lib/securenative/enums/api_route.rb +0 -4
  110. data/lib/securenative/enums/event_types.rb +0 -21
  111. data/lib/securenative/enums/failover_strategy.rb +0 -4
  112. data/lib/securenative/enums/risk_level.rb +0 -5
  113. data/lib/securenative/event_manager.rb +0 -150
  114. data/lib/securenative/event_options_builder.rb +0 -30
  115. data/lib/securenative/exceptions/securenative_config_exception.rb +0 -2
  116. data/lib/securenative/exceptions/securenative_http_exception.rb +0 -2
  117. data/lib/securenative/exceptions/securenative_invalid_options_exception.rb +0 -2
  118. data/lib/securenative/exceptions/securenative_invalid_uri_exception.rb +0 -2
  119. data/lib/securenative/exceptions/securenative_parse_exception.rb +0 -2
  120. data/lib/securenative/exceptions/securenative_sdk_Illegal_state_exception.rb +0 -2
  121. data/lib/securenative/exceptions/securenative_sdk_exception.rb +0 -2
  122. data/lib/securenative/http/securenative_http_client.rb +0 -30
  123. data/lib/securenative/models/event_options.rb +0 -13
  124. data/lib/securenative/models/request_options.rb +0 -10
  125. data/lib/securenative/models/sdk_event.rb +0 -25
  126. data/lib/securenative/securenative.iml +0 -9
  127. data/lib/securenative/securenative.rb +0 -82
  128. data/lib/securenative/utils/date_utils.rb +0 -7
  129. data/lib/securenative/utils/encryption_utils.rb +0 -38
  130. data/lib/securenative/utils/request_utils.rb +0 -21
  131. data/lib/securenative/utils/utils.rb +0 -9
  132. data/lib/securenative/utils/version_utils.rb +0 -10
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 01eee863c8dda0e4bf97b91bc69c577d7720f44266e447f27493d270768ea200
4
- data.tar.gz: 981056596af0d2595d5119fe27655b757ff6a1afc057dd6ee567e2a4b51dd2ac
3
+ metadata.gz: 7ba285b1ac9a68c9cb1143ab595a4c052636e47b8d4cc39e16821e0582e06a62
4
+ data.tar.gz: c6295e963d7440c4dc8be4046077cafb4af96311f500fa2220717bf726b0ffba
5
5
  SHA512:
6
- metadata.gz: aaec6f599e8d4ba3efc0d645d6d84704b8fba065c430a206563bcbd547e6de281d946eb97fc173c7d1d9ce09b3ff4f7b0ea7abfdb98f9b3f4d9bfa9fa0e71d28
7
- data.tar.gz: 87b602345c3ff2566f36b9b6f47a66abdda7907f3f2fd9d0797a9ee1b3ac2d0443283f0e53d4f3cf7131e50fdf08bbc8f673ebfe42b1c8b6c3f032c0137cc921
6
+ metadata.gz: 7f78c7385e543d75dd106611eb77f71004fcb12d10702ae99a02af27cf3273bd45fcb2d5c7725a7001f143973f1cf2d70c19b3d57e3222d0b7965a40ec343f2c
7
+ data.tar.gz: fada20df309348b5e74a8886fb5855d51aed1ad4ba2245dd23df60f409b1fd6e3bc11efd829b4b21a2b0fa9cf2dac45c08628f088e49879a09a45853aee52ef7
@@ -10,7 +10,10 @@ on:
10
10
  jobs:
11
11
  test:
12
12
  name: CI
13
- runs-on: ubuntu-18.04
13
+ runs-on: ${{ matrix.os }}
14
+ strategy:
15
+ matrix:
16
+ os: [ubuntu-latest]
14
17
  steps:
15
18
  - uses: actions/checkout@v1
16
19
  - uses: actions/setup-ruby@v1
@@ -21,7 +24,7 @@ jobs:
21
24
  gem install bundler
22
25
  bundler install
23
26
  - name: Run tests
24
- run: bundler exec rspec
27
+ run: bundle exec rspec spec --pattern **/spec_*.rb
25
28
 
26
29
  - name: Notify slack success
27
30
  if: success()
@@ -9,7 +9,10 @@ on:
9
9
  jobs:
10
10
  test:
11
11
  name: Testing
12
- runs-on: ubuntu-18.04
12
+ runs-on: ${{ matrix.os }}
13
+ strategy:
14
+ matrix:
15
+ os: [ubuntu-latest]
13
16
  steps:
14
17
  - uses: actions/checkout@v1
15
18
  - uses: actions/setup-ruby@v1
@@ -20,7 +23,7 @@ jobs:
20
23
  gem install bundler
21
24
  bundler install
22
25
  - name: Run tests
23
- run: bundler exec rspec
26
+ run: bundle exec rspec spec --pattern **/spec_*.rb
24
27
 
25
28
  - name: Notify slack success
26
29
  if: success()
data/.gitignore CHANGED
@@ -10,6 +10,7 @@
10
10
  /test/version_tmp/
11
11
  /tmp/
12
12
  .idea
13
+ *.iml
13
14
  # Used by dotenv library to load environment variables.
14
15
  # .env
15
16
 
@@ -35,4 +36,5 @@
35
36
 
36
37
  # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
37
38
  .rvmrc
38
- .DS_Store
39
+ .DS_Store
40
+ .rspec_status
data/Gemfile CHANGED
@@ -3,7 +3,9 @@ source "https://rubygems.org"
3
3
  gemspec
4
4
  gem "rspec"
5
5
  gem "rake"
6
- gem "httpclient"
7
- gem "parseconfig"
8
- gem "webmock"
9
- gem "codecov", :require => false, :group => :test
6
+ gem "simplecov", :require => false, :group => :test
7
+ gem "codecov", :require => false, :group => :test
8
+ gem "webmock", :require => false, :group => :test
9
+ gem "rails", :require => false, :group => :test
10
+ gem "hanami", :require => false, :group => :test
11
+ gem "sinatra", :require => false, :group => :test
@@ -1,50 +1,257 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- securenative (0.1.16)
4
+ securenative (0.1.23)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
+ actioncable (6.0.3.3)
10
+ actionpack (= 6.0.3.3)
11
+ nio4r (~> 2.0)
12
+ websocket-driver (>= 0.6.1)
13
+ actionmailbox (6.0.3.3)
14
+ actionpack (= 6.0.3.3)
15
+ activejob (= 6.0.3.3)
16
+ activerecord (= 6.0.3.3)
17
+ activestorage (= 6.0.3.3)
18
+ activesupport (= 6.0.3.3)
19
+ mail (>= 2.7.1)
20
+ actionmailer (6.0.3.3)
21
+ actionpack (= 6.0.3.3)
22
+ actionview (= 6.0.3.3)
23
+ activejob (= 6.0.3.3)
24
+ mail (~> 2.5, >= 2.5.4)
25
+ rails-dom-testing (~> 2.0)
26
+ actionpack (6.0.3.3)
27
+ actionview (= 6.0.3.3)
28
+ activesupport (= 6.0.3.3)
29
+ rack (~> 2.0, >= 2.0.8)
30
+ rack-test (>= 0.6.3)
31
+ rails-dom-testing (~> 2.0)
32
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
33
+ actiontext (6.0.3.3)
34
+ actionpack (= 6.0.3.3)
35
+ activerecord (= 6.0.3.3)
36
+ activestorage (= 6.0.3.3)
37
+ activesupport (= 6.0.3.3)
38
+ nokogiri (>= 1.8.5)
39
+ actionview (6.0.3.3)
40
+ activesupport (= 6.0.3.3)
41
+ builder (~> 3.1)
42
+ erubi (~> 1.4)
43
+ rails-dom-testing (~> 2.0)
44
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
45
+ activejob (6.0.3.3)
46
+ activesupport (= 6.0.3.3)
47
+ globalid (>= 0.3.6)
48
+ activemodel (6.0.3.3)
49
+ activesupport (= 6.0.3.3)
50
+ activerecord (6.0.3.3)
51
+ activemodel (= 6.0.3.3)
52
+ activesupport (= 6.0.3.3)
53
+ activestorage (6.0.3.3)
54
+ actionpack (= 6.0.3.3)
55
+ activejob (= 6.0.3.3)
56
+ activerecord (= 6.0.3.3)
57
+ marcel (~> 0.3.1)
58
+ activesupport (6.0.3.3)
59
+ concurrent-ruby (~> 1.0, >= 1.0.2)
60
+ i18n (>= 0.7, < 2)
61
+ minitest (~> 5.1)
62
+ tzinfo (~> 1.1)
63
+ zeitwerk (~> 2.2, >= 2.2.2)
9
64
  addressable (2.7.0)
10
65
  public_suffix (>= 2.0.2, < 5.0)
11
- codecov (0.1.17)
66
+ builder (3.2.4)
67
+ codecov (0.2.11)
12
68
  json
13
69
  simplecov
14
- url
70
+ concurrent-ruby (1.1.7)
15
71
  crack (0.4.3)
16
72
  safe_yaml (~> 1.0.0)
17
- diff-lcs (1.3)
73
+ crass (1.0.6)
74
+ diff-lcs (1.4.4)
18
75
  docile (1.3.2)
76
+ dry-configurable (0.11.6)
77
+ concurrent-ruby (~> 1.0)
78
+ dry-core (~> 0.4, >= 0.4.7)
79
+ dry-equalizer (~> 0.2)
80
+ dry-container (0.7.2)
81
+ concurrent-ruby (~> 1.0)
82
+ dry-configurable (~> 0.1, >= 0.1.3)
83
+ dry-core (0.4.9)
84
+ concurrent-ruby (~> 1.0)
85
+ dry-equalizer (0.3.0)
86
+ dry-logic (0.4.2)
87
+ dry-container (~> 0.2, >= 0.2.6)
88
+ dry-core (~> 0.2)
89
+ dry-equalizer (~> 0.2)
90
+ dry-types (0.12.3)
91
+ concurrent-ruby (~> 1.0)
92
+ dry-configurable (~> 0.1)
93
+ dry-container (~> 0.3)
94
+ dry-core (~> 0.2, >= 0.2.1)
95
+ dry-equalizer (~> 0.2)
96
+ dry-logic (~> 0.4, >= 0.4.2)
97
+ inflecto (~> 0.0.0, >= 0.0.2)
98
+ dry-validation (0.11.2)
99
+ concurrent-ruby (~> 1.0)
100
+ dry-configurable (~> 0.1, >= 0.1.3)
101
+ dry-core (~> 0.2, >= 0.2.1)
102
+ dry-equalizer (~> 0.2)
103
+ dry-logic (~> 0.4.2)
104
+ dry-types (~> 0.12.0)
105
+ erubi (1.9.0)
106
+ globalid (0.4.2)
107
+ activesupport (>= 4.2.0)
108
+ hanami (1.3.3)
109
+ bundler (>= 1.6, < 3)
110
+ concurrent-ruby (~> 1.0)
111
+ hanami-assets (~> 1.3)
112
+ hanami-cli (~> 0.3)
113
+ hanami-controller (~> 1.3)
114
+ hanami-helpers (~> 1.3)
115
+ hanami-mailer (~> 1.3)
116
+ hanami-router (~> 1.3)
117
+ hanami-utils (~> 1.3)
118
+ hanami-validations (>= 1.3, < 3)
119
+ hanami-view (~> 1.3)
120
+ hanami-assets (1.3.4)
121
+ hanami-helpers (~> 1.3)
122
+ hanami-utils (~> 1.3)
123
+ tilt (~> 2.0, >= 2.0.2)
124
+ hanami-cli (0.3.1)
125
+ concurrent-ruby (~> 1.0)
126
+ hanami-utils (~> 1.3)
127
+ hanami-controller (1.3.3)
128
+ hanami-utils (~> 1.3)
129
+ rack (~> 2.0)
130
+ hanami-helpers (1.3.3)
131
+ hanami-utils (~> 1.3)
132
+ hanami-mailer (1.3.2)
133
+ hanami-utils (~> 1.3)
134
+ mail (~> 2.6)
135
+ tilt (~> 2.0, >= 2.0.1)
136
+ hanami-router (1.3.2)
137
+ hanami-utils (~> 1.3)
138
+ http_router (= 0.11.2)
139
+ rack (~> 2.0)
140
+ hanami-utils (1.3.6)
141
+ concurrent-ruby (~> 1.0)
142
+ transproc (~> 1.0)
143
+ hanami-validations (1.3.6)
144
+ dry-logic (~> 0.4.2, < 0.5)
145
+ dry-validation (~> 0.11, < 0.12)
146
+ hanami-utils (~> 1.3)
147
+ hanami-view (1.3.3)
148
+ hanami-utils (~> 1.3)
149
+ tilt (~> 2.0, >= 2.0.1)
19
150
  hashdiff (1.0.1)
20
- httpclient (2.8.3)
21
- json (2.3.0)
22
- parseconfig (1.0.8)
23
- public_suffix (4.0.5)
24
- rake (12.3.3)
25
- rspec (3.8.0)
26
- rspec-core (~> 3.8.0)
27
- rspec-expectations (~> 3.8.0)
28
- rspec-mocks (~> 3.8.0)
29
- rspec-core (3.8.2)
30
- rspec-support (~> 3.8.0)
31
- rspec-expectations (3.8.4)
151
+ http_router (0.11.2)
152
+ rack (>= 1.0.0)
153
+ url_mount (~> 0.2.1)
154
+ i18n (1.8.5)
155
+ concurrent-ruby (~> 1.0)
156
+ inflecto (0.0.2)
157
+ json (2.3.1)
158
+ loofah (2.7.0)
159
+ crass (~> 1.0.2)
160
+ nokogiri (>= 1.5.9)
161
+ mail (2.7.1)
162
+ mini_mime (>= 0.1.1)
163
+ marcel (0.3.3)
164
+ mimemagic (~> 0.3.2)
165
+ method_source (1.0.0)
166
+ mimemagic (0.3.5)
167
+ mini_mime (1.0.2)
168
+ mini_portile2 (2.4.0)
169
+ minitest (5.14.2)
170
+ mustermann (1.1.1)
171
+ ruby2_keywords (~> 0.0.1)
172
+ nio4r (2.5.4)
173
+ nokogiri (1.10.10)
174
+ mini_portile2 (~> 2.4.0)
175
+ public_suffix (4.0.6)
176
+ rack (2.2.3)
177
+ rack-protection (2.1.0)
178
+ rack
179
+ rack-test (1.1.0)
180
+ rack (>= 1.0, < 3)
181
+ rails (6.0.3.3)
182
+ actioncable (= 6.0.3.3)
183
+ actionmailbox (= 6.0.3.3)
184
+ actionmailer (= 6.0.3.3)
185
+ actionpack (= 6.0.3.3)
186
+ actiontext (= 6.0.3.3)
187
+ actionview (= 6.0.3.3)
188
+ activejob (= 6.0.3.3)
189
+ activemodel (= 6.0.3.3)
190
+ activerecord (= 6.0.3.3)
191
+ activestorage (= 6.0.3.3)
192
+ activesupport (= 6.0.3.3)
193
+ bundler (>= 1.3.0)
194
+ railties (= 6.0.3.3)
195
+ sprockets-rails (>= 2.0.0)
196
+ rails-dom-testing (2.0.3)
197
+ activesupport (>= 4.2.0)
198
+ nokogiri (>= 1.6)
199
+ rails-html-sanitizer (1.3.0)
200
+ loofah (~> 2.3)
201
+ railties (6.0.3.3)
202
+ actionpack (= 6.0.3.3)
203
+ activesupport (= 6.0.3.3)
204
+ method_source
205
+ rake (>= 0.8.7)
206
+ thor (>= 0.20.3, < 2.0)
207
+ rake (13.0.1)
208
+ rspec (3.9.0)
209
+ rspec-core (~> 3.9.0)
210
+ rspec-expectations (~> 3.9.0)
211
+ rspec-mocks (~> 3.9.0)
212
+ rspec-core (3.9.2)
213
+ rspec-support (~> 3.9.3)
214
+ rspec-expectations (3.9.2)
32
215
  diff-lcs (>= 1.2.0, < 2.0)
33
- rspec-support (~> 3.8.0)
34
- rspec-mocks (3.8.1)
216
+ rspec-support (~> 3.9.0)
217
+ rspec-mocks (3.9.1)
35
218
  diff-lcs (>= 1.2.0, < 2.0)
36
- rspec-support (~> 3.8.0)
37
- rspec-support (3.8.2)
219
+ rspec-support (~> 3.9.0)
220
+ rspec-support (3.9.3)
221
+ ruby2_keywords (0.0.2)
38
222
  safe_yaml (1.0.5)
39
- simplecov (0.18.5)
223
+ simplecov (0.19.0)
40
224
  docile (~> 1.1)
41
225
  simplecov-html (~> 0.11)
42
226
  simplecov-html (0.12.2)
43
- url (0.3.2)
44
- webmock (3.8.3)
227
+ sinatra (2.1.0)
228
+ mustermann (~> 1.0)
229
+ rack (~> 2.2)
230
+ rack-protection (= 2.1.0)
231
+ tilt (~> 2.0)
232
+ sprockets (4.0.2)
233
+ concurrent-ruby (~> 1.0)
234
+ rack (> 1, < 3)
235
+ sprockets-rails (3.2.2)
236
+ actionpack (>= 4.0)
237
+ activesupport (>= 4.0)
238
+ sprockets (>= 3.0.0)
239
+ thor (1.0.1)
240
+ thread_safe (0.3.6)
241
+ tilt (2.0.10)
242
+ transproc (1.1.1)
243
+ tzinfo (1.2.7)
244
+ thread_safe (~> 0.1)
245
+ url_mount (0.2.1)
246
+ rack
247
+ webmock (3.9.1)
45
248
  addressable (>= 2.3.6)
46
249
  crack (>= 0.3.2)
47
250
  hashdiff (>= 0.4.0, < 2.0.0)
251
+ websocket-driver (0.7.3)
252
+ websocket-extensions (>= 0.1.0)
253
+ websocket-extensions (0.1.5)
254
+ zeitwerk (2.4.0)
48
255
 
49
256
  PLATFORMS
50
257
  ruby
@@ -52,11 +259,13 @@ PLATFORMS
52
259
  DEPENDENCIES
53
260
  bundler (~> 2.0)
54
261
  codecov
55
- httpclient
56
- parseconfig
262
+ hanami
263
+ rails
57
264
  rake
58
265
  rspec
59
266
  securenative!
267
+ simplecov
268
+ sinatra
60
269
  webmock
61
270
 
62
271
  BUNDLED WITH
data/README.md CHANGED
@@ -36,7 +36,7 @@ gem 'securenative'
36
36
 
37
37
  Then execute:
38
38
 
39
- $ bundle
39
+ $ bundle install
40
40
 
41
41
  Or install it yourself as:
42
42
 
@@ -47,7 +47,7 @@ Or install it yourself as:
47
47
  To get your *API KEY*, login to your SecureNative account and go to project settings page:
48
48
 
49
49
  ### Option 1: Initialize via Config file
50
- SecureNative can automatically load your config from *securenative.cfg* file or from the file that is specified in your *SECURENATIVE_CONFIG_FILE* env variable:
50
+ SecureNative can automatically load your config from *securenative.yml* file or from the file that is specified in your *SECURENATIVE_CONFIG_FILE* env variable:
51
51
 
52
52
  ```ruby
53
53
  require 'securenative'
@@ -69,7 +69,8 @@ securenative = SecureNative.init_with_api_key('YOUR_API_KEY')
69
69
  require 'securenative'
70
70
 
71
71
 
72
- securenative = SecureNative.init_with_options(SecureNative.config_builder(api_key = 'API_KEY', max_event = 10, log_level = 'ERROR'))
72
+ options = ConfigurationBuilder.new(api_key: 'API_KEY', max_events: 10, log_level: 'ERROR')
73
+ SecureNative.init_with_options(options)
73
74
  ```
74
75
 
75
76
  ## Getting SecureNative instance
@@ -88,42 +89,46 @@ instance. Make sure you build event with the EventBuilder:
88
89
 
89
90
  ```ruby
90
91
  require 'securenative'
91
- require 'securenative/enums/event_types'
92
- require 'securenative/event_options_builder'
93
- require 'securenative/models/user_traits'
94
- require 'securenative/context/context_builder'
92
+ require 'models/event_options'
93
+ require 'enums/event_types'
94
+ require 'models/user_traits'
95
95
 
96
96
 
97
- securenative = SecureNative.instance
98
-
99
- context = securenative.context_builder(ip = '127.0.0.1', client_token = 'SECURED_CLIENT_TOKEN',
100
- headers = { 'user-agent' => 'Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Mobile/7B405' })
101
-
102
- event_options = EventOptionsBuilder(event_type = EventTypes::LOG_IN,
103
- user_id = '1234', user_traits = UserTraits('Your Name', 'name@gmail.com', '+1234567890'),
104
- context = context, properties = {prop1 => 'CUSTOM_PARAM_VALUE', prop2 => true, prop3 => 3}).build
105
-
106
- securenative.track(event_options)
97
+ def track
98
+ securenative = SecureNative.instance
99
+ context = SecureNativeContext.new(client_token: 'SECURED_CLIENT_TOKEN', ip: '127.0.0.1',
100
+ headers: { 'user-agent' => 'Mozilla: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.3 Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:42.0) Gecko/20100101 Firefox/43.4' })
101
+
102
+ event_options = EventOptions.new(event: EventTypes::LOG_IN, user_id: '1234', context: context,
103
+ user_traits: UserTraits.new(name: 'Your Name', email: 'name@gmail.com', phone: '+1234567890'),
104
+ properties: { custom_param1: 'CUSTOM_PARAM_VALUE', custom_param2: true, custom_param3: 3 })
105
+
106
+ securenative.track(event_options)
107
+
108
+ @message = 'tracked'
109
+ end
107
110
  ```
108
111
 
109
112
  You can also create request context from requests:
110
113
 
111
114
  ```ruby
112
115
  require 'securenative'
113
- require 'securenative/enums/event_types'
114
- require 'securenative/event_options_builder'
115
- require 'securenative/models/user_traits'
116
+ require 'models/event_options'
117
+ require 'enums/event_types'
118
+ require 'models/user_traits'
116
119
 
117
120
 
118
121
  def track(request)
119
122
  securenative = SecureNative.instance
120
- context = SecureNative.context_builder.from_http_request(request).build
121
-
122
- event_options = EventOptionsBuilder(event_type = EventTypes::LOG_IN,
123
- user_id = '1234', user_traits = UserTraits('Your Name', 'name@gmail.com', '+1234567890'),
124
- context = context, properties = {prop1 => 'CUSTOM_PARAM_VALUE', prop2 => true, prop3 => 3}).build
123
+ context = SecureNativeContext.from_http_request(request)
124
+
125
+ event_options = EventOptions.new(event: EventTypes::LOG_IN, user_id: '1234', context: context,
126
+ user_traits: UserTraits.new(name: 'Your Name', email: 'name@gmail.com', phone: '+1234567890'),
127
+ properties: { custom_param1: 'CUSTOM_PARAM_VALUE', custom_param2: true, custom_param3: 3 })
125
128
 
126
129
  securenative.track(event_options)
130
+
131
+ @message = 'tracked'
127
132
  end
128
133
  ```
129
134
 
@@ -133,18 +138,18 @@ end
133
138
 
134
139
  ```ruby
135
140
  require 'securenative'
136
- require 'securenative/enums/event_types'
137
- require 'securenative/event_options_builder'
138
- require 'securenative/models/user_traits'
141
+ require 'models/event_options'
142
+ require 'enums/event_types'
143
+ require 'models/user_traits'
139
144
 
140
145
 
141
146
  def verify(request)
142
147
  securenative = SecureNative.instance
143
- context = SecureNative.context_builder.from_http_request(request).build
148
+ context = SecureNativeContext.from_http_request(request)
144
149
 
145
- event_options = EventOptionsBuilder(event_type = EventTypes::LOG_IN,
146
- user_id = '1234', user_traits = UserTraits('Your Name', 'name@gmail.com', '+1234567890'),
147
- context = context, properties = {prop1 => 'CUSTOM_PARAM_VALUE', prop2 => true, prop3 => 3}).build
150
+ event_options = EventOptions.new(event: EventTypes::LOG_IN, user_id: '1234', context: context,
151
+ user_traits: UserTraits.new(name: 'Your Name', email: 'name@gmail.com', phone: '+1234567890'),
152
+ properties: { custom_param1: 'CUSTOM_PARAM_VALUE', custom_param2: true, custom_param3: 3 })
148
153
 
149
154
  verify_result = securenative.verify(event_options)
150
155
  verify_result.risk_level # Low, Medium, High