factory_bot_instrumentation 0.4.0 → 0.5.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
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 98a7a69daca8d49bb11b7145e050b3625c5f5638cc961fc3e91377300890c1db
|
4
|
+
data.tar.gz: ed9d4f5a254eb60cb0241fffbc32a43cfcd6ff2a44ddd476fc299286a37b488b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6df53693fc478ac1ef3895d086efb6b86c7654b16a392fc6c7daa828e36918e1a67706bbc7c00a2f219394b092d9fa8f99bd608c57894e16d81274bb5e5e8bbc
|
7
|
+
data.tar.gz: d12ec3b074a2b0c1f7a33ea9725d13d28a4095d01e36d68727b057869d9904a3ea9052ad7247221197f2c1d5087e27be29509a71443b34d7edd8da0c7d254267
|
data/CHANGELOG.md
CHANGED
data/Makefile
CHANGED
data/README.md
CHANGED
@@ -271,8 +271,8 @@ ease the integration. But as you can imagine the Instrumentation engine opens
|
|
271
271
|
up some risky possibilities to your application. This is fine for a canary or
|
272
272
|
development environment, but not for a production environment.
|
273
273
|
|
274
|
-
There
|
275
|
-
|
274
|
+
There are currently multiple ways to secure the Instrumentation engine. You can
|
275
|
+
completely disable it on your production environment by reconfiguring your
|
276
276
|
routes like this:
|
277
277
|
|
278
278
|
```ruby
|
@@ -283,8 +283,17 @@ Rails.application.routes.draw do
|
|
283
283
|
end
|
284
284
|
```
|
285
285
|
|
286
|
-
Another option would be an HTTP basic authentication
|
287
|
-
|
286
|
+
Another option would be an HTTP basic authentication. Just configure the gem
|
287
|
+
like this on the initializer:
|
288
|
+
|
289
|
+
```ruby
|
290
|
+
FactoryBot::Instrumentation.configure do |conf|
|
291
|
+
conf.before_action = proc do |controller|
|
292
|
+
basic_auth(username: ENV.fetch('INSTRUMENTATION_USERNAME'),
|
293
|
+
password: ENV.fetch('INSTRUMENTATION_PASSWORD'))
|
294
|
+
end
|
295
|
+
end
|
296
|
+
```
|
288
297
|
|
289
298
|
#### Global settings
|
290
299
|
|
@@ -307,6 +316,12 @@ FactoryBot::Instrumentation.configure do |conf|
|
|
307
316
|
controller.render plain: entity.to_json,
|
308
317
|
content_type: 'application/json'
|
309
318
|
end
|
319
|
+
# By default we do not perform any custom +before_action+ filters on the
|
320
|
+
# instrumentation controllers, with this option you can implement your
|
321
|
+
# custom logic like authentication
|
322
|
+
conf.before_action = proc do |controller|
|
323
|
+
# do your custom logic here
|
324
|
+
end
|
310
325
|
end
|
311
326
|
```
|
312
327
|
|
@@ -3,5 +3,33 @@
|
|
3
3
|
module FactoryBot::Instrumentation
|
4
4
|
# A base engine application controller.
|
5
5
|
class ApplicationController < ActionController::API
|
6
|
+
# Extend our core functionality to support easy authentication logics
|
7
|
+
include ActionController::HttpAuthentication::Basic::ControllerMethods
|
8
|
+
include ActionController::HttpAuthentication::Digest::ControllerMethods
|
9
|
+
include ActionController::HttpAuthentication::Token::ControllerMethods
|
10
|
+
|
11
|
+
# Allow the users to implement additional instrumentation-wide before
|
12
|
+
# action logic, like authentication
|
13
|
+
before_action do |controller|
|
14
|
+
if FactoryBot::Instrumentation.configuration.before_action
|
15
|
+
instance_eval &FactoryBot::Instrumentation.configuration.before_action
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
protected
|
20
|
+
|
21
|
+
# A simple shortcut for Basic Auth on Rails 4.2+. Just configure the
|
22
|
+
# username and password and you're ready to check the current request.
|
23
|
+
#
|
24
|
+
# @param username [String] the required user name
|
25
|
+
# @param password [String] the required password of the user
|
26
|
+
# @param realm [String] the authentication realm
|
27
|
+
def basic_auth(username:, password:, realm: 'Instrumentation')
|
28
|
+
authenticate_or_request_with_http_basic(realm) \
|
29
|
+
do |given_name, given_password|
|
30
|
+
ActiveSupport::SecurityUtils.secure_compare(given_name, username) &
|
31
|
+
ActiveSupport::SecurityUtils.secure_compare(given_password, password)
|
32
|
+
end
|
33
|
+
end
|
6
34
|
end
|
7
35
|
end
|
@@ -24,6 +24,11 @@ module FactoryBot
|
|
24
24
|
content_type: 'application/json'
|
25
25
|
end
|
26
26
|
end
|
27
|
+
|
28
|
+
# By default we do not perform any custom +before_action+ filters on the
|
29
|
+
# instrumentation controllers, with this option you can implement your
|
30
|
+
# custom logic like authentication
|
31
|
+
config_accessor(:before_action) { nil }
|
27
32
|
end
|
28
33
|
end
|
29
34
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: factory_bot_instrumentation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hermann Mayer
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-01-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -203,7 +203,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
203
203
|
- !ruby/object:Gem::Version
|
204
204
|
version: '0'
|
205
205
|
requirements: []
|
206
|
-
rubygems_version: 3.
|
206
|
+
rubygems_version: 3.1.2
|
207
207
|
signing_key:
|
208
208
|
specification_version: 4
|
209
209
|
summary: Allow your testers to generate test data on demand
|