securenative 0.1.16 → 0.1.22

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 (119) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +7 -15
  3. data/.github/workflows/publish.yml +1 -1
  4. data/.github/workflows/test.yml +5 -2
  5. data/.gitignore +3 -1
  6. data/Gemfile +6 -4
  7. data/Gemfile.lock +234 -23
  8. data/README.md +38 -33
  9. data/lib/api_manager.rb +39 -0
  10. data/lib/config/configuration_builder.rb +26 -0
  11. data/lib/config/configuration_manager.rb +55 -0
  12. data/lib/config/securenative_options.rb +22 -0
  13. data/lib/context/hanami_context.rb +42 -0
  14. data/lib/context/rails_context.rb +44 -0
  15. data/lib/context/securenative_context.rb +67 -0
  16. data/lib/context/sinatra_context.rb +42 -0
  17. data/lib/enums/api_route.rb +6 -0
  18. data/lib/enums/event_types.rb +23 -0
  19. data/lib/enums/failover_strategy.rb +6 -0
  20. data/lib/enums/risk_level.rb +7 -0
  21. data/lib/errors/securenative_config_error.rb +4 -0
  22. data/lib/errors/securenative_http_error.rb +4 -0
  23. data/lib/errors/securenative_invalid_options_error.rb +4 -0
  24. data/lib/errors/securenative_invalid_uri_error.rb +4 -0
  25. data/lib/errors/securenative_parse_error.rb +4 -0
  26. data/lib/errors/securenative_sdk_Illegal_state_error.rb +4 -0
  27. data/lib/errors/securenative_sdk_error.rb +4 -0
  28. data/lib/event_manager.rb +157 -0
  29. data/lib/http/secure_native_http_response.rb +12 -0
  30. data/lib/http/securenative_http_client.rb +50 -0
  31. data/lib/{securenative/models → models}/client_token.rb +2 -0
  32. data/lib/{securenative/models → models}/device.rb +3 -1
  33. data/lib/models/event_options.rb +37 -0
  34. data/lib/models/request_context.rb +18 -0
  35. data/lib/models/request_options.rb +12 -0
  36. data/lib/models/sdk_event.rb +49 -0
  37. data/lib/models/user_traits.rb +13 -0
  38. data/lib/models/verify_result.rb +16 -0
  39. data/lib/securenative.rb +83 -0
  40. data/lib/utils/date_utils.rb +9 -0
  41. data/lib/utils/encryption_utils.rb +49 -0
  42. data/lib/{securenative/utils → utils}/ip_utils.rb +7 -6
  43. data/lib/utils/request_utils.rb +54 -0
  44. data/lib/{securenative/logger.rb → utils/secure_native_logger.rb} +5 -3
  45. data/lib/{securenative/utils → utils}/signature_utils.rb +4 -2
  46. data/lib/utils/utils.rb +9 -0
  47. data/lib/utils/version_utils.rb +11 -0
  48. data/{lib/securenative → out/production/securenative-ruby}/api_manager.rb +6 -5
  49. data/{lib/securenative → out/production/securenative-ruby}/config/configuration_builder.rb +7 -3
  50. data/{lib/securenative → out/production/securenative-ruby}/config/configuration_manager.rb +5 -3
  51. data/{lib/securenative → out/production/securenative-ruby}/config/securenative_options.rb +3 -1
  52. data/out/production/securenative-ruby/context/securenative_context.rb +40 -0
  53. data/out/production/securenative-ruby/enums/api_route.rb +6 -0
  54. data/out/production/securenative-ruby/enums/event_types.rb +23 -0
  55. data/out/production/securenative-ruby/enums/failover_strategy.rb +6 -0
  56. data/out/production/securenative-ruby/enums/risk_level.rb +7 -0
  57. data/out/production/securenative-ruby/errors/securenative_config_error.rb +4 -0
  58. data/out/production/securenative-ruby/errors/securenative_http_error.rb +4 -0
  59. data/out/production/securenative-ruby/errors/securenative_invalid_options_error.rb +4 -0
  60. data/out/production/securenative-ruby/errors/securenative_invalid_uri_error.rb +4 -0
  61. data/out/production/securenative-ruby/errors/securenative_parse_error.rb +4 -0
  62. data/out/production/securenative-ruby/errors/securenative_sdk_Illegal_state_error.rb +4 -0
  63. data/out/production/securenative-ruby/errors/securenative_sdk_error.rb +4 -0
  64. data/out/production/securenative-ruby/event_manager.rb +156 -0
  65. data/out/production/securenative-ruby/event_options.rb +32 -0
  66. data/{lib/securenative → out/production/securenative-ruby}/http/http_response.rb +3 -1
  67. data/out/production/securenative-ruby/http/securenative_http_client.rb +32 -0
  68. data/out/production/securenative-ruby/models/client_token.rb +12 -0
  69. data/out/production/securenative-ruby/models/device.rb +10 -0
  70. data/{lib/securenative → out/production/securenative-ruby}/models/event_options.rb +3 -1
  71. data/{lib/securenative → out/production/securenative-ruby}/models/request_context.rb +5 -2
  72. data/out/production/securenative-ruby/models/request_options.rb +12 -0
  73. data/{lib/securenative → out/production/securenative-ruby}/models/sdk_event.rb +11 -3
  74. data/out/production/securenative-ruby/models/user_traits.rb +13 -0
  75. data/{lib/securenative → out/production/securenative-ruby}/models/verify_result.rb +3 -1
  76. data/{lib/securenative → out/production/securenative-ruby}/securenative.rb +24 -15
  77. data/out/production/securenative-ruby/utils/date_utils.rb +9 -0
  78. data/{lib/securenative → out/production/securenative-ruby}/utils/encryption_utils.rb +1 -4
  79. data/out/production/securenative-ruby/utils/ip_utils.rb +23 -0
  80. data/{lib/securenative → out/production/securenative-ruby}/utils/request_utils.rb +5 -3
  81. data/out/production/securenative-ruby/utils/secure_native_logger.rb +44 -0
  82. data/out/production/securenative-ruby/utils/signature_utils.rb +16 -0
  83. data/out/production/securenative-ruby/utils/utils.rb +9 -0
  84. data/{lib/securenative → out/production/securenative-ruby}/utils/version_utils.rb +3 -1
  85. data/out/test/securenative-ruby/spec_api_manager.rb +81 -0
  86. data/out/test/securenative-ruby/spec_context_builder.rb +69 -0
  87. data/out/test/securenative-ruby/spec_date_utils.rb +13 -0
  88. data/out/test/securenative-ruby/spec_encryption_utils.rb +26 -0
  89. data/out/test/securenative-ruby/spec_event_manager.rb +59 -0
  90. data/out/test/securenative-ruby/spec_helper.rb +20 -0
  91. data/out/test/securenative-ruby/spec_ip_utils.rb +41 -0
  92. data/out/test/securenative-ruby/spec_securenative.rb +65 -0
  93. data/out/test/securenative-ruby/spec_securenative_http_client.rb +23 -0
  94. data/out/test/securenative-ruby/spec_signature_utils.rb +18 -0
  95. data/securenative.gemspec +2 -2
  96. metadata +88 -43
  97. data/.travis.yml +0 -6
  98. data/VERSION +0 -1
  99. data/lib/securenative/context/context_builder.rb +0 -59
  100. data/lib/securenative/context/securenative_context.rb +0 -14
  101. data/lib/securenative/enums/api_route.rb +0 -4
  102. data/lib/securenative/enums/event_types.rb +0 -21
  103. data/lib/securenative/enums/failover_strategy.rb +0 -4
  104. data/lib/securenative/enums/risk_level.rb +0 -5
  105. data/lib/securenative/event_manager.rb +0 -149
  106. data/lib/securenative/event_options_builder.rb +0 -21
  107. data/lib/securenative/exceptions/securenative_config_exception.rb +0 -2
  108. data/lib/securenative/exceptions/securenative_http_exception.rb +0 -2
  109. data/lib/securenative/exceptions/securenative_invalid_options_exception.rb +0 -2
  110. data/lib/securenative/exceptions/securenative_invalid_uri_exception.rb +0 -2
  111. data/lib/securenative/exceptions/securenative_parse_exception.rb +0 -2
  112. data/lib/securenative/exceptions/securenative_sdk_Illegal_state_exception.rb +0 -2
  113. data/lib/securenative/exceptions/securenative_sdk_exception.rb +0 -2
  114. data/lib/securenative/http/securenative_http_client.rb +0 -30
  115. data/lib/securenative/models/request_options.rb +0 -10
  116. data/lib/securenative/models/user_traits.rb +0 -10
  117. data/lib/securenative/securenative.iml +0 -9
  118. data/lib/securenative/utils/date_utils.rb +0 -7
  119. data/lib/securenative/utils/utils.rb +0 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9b47b308123b4c5c01e92666737a18cdc3bed2757b8486c982fbe6b3f4d3a137
