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.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +5 -2
- data/.github/workflows/test.yml +5 -2
- data/.gitignore +3 -1
- data/Gemfile +6 -4
- data/Gemfile.lock +234 -25
- data/README.md +37 -32
- data/lib/api_manager.rb +39 -0
- data/lib/config/configuration_builder.rb +27 -0
- data/lib/config/configuration_manager.rb +56 -0
- data/lib/config/securenative_options.rb +23 -0
- data/lib/context/hanami_context.rb +42 -0
- data/lib/context/rails_context.rb +44 -0
- data/lib/context/securenative_context.rb +67 -0
- data/lib/context/sinatra_context.rb +42 -0
- data/lib/enums/api_route.rb +6 -0
- data/lib/enums/event_types.rb +23 -0
- data/lib/enums/failover_strategy.rb +6 -0
- data/lib/enums/risk_level.rb +7 -0
- data/lib/errors/securenative_config_error.rb +4 -0
- data/lib/errors/securenative_http_error.rb +4 -0
- data/lib/errors/securenative_invalid_options_error.rb +4 -0
- data/lib/errors/securenative_invalid_uri_error.rb +4 -0
- data/lib/errors/securenative_parse_error.rb +4 -0
- data/lib/errors/securenative_sdk_Illegal_state_error.rb +4 -0
- data/lib/errors/securenative_sdk_error.rb +4 -0
- data/lib/event_manager.rb +157 -0
- data/lib/{securenative/http/http_response.rb → http/secure_native_http_response.rb} +4 -2
- data/lib/http/securenative_http_client.rb +50 -0
- data/lib/{securenative/models → models}/client_token.rb +2 -0
- data/lib/{securenative/models → models}/device.rb +3 -1
- data/lib/models/event_options.rb +37 -0
- data/lib/{securenative/models → models}/request_context.rb +7 -4
- data/lib/models/request_options.rb +12 -0
- data/lib/models/sdk_event.rb +49 -0
- data/lib/{securenative/models → models}/user_traits.rb +4 -2
- data/lib/{securenative/models → models}/verify_result.rb +8 -2
- data/lib/securenative.rb +83 -0
- data/lib/utils/date_utils.rb +9 -0
- data/lib/utils/encryption_utils.rb +49 -0
- data/lib/{securenative/utils → utils}/ip_utils.rb +7 -6
- data/lib/utils/request_utils.rb +69 -0
- data/lib/{securenative/logger.rb → utils/secure_native_logger.rb} +5 -3
- data/lib/{securenative/utils → utils}/signature_utils.rb +4 -2
- data/lib/utils/utils.rb +9 -0
- data/lib/utils/version_utils.rb +11 -0
- data/out/production/securenative-ruby/api_manager.rb +39 -0
- data/out/production/securenative-ruby/config/configuration_builder.rb +27 -0
- data/out/production/securenative-ruby/config/configuration_manager.rb +56 -0
- data/out/production/securenative-ruby/config/securenative_options.rb +23 -0
- data/out/production/securenative-ruby/context/hanami_context.rb +42 -0
- data/out/production/securenative-ruby/context/rails_context.rb +44 -0
- data/out/production/securenative-ruby/context/securenative_context.rb +67 -0
- data/out/production/securenative-ruby/context/sinatra_context.rb +42 -0
- data/out/production/securenative-ruby/enums/api_route.rb +6 -0
- data/out/production/securenative-ruby/enums/event_types.rb +23 -0
- data/out/production/securenative-ruby/enums/failover_strategy.rb +6 -0
- data/out/production/securenative-ruby/enums/risk_level.rb +7 -0
- data/out/production/securenative-ruby/errors/securenative_config_error.rb +4 -0
- data/out/production/securenative-ruby/errors/securenative_http_error.rb +4 -0
- data/out/production/securenative-ruby/errors/securenative_invalid_options_error.rb +4 -0
- data/out/production/securenative-ruby/errors/securenative_invalid_uri_error.rb +4 -0
- data/out/production/securenative-ruby/errors/securenative_parse_error.rb +4 -0
- data/out/production/securenative-ruby/errors/securenative_sdk_Illegal_state_error.rb +4 -0
- data/out/production/securenative-ruby/errors/securenative_sdk_error.rb +4 -0
- data/out/production/securenative-ruby/event_manager.rb +157 -0
- data/out/production/securenative-ruby/http/secure_native_http_response.rb +12 -0
- data/out/production/securenative-ruby/http/securenative_http_client.rb +50 -0
- data/out/production/securenative-ruby/models/client_token.rb +12 -0
- data/out/production/securenative-ruby/models/device.rb +10 -0
- data/out/production/securenative-ruby/models/event_options.rb +37 -0
- data/out/production/securenative-ruby/models/request_context.rb +18 -0
- data/out/production/securenative-ruby/models/request_options.rb +12 -0
- data/out/production/securenative-ruby/models/sdk_event.rb +49 -0
- data/out/production/securenative-ruby/models/user_traits.rb +13 -0
- data/out/production/securenative-ruby/models/verify_result.rb +16 -0
- data/out/production/securenative-ruby/securenative.rb +83 -0
- data/out/production/securenative-ruby/utils/date_utils.rb +9 -0
- data/out/production/securenative-ruby/utils/encryption_utils.rb +49 -0
- data/out/production/securenative-ruby/utils/ip_utils.rb +23 -0
- data/out/production/securenative-ruby/utils/request_utils.rb +69 -0
- data/out/production/securenative-ruby/utils/secure_native_logger.rb +44 -0
- data/out/production/securenative-ruby/utils/signature_utils.rb +16 -0
- data/out/production/securenative-ruby/utils/utils.rb +9 -0
- data/out/production/securenative-ruby/utils/version_utils.rb +11 -0
- data/out/test/securenative-ruby/spec_api_manager.rb +87 -0
- data/out/test/securenative-ruby/spec_context_builder.rb +87 -0
- data/out/test/securenative-ruby/spec_date_utils.rb +13 -0
- data/out/test/securenative-ruby/spec_encryption_utils.rb +26 -0
- data/out/test/securenative-ruby/spec_event_manager.rb +93 -0
- data/out/test/securenative-ruby/spec_helper.rb +28 -0
- data/out/test/securenative-ruby/spec_ip_utils.rb +41 -0
- data/out/test/securenative-ruby/spec_request_utils.rb +25 -0
- data/out/test/securenative-ruby/spec_sdk_event.rb +24 -0
- data/out/test/securenative-ruby/spec_securenative.rb +61 -0
- data/out/test/securenative-ruby/spec_securenative_http_client.rb +31 -0
- data/out/test/securenative-ruby/spec_signature_utils.rb +18 -0
- data/out/test/securenative-ruby/spec_version_util.rb +10 -0
- data/securenative.gemspec +2 -2
- metadata +93 -43
- data/.travis.yml +0 -6
- data/VERSION +0 -1
- data/lib/securenative/api_manager.rb +0 -30
- data/lib/securenative/config/configuration_builder.rb +0 -26
- data/lib/securenative/config/configuration_manager.rb +0 -53
- data/lib/securenative/config/securenative_options.rb +0 -18
- data/lib/securenative/context/context_builder.rb +0 -59
- data/lib/securenative/context/securenative_context.rb +0 -14
- data/lib/securenative/enums/api_route.rb +0 -4
- data/lib/securenative/enums/event_types.rb +0 -21
- data/lib/securenative/enums/failover_strategy.rb +0 -4
- data/lib/securenative/enums/risk_level.rb +0 -5
- data/lib/securenative/event_manager.rb +0 -150
- data/lib/securenative/event_options_builder.rb +0 -30
- data/lib/securenative/exceptions/securenative_config_exception.rb +0 -2
- data/lib/securenative/exceptions/securenative_http_exception.rb +0 -2
- data/lib/securenative/exceptions/securenative_invalid_options_exception.rb +0 -2
- data/lib/securenative/exceptions/securenative_invalid_uri_exception.rb +0 -2
- data/lib/securenative/exceptions/securenative_parse_exception.rb +0 -2
- data/lib/securenative/exceptions/securenative_sdk_Illegal_state_exception.rb +0 -2
- data/lib/securenative/exceptions/securenative_sdk_exception.rb +0 -2
- data/lib/securenative/http/securenative_http_client.rb +0 -30
- data/lib/securenative/models/event_options.rb +0 -13
- data/lib/securenative/models/request_options.rb +0 -10
- data/lib/securenative/models/sdk_event.rb +0 -25
- data/lib/securenative/securenative.iml +0 -9
- data/lib/securenative/securenative.rb +0 -82
- data/lib/securenative/utils/date_utils.rb +0 -7
- data/lib/securenative/utils/encryption_utils.rb +0 -38
- data/lib/securenative/utils/request_utils.rb +0 -21
- data/lib/securenative/utils/utils.rb +0 -9
- data/lib/securenative/utils/version_utils.rb +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7ba285b1ac9a68c9cb1143ab595a4c052636e47b8d4cc39e16821e0582e06a62
|
4
|
+
data.tar.gz: c6295e963d7440c4dc8be4046077cafb4af96311f500fa2220717bf726b0ffba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f78c7385e543d75dd106611eb77f71004fcb12d10702ae99a02af27cf3273bd45fcb2d5c7725a7001f143973f1cf2d70c19b3d57e3222d0b7965a40ec343f2c
|
7
|
+
data.tar.gz: fada20df309348b5e74a8886fb5855d51aed1ad4ba2245dd23df60f409b1fd6e3bc11efd829b4b21a2b0fa9cf2dac45c08628f088e49879a09a45853aee52ef7
|
data/.github/workflows/ci.yml
CHANGED
@@ -10,7 +10,10 @@ on:
|
|
10
10
|
jobs:
|
11
11
|
test:
|
12
12
|
name: CI
|
13
|
-
runs-on:
|
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:
|
27
|
+
run: bundle exec rspec spec --pattern **/spec_*.rb
|
25
28
|
|
26
29
|
- name: Notify slack success
|
27
30
|
if: success()
|
data/.github/workflows/test.yml
CHANGED
@@ -9,7 +9,10 @@ on:
|
|
9
9
|
jobs:
|
10
10
|
test:
|
11
11
|
name: Testing
|
12
|
-
runs-on:
|
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:
|
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 "
|
7
|
-
gem "
|
8
|
-
gem "webmock"
|
9
|
-
gem "
|
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
|
data/Gemfile.lock
CHANGED
@@ -1,50 +1,257 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
securenative (0.1.
|
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
|
-
|
66
|
+
builder (3.2.4)
|
67
|
+
codecov (0.2.11)
|
12
68
|
json
|
13
69
|
simplecov
|
14
|
-
|
70
|
+
concurrent-ruby (1.1.7)
|
15
71
|
crack (0.4.3)
|
16
72
|
safe_yaml (~> 1.0.0)
|
17
|
-
|
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
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
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.
|
34
|
-
rspec-mocks (3.
|
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.
|
37
|
-
rspec-support (3.
|
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.
|
223
|
+
simplecov (0.19.0)
|
40
224
|
docile (~> 1.1)
|
41
225
|
simplecov-html (~> 0.11)
|
42
226
|
simplecov-html (0.12.2)
|
43
|
-
|
44
|
-
|
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
|
-
|
56
|
-
|
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.
|
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
|
-
|
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 '
|
92
|
-
require '
|
93
|
-
require '
|
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
|
-
|
98
|
-
|
99
|
-
context =
|
100
|
-
|
101
|
-
|
102
|
-
event_options =
|
103
|
-
|
104
|
-
|
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 '
|
114
|
-
require '
|
115
|
-
require '
|
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 =
|
121
|
-
|
122
|
-
event_options =
|
123
|
-
|
124
|
-
|
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 '
|
137
|
-
require '
|
138
|
-
require '
|
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 =
|
148
|
+
context = SecureNativeContext.from_http_request(request)
|
144
149
|
|
145
|
-
event_options =
|
146
|
-
|
147
|
-
|
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
|