policy_decision_point 0.1.0 → 0.2.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 +4 -4
- data/LICENSE +21 -0
- data/README.md +114 -1
- data/img/data-flow.png +0 -0
- data/img/logo-build.png +0 -0
- data/lib/policy_decision_point/version.rb +1 -1
- data/policy_decision_point.gemspec +2 -1
- metadata +7 -97
- data/example/Gemfile +0 -65
- data/example/Gemfile.lock +0 -273
- data/example/README.md +0 -1
- data/example/Rakefile +0 -6
- data/example/app/assets/config/manifest.js +0 -2
- data/example/app/assets/images/.keep +0 -0
- data/example/app/assets/stylesheets/application.css +0 -15
- data/example/app/channels/application_cable/channel.rb +0 -4
- data/example/app/channels/application_cable/connection.rb +0 -4
- data/example/app/controllers/application_controller.rb +0 -2
- data/example/app/controllers/concerns/.keep +0 -0
- data/example/app/controllers/rpc/hello_world/service.proto +0 -15
- data/example/app/controllers/rpc/hello_world/service_pb.rb +0 -22
- data/example/app/controllers/rpc/hello_world/service_twirp.rb +0 -17
- data/example/app/controllers/rpc/hello_world_server.rb +0 -15
- data/example/app/helpers/application_helper.rb +0 -2
- data/example/app/javascript/channels/consumer.js +0 -6
- data/example/app/javascript/channels/index.js +0 -5
- data/example/app/javascript/packs/application.js +0 -13
- data/example/app/jobs/application_job.rb +0 -7
- data/example/app/mailers/application_mailer.rb +0 -4
- data/example/app/models/application_record.rb +0 -3
- data/example/app/models/concerns/.keep +0 -0
- data/example/app/views/layouts/application.html.erb +0 -16
- data/example/app/views/layouts/mailer.html.erb +0 -13
- data/example/app/views/layouts/mailer.text.erb +0 -1
- data/example/babel.config.js +0 -70
- data/example/bin/bundle +0 -114
- data/example/bin/rails +0 -27
- data/example/bin/rake +0 -5
- data/example/bin/setup +0 -36
- data/example/bin/spring +0 -14
- data/example/bin/webpack +0 -18
- data/example/bin/webpack-dev-server +0 -18
- data/example/bin/yarn +0 -17
- data/example/config.ru +0 -6
- data/example/config/application.rb +0 -25
- data/example/config/boot.rb +0 -4
- data/example/config/cable.yml +0 -10
- data/example/config/credentials.yml.enc +0 -1
- data/example/config/database.yml +0 -25
- data/example/config/environment.rb +0 -5
- data/example/config/environments/development.rb +0 -79
- data/example/config/environments/production.rb +0 -120
- data/example/config/environments/test.rb +0 -60
- data/example/config/initializers/application_controller_renderer.rb +0 -8
- data/example/config/initializers/assets.rb +0 -14
- data/example/config/initializers/backtrace_silencers.rb +0 -8
- data/example/config/initializers/content_security_policy.rb +0 -30
- data/example/config/initializers/cookies_serializer.rb +0 -5
- data/example/config/initializers/filter_parameter_logging.rb +0 -6
- data/example/config/initializers/inflections.rb +0 -16
- data/example/config/initializers/mime_types.rb +0 -4
- data/example/config/initializers/permissions_policy.rb +0 -11
- data/example/config/initializers/twirp_rails.rb +0 -4
- data/example/config/initializers/wrap_parameters.rb +0 -14
- data/example/config/locales/en.yml +0 -33
- data/example/config/master.key +0 -1
- data/example/config/puma.rb +0 -43
- data/example/config/routes.rb +0 -4
- data/example/config/spring.rb +0 -6
- data/example/config/storage.yml +0 -34
- data/example/config/webpack/development.js +0 -5
- data/example/config/webpack/environment.js +0 -3
- data/example/config/webpack/production.js +0 -5
- data/example/config/webpack/test.js +0 -5
- data/example/config/webpacker.yml +0 -92
- data/example/extensions/x86_64-linux/3.0.0/ffi-1.15.3/ffi_c.so +0 -0
- data/example/extensions/x86_64-linux/3.0.0/ffi-1.15.3/gem.build_complete +0 -0
- data/example/extensions/x86_64-linux/3.0.0/ffi-1.15.3/gem_make.out +0 -165
- data/example/extensions/x86_64-linux/3.0.0/ffi-1.15.3/mkmf.log +0 -132
- data/example/package.json +0 -17
- data/example/postcss.config.js +0 -12
- data/example/public/404.html +0 -67
- data/example/public/422.html +0 -67
- data/example/public/500.html +0 -66
- data/example/public/apple-touch-icon-precomposed.png +0 -0
- data/example/public/apple-touch-icon.png +0 -0
- data/example/public/favicon.ico +0 -0
- data/example/public/robots.txt +0 -1
- data/example/storage/.keep +0 -0
- data/example/test/application_system_test_case.rb +0 -5
- data/example/test/channels/application_cable/connection_test.rb +0 -11
- data/example/test/controllers/.keep +0 -0
- data/example/test/fixtures/files/.keep +0 -0
- data/example/test/helpers/.keep +0 -0
- data/example/test/integration/.keep +0 -0
- data/example/test/mailers/.keep +0 -0
- data/example/test/models/.keep +0 -0
- data/example/test/system/.keep +0 -0
- data/example/test/test_helper.rb +0 -13
- data/example/tmp/cache/bootsnap/load-path-cache +0 -0
- data/example/vendor/.keep +0 -0
- data/example/yarn.lock +0 -6888
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5c4bcebf8e4eb279a810b3303033a131efe06d6268e78d8a7ac39d9a1b36a1fe
|
|
4
|
+
data.tar.gz: 14ff5094bf0d70042e048eacc452ebec97e1349f5208477bb34306b9615144e0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0a701718ed6afdda8322a617a8f42cf8d7fc7eefad589bac0d8f8da8d7414e41ffdb1c86d0ac41bc7dd8ee59983cb86853393586272eef6a81dc7b16b328b4d7
|
|
7
|
+
data.tar.gz: 5b1bf1e68526683a41588abd0730f8f66f8159f3c51ddbd733a4f64302d5aa81ea0fbec81c72e106a2b6e6c6bd8f5fafdfa3c59324794a85c8cf754418051859
|
data/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2021 Build.Security
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
data/README.md
CHANGED
|
@@ -1 +1,114 @@
|
|
|
1
|
-
# opa-rails-middleware
|
|
1
|
+
# opa-rails-middleware
|
|
2
|
+
|
|
3
|
+
<p align="center"><img src="img/logo-build.png" class="center" alt="build-logo" width="30%"/></p>
|
|
4
|
+
|
|
5
|
+
## Abstract
|
|
6
|
+
[build.security](https://docs.build.security/) provides simple development and management for your organization's authorization policy.
|
|
7
|
+
*opa-rails-middleware* is a Ruby Gem that performs authorization requests against build.security PDPs (Policy Decision Point)/[OPA](https://www.openpolicyagent.org/).
|
|
8
|
+
|
|
9
|
+
## Data Flow
|
|
10
|
+
<p align="center"> <img src="img/data-flow.png" alt="drawing" width="60%"/></p>
|
|
11
|
+
|
|
12
|
+
## Usage
|
|
13
|
+
Before you start we recommend completing the onboarding tutorial.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
**Important note**
|
|
17
|
+
|
|
18
|
+
To simplify the setup process, the following example uses a local [build.security PDP instance](https://docs.build.security/policy-decision-points-pdp/pdp-deployments/standalone-docker-1).
|
|
19
|
+
If you are already familiar with how to run your PDP, You can also run a PDP on your environment (Dev/Prod, etc).
|
|
20
|
+
|
|
21
|
+
In that case, don't forget to change the **hostname** and **port** in your code.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
### Installation
|
|
25
|
+
|
|
26
|
+
Install the Gem directly
|
|
27
|
+
```
|
|
28
|
+
gem install policy_decision_point
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Or add it to your _Gemfile_
|
|
32
|
+
```
|
|
33
|
+
gem "policy_decision_point"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
and run `bundle install`
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
### Add middleware to your Rails application
|
|
40
|
+
|
|
41
|
+
To intercept and authorize requests being made to your Rails application, add the following line to your `config/application.rb` file, under the `Application` class:
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
config.middleware.use(PolicyDecisionPoint::PDP)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
This will initialize the middleware with sensible defaults. To initialize it with different configuration values:
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
config.middleware.use(PolicyDecisionPoint::PDP, port: 7171, policy_path: 'mypolicy/allow')
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
This will initialize the middleware and tell it that the PDP server is bound to port `7171` instead of the default `8181`, and that the rule that decides whether to authorize requests is `allow` in the policy package `mypolicy`.
|
|
54
|
+
|
|
55
|
+
You can see how this is done [in the example](/example/config/application.rb).
|
|
56
|
+
|
|
57
|
+
### Configuration
|
|
58
|
+
|
|
59
|
+
1. `hostname` - The hostname of the Policy Decision Point (PDP) **Default is localhost**
|
|
60
|
+
2. `port` - The port at which the PDP service is serving authz decisions **Default is 8181**
|
|
61
|
+
3. `policy_path` - Full path to the policy (including the rule) that decides whether requests should be authorized **Default is /authz/allow**
|
|
62
|
+
4. `retry_max_attempts` - the maximum number of retry attempts in case a failure occurs. **Default is 2**.
|
|
63
|
+
5. `read_timeout_milliseconds` - Read timeout for requests in milliseconds. **Default is 5000**
|
|
64
|
+
6. `connection_timeout_milliseconds` - Connection timeout in milliseconds. **Default is 5000**
|
|
65
|
+
7. `retry_backoff_milliseconds` - The number of milliseconds to wait between two consecutive retry attempts. **Default is 250**
|
|
66
|
+
|
|
67
|
+
[How to get your pdp's hostname and port?](https://docs.build.security/policy-decision-points-pdp#pdp-instances-section)
|
|
68
|
+
|
|
69
|
+
### PDP request/response example
|
|
70
|
+
|
|
71
|
+
This is what the input received by the PDP looks like.
|
|
72
|
+
|
|
73
|
+
Note that the headers are normalized by Rack/Rails: they are uppercase, use underscores, and have prefixes.
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
{
|
|
77
|
+
"request": {
|
|
78
|
+
"headers": {
|
|
79
|
+
"CONTENT_LENGTH": "7",
|
|
80
|
+
"CONTENT_TYPE": "application/protobuf",
|
|
81
|
+
"HTTP_ACCEPT": "*/*",
|
|
82
|
+
"HTTP_ACCEPT_ENCODING": "gzip;q=1.0,deflate;q=0.6,identity;q=0.3",
|
|
83
|
+
"HTTP_HOST": "9.9.9.9:1234",
|
|
84
|
+
"HTTP_IF_MODIFIED_SINCE": "",
|
|
85
|
+
"HTTP_IF_NONE_MATCH": "",
|
|
86
|
+
"HTTP_USER_AGENT": "Faraday v1.4.3",
|
|
87
|
+
"HTTP_VERSION": "HTTP/1.1"
|
|
88
|
+
},
|
|
89
|
+
"method": "POST",
|
|
90
|
+
"path": "/twirp/example.hello_world.HelloWorld/Hello",
|
|
91
|
+
"query": {
|
|
92
|
+
"key": "value"
|
|
93
|
+
},
|
|
94
|
+
"scheme": "http"
|
|
95
|
+
},
|
|
96
|
+
"source": {
|
|
97
|
+
"ipAddress": "8.8.8.8",
|
|
98
|
+
"port": 1234
|
|
99
|
+
},
|
|
100
|
+
"destination": {
|
|
101
|
+
"ipAddress": "9.9.9.9",
|
|
102
|
+
"port": 1234
|
|
103
|
+
},
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
If everything works well the middleware receives the following response from the PDP.
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
{
|
|
111
|
+
"decision_id":"ef414180-05bd-4817-9634-7d1537d5a657",
|
|
112
|
+
"result":true
|
|
113
|
+
}
|
|
114
|
+
```
|
data/img/data-flow.png
ADDED
|
Binary file
|
data/img/logo-build.png
ADDED
|
Binary file
|
|
@@ -7,6 +7,7 @@ Gem::Specification.new do |spec|
|
|
|
7
7
|
spec.version = PolicyDecisionPoint::VERSION
|
|
8
8
|
spec.authors = ["Yash Tewari"]
|
|
9
9
|
spec.email = ["yashtewari1996@gmail.com"]
|
|
10
|
+
spec.licenses = ["MIT"]
|
|
10
11
|
|
|
11
12
|
spec.summary = "Rails middleware that authorizes incoming requests against a Policy Decision Point, such as an Open Policy Agent server"
|
|
12
13
|
# spec.description = "TODO: Write a longer description or delete this line."
|
|
@@ -19,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
|
19
20
|
# Specify which files should be added to the gem when it is released.
|
|
20
21
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
|
21
22
|
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
|
22
|
-
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
|
|
23
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|example|spec|features)/}) }
|
|
23
24
|
end
|
|
24
25
|
|
|
25
26
|
spec.require_paths = ["lib"]
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: policy_decision_point
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Yash Tewari
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-
|
|
11
|
+
date: 2021-08-18 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description:
|
|
14
14
|
email:
|
|
@@ -23,6 +23,7 @@ files:
|
|
|
23
23
|
- ".rubocop.yml"
|
|
24
24
|
- ".ruby-version"
|
|
25
25
|
- Gemfile
|
|
26
|
+
- LICENSE
|
|
26
27
|
- README.md
|
|
27
28
|
- Rakefile
|
|
28
29
|
- bin/console
|
|
@@ -34,106 +35,15 @@ files:
|
|
|
34
35
|
- bin/ruby-parse
|
|
35
36
|
- bin/ruby-rewrite
|
|
36
37
|
- bin/setup
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
- example/README.md
|
|
40
|
-
- example/Rakefile
|
|
41
|
-
- example/app/assets/config/manifest.js
|
|
42
|
-
- example/app/assets/images/.keep
|
|
43
|
-
- example/app/assets/stylesheets/application.css
|
|
44
|
-
- example/app/channels/application_cable/channel.rb
|
|
45
|
-
- example/app/channels/application_cable/connection.rb
|
|
46
|
-
- example/app/controllers/application_controller.rb
|
|
47
|
-
- example/app/controllers/concerns/.keep
|
|
48
|
-
- example/app/controllers/rpc/hello_world/service.proto
|
|
49
|
-
- example/app/controllers/rpc/hello_world/service_pb.rb
|
|
50
|
-
- example/app/controllers/rpc/hello_world/service_twirp.rb
|
|
51
|
-
- example/app/controllers/rpc/hello_world_server.rb
|
|
52
|
-
- example/app/helpers/application_helper.rb
|
|
53
|
-
- example/app/javascript/channels/consumer.js
|
|
54
|
-
- example/app/javascript/channels/index.js
|
|
55
|
-
- example/app/javascript/packs/application.js
|
|
56
|
-
- example/app/jobs/application_job.rb
|
|
57
|
-
- example/app/mailers/application_mailer.rb
|
|
58
|
-
- example/app/models/application_record.rb
|
|
59
|
-
- example/app/models/concerns/.keep
|
|
60
|
-
- example/app/views/layouts/application.html.erb
|
|
61
|
-
- example/app/views/layouts/mailer.html.erb
|
|
62
|
-
- example/app/views/layouts/mailer.text.erb
|
|
63
|
-
- example/babel.config.js
|
|
64
|
-
- example/bin/bundle
|
|
65
|
-
- example/bin/rails
|
|
66
|
-
- example/bin/rake
|
|
67
|
-
- example/bin/setup
|
|
68
|
-
- example/bin/spring
|
|
69
|
-
- example/bin/webpack
|
|
70
|
-
- example/bin/webpack-dev-server
|
|
71
|
-
- example/bin/yarn
|
|
72
|
-
- example/config.ru
|
|
73
|
-
- example/config/application.rb
|
|
74
|
-
- example/config/boot.rb
|
|
75
|
-
- example/config/cable.yml
|
|
76
|
-
- example/config/credentials.yml.enc
|
|
77
|
-
- example/config/database.yml
|
|
78
|
-
- example/config/environment.rb
|
|
79
|
-
- example/config/environments/development.rb
|
|
80
|
-
- example/config/environments/production.rb
|
|
81
|
-
- example/config/environments/test.rb
|
|
82
|
-
- example/config/initializers/application_controller_renderer.rb
|
|
83
|
-
- example/config/initializers/assets.rb
|
|
84
|
-
- example/config/initializers/backtrace_silencers.rb
|
|
85
|
-
- example/config/initializers/content_security_policy.rb
|
|
86
|
-
- example/config/initializers/cookies_serializer.rb
|
|
87
|
-
- example/config/initializers/filter_parameter_logging.rb
|
|
88
|
-
- example/config/initializers/inflections.rb
|
|
89
|
-
- example/config/initializers/mime_types.rb
|
|
90
|
-
- example/config/initializers/permissions_policy.rb
|
|
91
|
-
- example/config/initializers/twirp_rails.rb
|
|
92
|
-
- example/config/initializers/wrap_parameters.rb
|
|
93
|
-
- example/config/locales/en.yml
|
|
94
|
-
- example/config/master.key
|
|
95
|
-
- example/config/puma.rb
|
|
96
|
-
- example/config/routes.rb
|
|
97
|
-
- example/config/spring.rb
|
|
98
|
-
- example/config/storage.yml
|
|
99
|
-
- example/config/webpack/development.js
|
|
100
|
-
- example/config/webpack/environment.js
|
|
101
|
-
- example/config/webpack/production.js
|
|
102
|
-
- example/config/webpack/test.js
|
|
103
|
-
- example/config/webpacker.yml
|
|
104
|
-
- example/extensions/x86_64-linux/3.0.0/ffi-1.15.3/ffi_c.so
|
|
105
|
-
- example/extensions/x86_64-linux/3.0.0/ffi-1.15.3/gem.build_complete
|
|
106
|
-
- example/extensions/x86_64-linux/3.0.0/ffi-1.15.3/gem_make.out
|
|
107
|
-
- example/extensions/x86_64-linux/3.0.0/ffi-1.15.3/mkmf.log
|
|
108
|
-
- example/package.json
|
|
109
|
-
- example/postcss.config.js
|
|
110
|
-
- example/public/404.html
|
|
111
|
-
- example/public/422.html
|
|
112
|
-
- example/public/500.html
|
|
113
|
-
- example/public/apple-touch-icon-precomposed.png
|
|
114
|
-
- example/public/apple-touch-icon.png
|
|
115
|
-
- example/public/favicon.ico
|
|
116
|
-
- example/public/robots.txt
|
|
117
|
-
- example/storage/.keep
|
|
118
|
-
- example/test/application_system_test_case.rb
|
|
119
|
-
- example/test/channels/application_cable/connection_test.rb
|
|
120
|
-
- example/test/controllers/.keep
|
|
121
|
-
- example/test/fixtures/files/.keep
|
|
122
|
-
- example/test/helpers/.keep
|
|
123
|
-
- example/test/integration/.keep
|
|
124
|
-
- example/test/mailers/.keep
|
|
125
|
-
- example/test/models/.keep
|
|
126
|
-
- example/test/system/.keep
|
|
127
|
-
- example/test/test_helper.rb
|
|
128
|
-
- example/tmp/cache/bootsnap/load-path-cache
|
|
129
|
-
- example/vendor/.keep
|
|
130
|
-
- example/yarn.lock
|
|
38
|
+
- img/data-flow.png
|
|
39
|
+
- img/logo-build.png
|
|
131
40
|
- lib/policy_decision_point.rb
|
|
132
41
|
- lib/policy_decision_point/pdp.rb
|
|
133
42
|
- lib/policy_decision_point/version.rb
|
|
134
43
|
- policy_decision_point.gemspec
|
|
135
44
|
homepage: https://build.security
|
|
136
|
-
licenses:
|
|
45
|
+
licenses:
|
|
46
|
+
- MIT
|
|
137
47
|
metadata:
|
|
138
48
|
homepage_uri: https://build.security
|
|
139
49
|
source_code_uri: https://github.com/build-security/opa-rails-middleware
|
data/example/Gemfile
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
source 'https://rubygems.org'
|
|
2
|
-
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
|
3
|
-
|
|
4
|
-
ruby '3.0.1'
|
|
5
|
-
|
|
6
|
-
# USER DEFINED
|
|
7
|
-
gem 'faraday'
|
|
8
|
-
gem 'aws-sdk-ec2'
|
|
9
|
-
gem 'aws-sdk-iam'
|
|
10
|
-
gem 'jwt'
|
|
11
|
-
|
|
12
|
-
gem 'twirp-rails'
|
|
13
|
-
gem "webrick"
|
|
14
|
-
|
|
15
|
-
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails', branch: 'main'
|
|
16
|
-
gem 'rails', '~> 6.1.3', '>= 6.1.3.2'
|
|
17
|
-
# Use sqlite3 as the database for Active Record
|
|
18
|
-
gem 'sqlite3', '~> 1.4'
|
|
19
|
-
# Use Puma as the app server
|
|
20
|
-
gem 'puma', '~> 5.0'
|
|
21
|
-
# Use SCSS for stylesheets
|
|
22
|
-
gem 'sass-rails', '>= 6'
|
|
23
|
-
# Transpile app-like JavaScript. Read more: https://github.com/rails/webpacker
|
|
24
|
-
gem 'webpacker', '~> 5.0'
|
|
25
|
-
# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
|
|
26
|
-
gem 'turbolinks', '~> 5'
|
|
27
|
-
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
|
|
28
|
-
gem 'jbuilder', '~> 2.7'
|
|
29
|
-
# Use Redis adapter to run Action Cable in production
|
|
30
|
-
# gem 'redis', '~> 4.0'
|
|
31
|
-
# Use Active Model has_secure_password
|
|
32
|
-
# gem 'bcrypt', '~> 3.1.7'
|
|
33
|
-
|
|
34
|
-
# Use Active Storage variant
|
|
35
|
-
# gem 'image_processing', '~> 1.2'
|
|
36
|
-
|
|
37
|
-
# Reduces boot times through caching; required in config/boot.rb
|
|
38
|
-
gem 'bootsnap', '>= 1.4.4', require: false
|
|
39
|
-
|
|
40
|
-
group :development, :test do
|
|
41
|
-
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
|
|
42
|
-
gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
group :development do
|
|
46
|
-
# Access an interactive console on exception pages or by calling 'console' anywhere in the code.
|
|
47
|
-
gem 'web-console', '>= 4.1.0'
|
|
48
|
-
# Display performance information such as SQL time and flame graphs for each request in your browser.
|
|
49
|
-
# Can be configured to work on production as well see: https://github.com/MiniProfiler/rack-mini-profiler/blob/master/README.md
|
|
50
|
-
gem 'rack-mini-profiler', '~> 2.0'
|
|
51
|
-
gem 'listen', '~> 3.3'
|
|
52
|
-
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
|
|
53
|
-
gem 'spring'
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
group :test do
|
|
57
|
-
# Adds support for Capybara system testing and selenium driver
|
|
58
|
-
gem 'capybara', '>= 3.26'
|
|
59
|
-
gem 'selenium-webdriver'
|
|
60
|
-
# Easy installation and use of web drivers to run system tests with browsers
|
|
61
|
-
gem 'webdrivers'
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
|
|
65
|
-
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
|
data/example/Gemfile.lock
DELETED
|
@@ -1,273 +0,0 @@
|
|
|
1
|
-
GEM
|
|
2
|
-
remote: https://rubygems.org/
|
|
3
|
-
specs:
|
|
4
|
-
actioncable (6.1.4)
|
|
5
|
-
actionpack (= 6.1.4)
|
|
6
|
-
activesupport (= 6.1.4)
|
|
7
|
-
nio4r (~> 2.0)
|
|
8
|
-
websocket-driver (>= 0.6.1)
|
|
9
|
-
actionmailbox (6.1.4)
|
|
10
|
-
actionpack (= 6.1.4)
|
|
11
|
-
activejob (= 6.1.4)
|
|
12
|
-
activerecord (= 6.1.4)
|
|
13
|
-
activestorage (= 6.1.4)
|
|
14
|
-
activesupport (= 6.1.4)
|
|
15
|
-
mail (>= 2.7.1)
|
|
16
|
-
actionmailer (6.1.4)
|
|
17
|
-
actionpack (= 6.1.4)
|
|
18
|
-
actionview (= 6.1.4)
|
|
19
|
-
activejob (= 6.1.4)
|
|
20
|
-
activesupport (= 6.1.4)
|
|
21
|
-
mail (~> 2.5, >= 2.5.4)
|
|
22
|
-
rails-dom-testing (~> 2.0)
|
|
23
|
-
actionpack (6.1.4)
|
|
24
|
-
actionview (= 6.1.4)
|
|
25
|
-
activesupport (= 6.1.4)
|
|
26
|
-
rack (~> 2.0, >= 2.0.9)
|
|
27
|
-
rack-test (>= 0.6.3)
|
|
28
|
-
rails-dom-testing (~> 2.0)
|
|
29
|
-
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
|
30
|
-
actiontext (6.1.4)
|
|
31
|
-
actionpack (= 6.1.4)
|
|
32
|
-
activerecord (= 6.1.4)
|
|
33
|
-
activestorage (= 6.1.4)
|
|
34
|
-
activesupport (= 6.1.4)
|
|
35
|
-
nokogiri (>= 1.8.5)
|
|
36
|
-
actionview (6.1.4)
|
|
37
|
-
activesupport (= 6.1.4)
|
|
38
|
-
builder (~> 3.1)
|
|
39
|
-
erubi (~> 1.4)
|
|
40
|
-
rails-dom-testing (~> 2.0)
|
|
41
|
-
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
|
42
|
-
activejob (6.1.4)
|
|
43
|
-
activesupport (= 6.1.4)
|
|
44
|
-
globalid (>= 0.3.6)
|
|
45
|
-
activemodel (6.1.4)
|
|
46
|
-
activesupport (= 6.1.4)
|
|
47
|
-
activerecord (6.1.4)
|
|
48
|
-
activemodel (= 6.1.4)
|
|
49
|
-
activesupport (= 6.1.4)
|
|
50
|
-
activestorage (6.1.4)
|
|
51
|
-
actionpack (= 6.1.4)
|
|
52
|
-
activejob (= 6.1.4)
|
|
53
|
-
activerecord (= 6.1.4)
|
|
54
|
-
activesupport (= 6.1.4)
|
|
55
|
-
marcel (~> 1.0.0)
|
|
56
|
-
mini_mime (>= 1.1.0)
|
|
57
|
-
activesupport (6.1.4)
|
|
58
|
-
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
59
|
-
i18n (>= 1.6, < 2)
|
|
60
|
-
minitest (>= 5.1)
|
|
61
|
-
tzinfo (~> 2.0)
|
|
62
|
-
zeitwerk (~> 2.3)
|
|
63
|
-
addressable (2.7.0)
|
|
64
|
-
public_suffix (>= 2.0.2, < 5.0)
|
|
65
|
-
aws-eventstream (1.1.1)
|
|
66
|
-
aws-partitions (1.472.0)
|
|
67
|
-
aws-sdk-core (3.115.0)
|
|
68
|
-
aws-eventstream (~> 1, >= 1.0.2)
|
|
69
|
-
aws-partitions (~> 1, >= 1.239.0)
|
|
70
|
-
aws-sigv4 (~> 1.1)
|
|
71
|
-
jmespath (~> 1.0)
|
|
72
|
-
aws-sdk-ec2 (1.245.0)
|
|
73
|
-
aws-sdk-core (~> 3, >= 3.112.0)
|
|
74
|
-
aws-sigv4 (~> 1.1)
|
|
75
|
-
aws-sdk-iam (1.55.0)
|
|
76
|
-
aws-sdk-core (~> 3, >= 3.112.0)
|
|
77
|
-
aws-sigv4 (~> 1.1)
|
|
78
|
-
aws-sigv4 (1.2.3)
|
|
79
|
-
aws-eventstream (~> 1, >= 1.0.2)
|
|
80
|
-
bindex (0.8.1)
|
|
81
|
-
bootsnap (1.7.5)
|
|
82
|
-
msgpack (~> 1.0)
|
|
83
|
-
builder (3.2.4)
|
|
84
|
-
byebug (11.1.3)
|
|
85
|
-
capybara (3.35.3)
|
|
86
|
-
addressable
|
|
87
|
-
mini_mime (>= 0.1.3)
|
|
88
|
-
nokogiri (~> 1.8)
|
|
89
|
-
rack (>= 1.6.0)
|
|
90
|
-
rack-test (>= 0.6.3)
|
|
91
|
-
regexp_parser (>= 1.5, < 3.0)
|
|
92
|
-
xpath (~> 3.2)
|
|
93
|
-
childprocess (3.0.0)
|
|
94
|
-
concurrent-ruby (1.1.9)
|
|
95
|
-
crass (1.0.6)
|
|
96
|
-
erubi (1.10.0)
|
|
97
|
-
faraday (1.4.3)
|
|
98
|
-
faraday-em_http (~> 1.0)
|
|
99
|
-
faraday-em_synchrony (~> 1.0)
|
|
100
|
-
faraday-excon (~> 1.1)
|
|
101
|
-
faraday-net_http (~> 1.0)
|
|
102
|
-
faraday-net_http_persistent (~> 1.1)
|
|
103
|
-
multipart-post (>= 1.2, < 3)
|
|
104
|
-
ruby2_keywords (>= 0.0.4)
|
|
105
|
-
faraday-em_http (1.0.0)
|
|
106
|
-
faraday-em_synchrony (1.0.0)
|
|
107
|
-
faraday-excon (1.1.0)
|
|
108
|
-
faraday-net_http (1.0.1)
|
|
109
|
-
faraday-net_http_persistent (1.1.0)
|
|
110
|
-
ffi (1.15.3)
|
|
111
|
-
globalid (0.4.2)
|
|
112
|
-
activesupport (>= 4.2.0)
|
|
113
|
-
google-protobuf (3.17.3-universal-darwin)
|
|
114
|
-
google-protobuf (3.17.3-x86_64-linux)
|
|
115
|
-
i18n (1.8.10)
|
|
116
|
-
concurrent-ruby (~> 1.0)
|
|
117
|
-
jbuilder (2.11.2)
|
|
118
|
-
activesupport (>= 5.0.0)
|
|
119
|
-
jmespath (1.4.0)
|
|
120
|
-
listen (3.5.1)
|
|
121
|
-
rb-fsevent (~> 0.10, >= 0.10.3)
|
|
122
|
-
rb-inotify (~> 0.9, >= 0.9.10)
|
|
123
|
-
loofah (2.10.0)
|
|
124
|
-
crass (~> 1.0.2)
|
|
125
|
-
nokogiri (>= 1.5.9)
|
|
126
|
-
mail (2.7.1)
|
|
127
|
-
mini_mime (>= 0.1.1)
|
|
128
|
-
marcel (1.0.1)
|
|
129
|
-
method_source (1.0.0)
|
|
130
|
-
mini_mime (1.1.0)
|
|
131
|
-
minitest (5.14.4)
|
|
132
|
-
msgpack (1.4.2)
|
|
133
|
-
multipart-post (2.1.1)
|
|
134
|
-
nio4r (2.5.7)
|
|
135
|
-
nokogiri (1.11.7-x86_64-darwin)
|
|
136
|
-
racc (~> 1.4)
|
|
137
|
-
nokogiri (1.11.7-x86_64-linux)
|
|
138
|
-
racc (~> 1.4)
|
|
139
|
-
public_suffix (4.0.6)
|
|
140
|
-
puma (5.3.2)
|
|
141
|
-
nio4r (~> 2.0)
|
|
142
|
-
racc (1.5.2)
|
|
143
|
-
rack (2.2.3)
|
|
144
|
-
rack-mini-profiler (2.3.2)
|
|
145
|
-
rack (>= 1.2.0)
|
|
146
|
-
rack-proxy (0.7.0)
|
|
147
|
-
rack
|
|
148
|
-
rack-test (1.1.0)
|
|
149
|
-
rack (>= 1.0, < 3)
|
|
150
|
-
rails (6.1.4)
|
|
151
|
-
actioncable (= 6.1.4)
|
|
152
|
-
actionmailbox (= 6.1.4)
|
|
153
|
-
actionmailer (= 6.1.4)
|
|
154
|
-
actionpack (= 6.1.4)
|
|
155
|
-
actiontext (= 6.1.4)
|
|
156
|
-
actionview (= 6.1.4)
|
|
157
|
-
activejob (= 6.1.4)
|
|
158
|
-
activemodel (= 6.1.4)
|
|
159
|
-
activerecord (= 6.1.4)
|
|
160
|
-
activestorage (= 6.1.4)
|
|
161
|
-
activesupport (= 6.1.4)
|
|
162
|
-
bundler (>= 1.15.0)
|
|
163
|
-
railties (= 6.1.4)
|
|
164
|
-
sprockets-rails (>= 2.0.0)
|
|
165
|
-
rails-dom-testing (2.0.3)
|
|
166
|
-
activesupport (>= 4.2.0)
|
|
167
|
-
nokogiri (>= 1.6)
|
|
168
|
-
rails-html-sanitizer (1.3.0)
|
|
169
|
-
loofah (~> 2.3)
|
|
170
|
-
railties (6.1.4)
|
|
171
|
-
actionpack (= 6.1.4)
|
|
172
|
-
activesupport (= 6.1.4)
|
|
173
|
-
method_source
|
|
174
|
-
rake (>= 0.13)
|
|
175
|
-
thor (~> 1.0)
|
|
176
|
-
rake (13.0.3)
|
|
177
|
-
rb-fsevent (0.11.0)
|
|
178
|
-
rb-inotify (0.10.1)
|
|
179
|
-
ffi (~> 1.0)
|
|
180
|
-
regexp_parser (2.1.1)
|
|
181
|
-
ruby2_keywords (0.0.4)
|
|
182
|
-
rubyzip (2.3.0)
|
|
183
|
-
sass-rails (6.0.0)
|
|
184
|
-
sassc-rails (~> 2.1, >= 2.1.1)
|
|
185
|
-
sassc (2.4.0)
|
|
186
|
-
ffi (~> 1.9)
|
|
187
|
-
sassc-rails (2.1.2)
|
|
188
|
-
railties (>= 4.0.0)
|
|
189
|
-
sassc (>= 2.0)
|
|
190
|
-
sprockets (> 3.0)
|
|
191
|
-
sprockets-rails
|
|
192
|
-
tilt
|
|
193
|
-
selenium-webdriver (3.142.7)
|
|
194
|
-
childprocess (>= 0.5, < 4.0)
|
|
195
|
-
rubyzip (>= 1.2.2)
|
|
196
|
-
semantic_range (3.0.0)
|
|
197
|
-
spring (2.1.1)
|
|
198
|
-
sprockets (4.0.2)
|
|
199
|
-
concurrent-ruby (~> 1.0)
|
|
200
|
-
rack (> 1, < 3)
|
|
201
|
-
sprockets-rails (3.2.2)
|
|
202
|
-
actionpack (>= 4.0)
|
|
203
|
-
activesupport (>= 4.0)
|
|
204
|
-
sprockets (>= 3.0.0)
|
|
205
|
-
sqlite3 (1.4.2)
|
|
206
|
-
thor (1.1.0)
|
|
207
|
-
tilt (2.0.10)
|
|
208
|
-
turbolinks (5.2.1)
|
|
209
|
-
turbolinks-source (~> 5.2)
|
|
210
|
-
turbolinks-source (5.2.0)
|
|
211
|
-
twirp (1.7.2)
|
|
212
|
-
faraday (< 2)
|
|
213
|
-
google-protobuf (~> 3.0, >= 3.7.0)
|
|
214
|
-
twirp-rails (0.1.1)
|
|
215
|
-
railties (>= 4.2)
|
|
216
|
-
twirp
|
|
217
|
-
tzinfo (2.0.4)
|
|
218
|
-
concurrent-ruby (~> 1.0)
|
|
219
|
-
web-console (4.1.0)
|
|
220
|
-
actionview (>= 6.0.0)
|
|
221
|
-
activemodel (>= 6.0.0)
|
|
222
|
-
bindex (>= 0.4.0)
|
|
223
|
-
railties (>= 6.0.0)
|
|
224
|
-
webdrivers (4.6.0)
|
|
225
|
-
nokogiri (~> 1.6)
|
|
226
|
-
rubyzip (>= 1.3.0)
|
|
227
|
-
selenium-webdriver (>= 3.0, < 4.0)
|
|
228
|
-
webpacker (5.4.0)
|
|
229
|
-
activesupport (>= 5.2)
|
|
230
|
-
rack-proxy (>= 0.6.1)
|
|
231
|
-
railties (>= 5.2)
|
|
232
|
-
semantic_range (>= 2.3.0)
|
|
233
|
-
webrick (1.7.0)
|
|
234
|
-
websocket-driver (0.7.5)
|
|
235
|
-
websocket-extensions (>= 0.1.0)
|
|
236
|
-
websocket-extensions (0.1.5)
|
|
237
|
-
xpath (3.2.0)
|
|
238
|
-
nokogiri (~> 1.8)
|
|
239
|
-
zeitwerk (2.4.2)
|
|
240
|
-
|
|
241
|
-
PLATFORMS
|
|
242
|
-
x86_64-darwin-20
|
|
243
|
-
x86_64-linux
|
|
244
|
-
|
|
245
|
-
DEPENDENCIES
|
|
246
|
-
aws-sdk-ec2
|
|
247
|
-
aws-sdk-iam
|
|
248
|
-
bootsnap (>= 1.4.4)
|
|
249
|
-
byebug
|
|
250
|
-
capybara (>= 3.26)
|
|
251
|
-
faraday
|
|
252
|
-
jbuilder (~> 2.7)
|
|
253
|
-
listen (~> 3.3)
|
|
254
|
-
puma (~> 5.0)
|
|
255
|
-
rack-mini-profiler (~> 2.0)
|
|
256
|
-
rails (~> 6.1.3, >= 6.1.3.2)
|
|
257
|
-
sass-rails (>= 6)
|
|
258
|
-
selenium-webdriver
|
|
259
|
-
spring
|
|
260
|
-
sqlite3 (~> 1.4)
|
|
261
|
-
turbolinks (~> 5)
|
|
262
|
-
twirp-rails
|
|
263
|
-
tzinfo-data
|
|
264
|
-
web-console (>= 4.1.0)
|
|
265
|
-
webdrivers
|
|
266
|
-
webpacker (~> 5.0)
|
|
267
|
-
webrick
|
|
268
|
-
|
|
269
|
-
RUBY VERSION
|
|
270
|
-
ruby 3.0.1p64
|
|
271
|
-
|
|
272
|
-
BUNDLED WITH
|
|
273
|
-
2.2.15
|