4
- data.tar.gz: 9b7d71c86d11319bac529cd21e7c7e9647f8d1ffadc8a870000adf53308c1ee6
3
+ metadata.gz: b61f74882bbf23be71999125df784a88a509c29ef3ca5cee0569ebdaa2063f32
4
+ data.tar.gz: c6305ecadb3bf5d45245b54dfa336fc7d8b2774b0ceb7fc8997c2cdb1060a4a1
5
5
  SHA512:
6
- metadata.gz: 3c3a1914b13f3fc2faf39f2cdaa48be431f4258d267748318174d2ee30877f1f72f2a2d2f5b93321603f2ad115414b7e3378f360d10c5a9fc9b35cabe4532772
7
- data.tar.gz: de8e3e0ec647d8a03904aa8e0e0940cab416476b4354df598d4c0aeee221a82b4d4a60c65187a4c3f5de87631622064daa3a69bd4e89926ba29c4282cba89ef3
6
+ metadata.gz: 0a46b6fed3c5478412f1e437142e2c74bc8e27d8213c0c8af8d08c4ad2dbfc71c13cf8695cd31a406d1600eb5005ce206ee7b3613b4dbb436cb072a199e3a7a2
7
+ data.tar.gz: c14bdfe15041f74dc7b899f8b8eac5b8d3228a5f638a1d0edd347a4793bbdf7ce9bc9c39e78d7a38b595feb0044337e2e2e73679dd804364ccc79057fb7f8c89
@@ -8,21 +8,13 @@ on:
8
8
  - dev-*
