factory_bot_instrumentation 0.4.0 → 0.5.0
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
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
|