9
9
 
10
10
  jobs:
11
- ci:
12
- runs-on: ubuntu-latest
11
+ test:
13
12
  name: CI
13
+ runs-on: ${{ matrix.os }}
14
+ strategy:
15
+ matrix:
16
+ os: [ubuntu-latest]
14
17
  steps:
15
- - name: Notify slack success
16
- if: success()
17
- id: slack # IMPORTANT: reference this step ID value in future Slack steps
18
- env:
19
- SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
20
- uses: voxmedia/github-action-slack-notify-build@v1.1.1
21
- with:
22
- channel: github-actions
23
- status: STARTING
24
- color: warning
25
-
26
18
  - uses: actions/checkout@v1
27
19
  - uses: actions/setup-ruby@v1
28
20
  with:
@@ -32,7 +24,7 @@ jobs:
32
24
  gem install bundler
33
25
  bundler install
34
26
  - name: Run tests
35
- run: bundler exec rspec
27
+ run: bundle exec rspec spec --pattern **/spec_*.rb
36
28
 
37
29
  - name: Notify slack success
38
30
  if: success()
@@ -54,4 +46,4 @@ jobs:
54
46
  message_id: ${{ steps.slack.outputs.message_id }}
55
47
  channel: github-actions
56
48
  status: FAILED
57
- color: danger
49
+ color: danger
@@ -1,4 +1,4 @@
1
- name: Upload Python Package
1
+ name: Publish
2
2
 
3
3
  on:
4
4
  release:
@@ -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,259 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- securenative (0.1.16)
4
+ securenative (0.1.22)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
+ actioncable (6.0.3.2)
10
+ actionpack (= 6.0.3.2)
11
+ nio4r (~> 2.0)
12
+ websocket-driver (>= 0.6.1)
13
+ actionmailbox (6.0.3.2)
14
+ actionpack (= 6.0.3.2)
15
+ activejob (= 6.0.3.2)
16
+ activerecord (= 6.0.3.2)
17
+ activestorage (= 6.0.3.2)
18
+ activesupport (= 6.0.3.2)
19
+ mail (>= 2.7.1)
20
+ actionmailer (6.0.3.2)
21
+ actionpack (= 6.0.3.2)
22
+ actionview (= 6.0.3.2)
23
+ activejob (= 6.0.3.2)
24
+ mail (~> 2.5, >= 2.5.4)
25
+ rails-dom-testing (~> 2.0)
26
+ actionpack (6.0.3.2)
27
+ actionview (= 6.0.3.2)
28
+ activesupport (= 6.0.3.2)
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.2)
34
+ actionpack (= 6.0.3.2)
35
+ activerecord (= 6.0.3.2)
36
+ activestorage (= 6.0.3.2)
37
+ activesupport (= 6.0.3.2)
38
+ nokogiri (>= 1.8.5)
39
+ actionview (6.0.3.2)
40
+ activesupport (= 6.0.3.2)
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.2)
46
+ activesupport (= 6.0.3.2)
47
+ globalid (>= 0.3.6)
48
+ activemodel (6.0.3.2)
49
+ activesupport (= 6.0.3.2)
50
+ activerecord (6.0.3.2)
51
+ activemodel (= 6.0.3.2)
52
+ activesupport (= 6.0.3.2)
53
+ activestorage (6.0.3.2)
54
+ actionpack (= 6.0.3.2)
55
+ activejob (= 6.0.3.2)
56
+ activerecord (= 6.0.3.2)
57
+ marcel (~> 0.3.1)
58
+ activesupport (6.0.3.2)
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.6)
68
+ colorize
12
69
  json
13
70
  simplecov
14
- url
71
+ colorize (0.8.1)
72
+ concurrent-ruby (1.1.7)
15
73
  crack (0.4.3)
16
74
  safe_yaml (~> 1.0.0)
17
- diff-lcs (1.3)
75
+ crass (1.0.6)
76
+ diff-lcs (1.4.4)
18
77
  docile (1.3.2)
78
+ dry-configurable (0.11.6)
79
+ concurrent-ruby (~> 1.0)
80
+ dry-core (~> 0.4, >= 0.4.7)
81
+ dry-equalizer (~> 0.2)
82
+ dry-container (0.7.2)
83
+ concurrent-ruby (~> 1.0)
84
+ dry-configurable (~> 0.1, >= 0.1.3)
85
+ dry-core (0.4.9)
86
+ concurrent-ruby (~> 1.0)
87
+ dry-equalizer (0.3.0)
88
+ dry-logic (0.4.2)
89
+ dry-container (~> 0.2, >= 0.2.6)
90
+ dry-core (~> 0.2)
91
+ dry-equalizer (~> 0.2)
92
+ dry-types (0.12.3)
93
+ concurrent-ruby (~> 1.0)
94
+ dry-configurable (~> 0.1)
95
+ dry-container (~> 0.3)
96
+ dry-core (~> 0.2, >= 0.2.1)
97
+ dry-equalizer (~> 0.2)
98
+ dry-logic (~> 0.4, >= 0.4.2)
99
+ inflecto (~> 0.0.0, >= 0.0.2)
100
+ dry-validation (0.11.2)
101
+ concurrent-ruby (~> 1.0)
102
+ dry-configurable (~> 0.1, >= 0.1.3)
103
+ dry-core (~> 0.2, >= 0.2.1)
104
+ dry-equalizer (~> 0.2)
105
+ dry-logic (~> 0.4.2)
106
+ dry-types (~> 0.12.0)
107
+ erubi (1.9.0)
108
+ globalid (0.4.2)
109
+ activesupport (>= 4.2.0)
110
+ hanami (1.3.3)
111
+ bundler (>= 1.6, < 3)
112
+ concurrent-ruby (~> 1.0)
113
+ hanami-assets (~> 1.3)
114
+ hanami-cli (~> 0.3)
115
+ hanami-controller (~> 1.3)
116
+ hanami-helpers (~> 1.3)
117
+ hanami-mailer (~> 1.3)
118
+ hanami-router (~> 1.3)
119
+ hanami-utils (~> 1.3)
120
+ hanami-validations (>= 1.3, < 3)
121
+ hanami-view (~> 1.3)
122
+ hanami-assets (1.3.4)
123
+ hanami-helpers (~> 1.3)
124
+ hanami-utils (~> 1.3)
125
+ tilt (~> 2.0, >= 2.0.2)
126
+ hanami-cli (0.3.1)
127
+ concurrent-ruby (~> 1.0)
128
+ hanami-utils (~> 1.3)
129
+ hanami-controller (1.3.3)
130
+ hanami-utils (~> 1.3)
131
+ rack (~> 2.0)
132
+ hanami-helpers (1.3.3)
133
+ hanami-utils (~> 1.3)
134
+ hanami-mailer (1.3.2)
135
+ hanami-utils (~> 1.3)
136
+ mail (~> 2.6)
137
+ tilt (~> 2.0, >= 2.0.1)
138
+ hanami-router (1.3.2)
139
+ hanami-utils (~> 1.3)
140
+ http_router (= 0.11.2)
141
+ rack (~> 2.0)
142
+ hanami-utils (1.3.6)
143
+ concurrent-ruby (~> 1.0)
144
+ transproc (~> 1.0)
145
+ hanami-validations (1.3.6)
146
+ dry-logic (~> 0.4.2, < 0.5)
147
+ dry-validation (~> 0.11, < 0.12)
148
+ hanami-utils (~> 1.3)
149
+ hanami-view (1.3.3)
150
+ hanami-utils (~> 1.3)
151
+ tilt (~> 2.0, >= 2.0.1)
19
152
  hashdiff (1.0.1)
20
- httpclient (2.8.3)
21
- json (2.3.0)
22
- parseconfig (1.0.8)
153
+ http_router (0.11.2)
154
+ rack (>= 1.0.0)
155
+ url_mount (~> 0.2.1)
156
+ i18n (1.8.5)
157
+ concurrent-ruby (~> 1.0)
158
+ inflecto (0.0.2)
159
+ json (2.3.1)
160
+ loofah (2.6.0)
161
+ crass (~> 1.0.2)
162
+ nokogiri (>= 1.5.9)
163
+ mail (2.7.1)
164
+ mini_mime (>= 0.1.1)
165
+ marcel (0.3.3)
166
+ mimemagic (~> 0.3.2)
167
+ method_source (1.0.0)
168
+ mimemagic (0.3.5)
169
+ mini_mime (1.0.2)
170
+ mini_portile2 (2.4.0)
171
+ minitest (5.14.1)
172
+ mustermann (1.1.1)
173
+ ruby2_keywords (~> 0.0.1)
174
+ nio4r (2.5.2)
175
+ nokogiri (1.10.10)
176
+ mini_portile2 (~> 2.4.0)
23
177
  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)
178
+ rack (2.2.3)
179
+ rack-protection (2.0.8.1)
180
+ rack
181
+ rack-test (1.1.0)
182
+ rack (>= 1.0, < 3)
183
+ rails (6.0.3.2)
184
+ actioncable (= 6.0.3.2)
185
+ actionmailbox (= 6.0.3.2)
186
+ actionmailer (= 6.0.3.2)
187
+ actionpack (= 6.0.3.2)
188
+ actiontext (= 6.0.3.2)
189
+ actionview (= 6.0.3.2)
190
+ activejob (= 6.0.3.2)
191
+ activemodel (= 6.0.3.2)
192
+ activerecord (= 6.0.3.2)
193
+ activestorage (= 6.0.3.2)
194
+ activesupport (= 6.0.3.2)
195
+ bundler (>= 1.3.0)
196
+ railties (= 6.0.3.2)
197
+ sprockets-rails (>= 2.0.0)
198
+ rails-dom-testing (2.0.3)
199
+ activesupport (>= 4.2.0)
200
+ nokogiri (>= 1.6)
201
+ rails-html-sanitizer (1.3.0)
202
+ loofah (~> 2.3)
203
+ railties (6.0.3.2)
204
+ actionpack (= 6.0.3.2)
205
+ activesupport (= 6.0.3.2)
206
+ method_source
207
+ rake (>= 0.8.7)
208
+ thor (>= 0.20.3, < 2.0)
209
+ rake (13.0.1)
210
+ rspec (3.9.0)
211
+ rspec-core (~> 3.9.0)
212
+ rspec-expectations (~> 3.9.0)
213
+ rspec-mocks (~> 3.9.0)
214
+ rspec-core (3.9.2)
215
+ rspec-support (~> 3.9.3)
216
+ rspec-expectations (3.9.2)
32
217
  diff-lcs (>= 1.2.0, < 2.0)
33
- rspec-support (~> 3.8.0)
34
- rspec-mocks (3.8.1)
218
+ rspec-support (~> 3.9.0)
219
+ rspec-mocks (3.9.1)
35
220
  diff-lcs (>= 1.2.0, < 2.0)
36
- rspec-support (~> 3.8.0)
37
- rspec-support (3.8.2)
221
+ rspec-support (~> 3.9.0)
222
+ rspec-support (3.9.3)
223
+ ruby2_keywords (0.0.2)
38
224
  safe_yaml (1.0.5)
39
- simplecov (0.18.5)
225
+ simplecov (0.19.0)
40
226
  docile (~> 1.1)
41
227
  simplecov-html (~> 0.11)
42
228
  simplecov-html (0.12.2)
43
- url (0.3.2)
229
+ sinatra (2.0.8.1)
230
+ mustermann (~> 1.0)
231
+ rack (~> 2.0)
232
+ rack-protection (= 2.0.8.1)
233
+ tilt (~> 2.0)
234
+ sprockets (4.0.2)
235
+ concurrent-ruby (~> 1.0)
236
+ rack (> 1, < 3)
237
+ sprockets-rails (3.2.1)
238
+ actionpack (>= 4.0)
239
+ activesupport (>= 4.0)
240
+ sprockets (>= 3.0.0)
241
+ thor (1.0.1)
242
+ thread_safe (0.3.6)
243
+ tilt (2.0.10)
244
+ transproc (1.1.1)
245
+ tzinfo (1.2.7)
246
+ thread_safe (~> 0.1)
247
+ url_mount (0.2.1)
248
+ rack
44
249
  webmock (3.8.3)
45
250
  addressable (>= 2.3.6)
46
251
  crack (>= 0.3.2)
47
252
  hashdiff (>= 0.4.0, < 2.0.0)
253
+ websocket-driver (0.7.3)
254
+ websocket-extensions (>= 0.1.0)
255
+ websocket-extensions (0.1.5)
256
+ zeitwerk (2.4.0)
48
257
 
49
258
  PLATFORMS
50
259
  ruby
@@ -52,11 +261,13 @@ PLATFORMS
52
261
  DEPENDENCIES
53
262
  bundler (~> 2.0)
54
263
  codecov
55
- httpclient
56
- parseconfig
264
+ hanami
265
+ rails
57
266
  rake
58
267
  rspec
59
268
  securenative!
269
+ simplecov
270
+ sinatra
60
271
  webmock
61
272
 
62
273
  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 = 'USER_ID', user_traits = UserTraits('USER_NAME', 'USER_EMAIL'),
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 = 'USER_ID', user_traits = UserTraits('USER_NAME', 'USER_EMAIL'),
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
- def track(request)
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 = 'USER_ID', user_traits = UserTraits('USER_NAME', 'USER_EMAIL'),
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