policy_decision_point 0.1.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.
Files changed (117) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/main.yml +16 -0
  3. data/.gitignore +65 -0
  4. data/.rspec +3 -0
  5. data/.rubocop.yml +22 -0
  6. data/.ruby-version +1 -0
  7. data/Gemfile +14 -0
  8. data/README.md +1 -0
  9. data/Rakefile +12 -0
  10. data/bin/console +15 -0
  11. data/bin/htmldiff +29 -0
  12. data/bin/ldiff +29 -0
  13. data/bin/rake +27 -0
  14. data/bin/rspec +27 -0
  15. data/bin/rubocop +27 -0
  16. data/bin/ruby-parse +27 -0
  17. data/bin/ruby-rewrite +27 -0
  18. data/bin/setup +11 -0
  19. data/example/Gemfile +65 -0
  20. data/example/Gemfile.lock +273 -0
  21. data/example/README.md +1 -0
  22. data/example/Rakefile +6 -0
  23. data/example/app/assets/config/manifest.js +2 -0
  24. data/example/app/assets/images/.keep +0 -0
  25. data/example/app/assets/stylesheets/application.css +15 -0
  26. data/example/app/channels/application_cable/channel.rb +4 -0
  27. data/example/app/channels/application_cable/connection.rb +4 -0
  28. data/example/app/controllers/application_controller.rb +2 -0
  29. data/example/app/controllers/concerns/.keep +0 -0
  30. data/example/app/controllers/rpc/hello_world/service.proto +15 -0
  31. data/example/app/controllers/rpc/hello_world/service_pb.rb +22 -0
  32. data/example/app/controllers/rpc/hello_world/service_twirp.rb +17 -0
  33. data/example/app/controllers/rpc/hello_world_server.rb +15 -0
  34. data/example/app/helpers/application_helper.rb +2 -0
  35. data/example/app/javascript/channels/consumer.js +6 -0
  36. data/example/app/javascript/channels/index.js +5 -0
  37. data/example/app/javascript/packs/application.js +13 -0
  38. data/example/app/jobs/application_job.rb +7 -0
  39. data/example/app/mailers/application_mailer.rb +4 -0
  40. data/example/app/models/application_record.rb +3 -0
  41. data/example/app/models/concerns/.keep +0 -0
  42. data/example/app/views/layouts/application.html.erb +16 -0
  43. data/example/app/views/layouts/mailer.html.erb +13 -0
  44. data/example/app/views/layouts/mailer.text.erb +1 -0
  45. data/example/babel.config.js +70 -0
  46. data/example/bin/bundle +114 -0
  47. data/example/bin/rails +27 -0
  48. data/example/bin/rake +5 -0
  49. data/example/bin/setup +36 -0
  50. data/example/bin/spring +14 -0
  51. data/example/bin/webpack +18 -0
  52. data/example/bin/webpack-dev-server +18 -0
  53. data/example/bin/yarn +17 -0
  54. data/example/config.ru +6 -0
  55. data/example/config/application.rb +25 -0
  56. data/example/config/boot.rb +4 -0
  57. data/example/config/cable.yml +10 -0
  58. data/example/config/credentials.yml.enc +1 -0
  59. data/example/config/database.yml +25 -0
  60. data/example/config/environment.rb +5 -0
  61. data/example/config/environments/development.rb +79 -0
  62. data/example/config/environments/production.rb +120 -0
  63. data/example/config/environments/test.rb +60 -0
  64. data/example/config/initializers/application_controller_renderer.rb +8 -0
  65. data/example/config/initializers/assets.rb +14 -0
  66. data/example/config/initializers/backtrace_silencers.rb +8 -0
  67. data/example/config/initializers/content_security_policy.rb +30 -0
  68. data/example/config/initializers/cookies_serializer.rb +5 -0
  69. data/example/config/initializers/filter_parameter_logging.rb +6 -0
  70. data/example/config/initializers/inflections.rb +16 -0
  71. data/example/config/initializers/mime_types.rb +4 -0
  72. data/example/config/initializers/permissions_policy.rb +11 -0
  73. data/example/config/initializers/twirp_rails.rb +4 -0
  74. data/example/config/initializers/wrap_parameters.rb +14 -0
  75. data/example/config/locales/en.yml +33 -0
  76. data/example/config/master.key +1 -0
  77. data/example/config/puma.rb +43 -0
  78. data/example/config/routes.rb +4 -0
  79. data/example/config/spring.rb +6 -0
  80. data/example/config/storage.yml +34 -0
  81. data/example/config/webpack/development.js +5 -0
  82. data/example/config/webpack/environment.js +3 -0
  83. data/example/config/webpack/production.js +5 -0
  84. data/example/config/webpack/test.js +5 -0
  85. data/example/config/webpacker.yml +92 -0
  86. data/example/extensions/x86_64-linux/3.0.0/ffi-1.15.3/ffi_c.so +0 -0
  87. data/example/extensions/x86_64-linux/3.0.0/ffi-1.15.3/gem.build_complete +0 -0
  88. data/example/extensions/x86_64-linux/3.0.0/ffi-1.15.3/gem_make.out +165 -0
  89. data/example/extensions/x86_64-linux/3.0.0/ffi-1.15.3/mkmf.log +132 -0
  90. data/example/package.json +17 -0
  91. data/example/postcss.config.js +12 -0
  92. data/example/public/404.html +67 -0
  93. data/example/public/422.html +67 -0
  94. data/example/public/500.html +66 -0
  95. data/example/public/apple-touch-icon-precomposed.png +0 -0
  96. data/example/public/apple-touch-icon.png +0 -0
  97. data/example/public/favicon.ico +0 -0
  98. data/example/public/robots.txt +1 -0
  99. data/example/storage/.keep +0 -0
  100. data/example/test/application_system_test_case.rb +5 -0
  101. data/example/test/channels/application_cable/connection_test.rb +11 -0
  102. data/example/test/controllers/.keep +0 -0
  103. data/example/test/fixtures/files/.keep +0 -0
  104. data/example/test/helpers/.keep +0 -0
  105. data/example/test/integration/.keep +0 -0
  106. data/example/test/mailers/.keep +0 -0
  107. data/example/test/models/.keep +0 -0
  108. data/example/test/system/.keep +0 -0
  109. data/example/test/test_helper.rb +13 -0
  110. data/example/tmp/cache/bootsnap/load-path-cache +0 -0
  111. data/example/vendor/.keep +0 -0
  112. data/example/yarn.lock +6888 -0
  113. data/lib/policy_decision_point.rb +24 -0
  114. data/lib/policy_decision_point/pdp.rb +155 -0
  115. data/lib/policy_decision_point/version.rb +5 -0
  116. data/policy_decision_point.gemspec +32 -0
  117. metadata +160 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 70f7c91ecb05c92f6b6ab4f3eb09c66d5461ae00bc60788b634bcdb03748b608
4
+ data.tar.gz: 83a6d7a7f575e71b040416ebe1e989b5cac929e56c57a268a5fb093305a5fda1
5
+ SHA512:
6
+ metadata.gz: 2ad3c7f91b62c2d3fac0c2223539d7defe73b4d39e978fd2829f10ea348d258438dd28944c0772659e46aa7212e564fddaf558451a91cf86f99af1f274e65532
7
+ data.tar.gz: 35f70a889f4d71eb0bce143040027533812e8bd400ddd5fd4737481c8830f0904b076f33761ae23e126b12e8d699a1426a7fd08dd56815df3c53a9e16e1fb2e3
@@ -0,0 +1,16 @@
1
+ name: Ruby
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ build:
7
+ runs-on: ubuntu-latest
8
+ steps:
9
+ - uses: actions/checkout@v2
10
+ - name: Set up Ruby
11
+ uses: ruby/setup-ruby@v1
12
+ with:
13
+ ruby-version: 3.0.1
14
+ bundler-cache: true
15
+ - name: Run the default task
16
+ run: bundle exec rake
data/.gitignore ADDED
@@ -0,0 +1,65 @@
1
+ *.gem
2
+ *.rbc
3
+ /.config
4
+ /coverage/
5
+ /InstalledFiles
6
+ /pkg/
7
+ /spec/reports/
8
+ /spec/examples.txt
9
+ /test/tmp/
10
+ /test/version_tmp/
11
+ /tmp/
12
+ .DS_Store
13
+
14
+ # Used by dotenv library to load environment variables.
15
+ # .env
16
+
17
+ # Ignore Byebug command history file.
18
+ .byebug_history
19
+
20
+ ## Specific to RubyMotion:
21
+ .dat*
22
+ .repl_history
23
+ build/
24
+ *.bridgesupport
25
+ build-iPhoneOS/
26
+ build-iPhoneSimulator/
27
+
28
+ ## Specific to RubyMotion (use of CocoaPods):
29
+ #
30
+ # We recommend against adding the Pods directory to your .gitignore. However
31
+ # you should judge for yourself, the pros and cons are mentioned at:
32
+ # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
33
+ #
34
+ # vendor/Pods/
35
+
36
+ ## Documentation cache and generated files:
37
+ /.yardoc/
38
+ /_yardoc/
39
+ /doc/
40
+ /rdoc/
41
+
42
+ ## Environment normalization:
43
+ /.bundle/
44
+ /vendor/bundle
45
+ /lib/bundler/man/
46
+
47
+ # for a library or gem, you might want to ignore these files since the code is
48
+ # intended to run in multiple environments; otherwise, check them in:
49
+ # Gemfile.lock
50
+ # .ruby-version
51
+ # .ruby-gemset
52
+
53
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
54
+ .rvmrc
55
+
56
+ # Used by RuboCop. Remote config files pulled in from inherit_from directive.
57
+ # .rubocop-https?--*
58
+
59
+ # rspec failure tracking
60
+ .rspec_status
61
+
62
+ # This is a library, so package manager locks and vendored gems shouldn't be included.
63
+ Gemfile.lock
64
+ gems/
65
+ specifications/
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
data/.rubocop.yml ADDED
@@ -0,0 +1,22 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.5
3
+ Exclude:
4
+ - 'example/**/*'
5
+ - 'vendor/**/*'
6
+ - 'bin/**/*'
7
+ - '*.gemspec'
8
+
9
+
10
+ Style/StringLiterals:
11
+ Enabled: true
12
+ EnforcedStyle: double_quotes
13
+
14
+ Style/StringLiteralsInInterpolation:
15
+ Enabled: true
16
+ EnforcedStyle: double_quotes
17
+
18
+ Layout/LineLength:
19
+ Max: 120
20
+
21
+ inherit_gem:
22
+ rubocop-discourse: default.yml
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 3.0.1
data/Gemfile ADDED
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ # Specify your gem's dependencies in policy_decision_point.gemspec
6
+ gemspec
7
+
8
+ gem "rake", "~> 13.0"
9
+
10
+ gem "rspec", "~> 3.0"
11
+
12
+ gem "rubocop", "~> 1.7"
13
+
14
+ gem "rubocop-discourse"
data/README.md ADDED
@@ -0,0 +1 @@
1
+ # opa-rails-middleware
data/Rakefile ADDED
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "bundler/gem_tasks"
4
+ require "rspec/core/rake_task"
5
+
6
+ RSpec::Core::RakeTask.new(:spec)
7
+
8
+ require "rubocop/rake_task"
9
+
10
+ RuboCop::RakeTask.new
11
+
12
+ task default: %i[spec rubocop]
data/bin/console ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require "bundler/setup"
5
+ require "policy_decision_point"
6
+
7
+ # You can add fixtures and/or initialization code here to make experimenting
8
+ # with your gem easier. You can also use a different console, if you like.
9
+
10
+ # (If you use this, don't forget to add pry to your Gemfile!)
11
+ # require "pry"
12
+ # Pry.start
13
+
14
+ require "irb"
15
+ IRB.start(__FILE__)
data/bin/htmldiff ADDED
@@ -0,0 +1,29 @@
1
+ #!/bin/sh
2
+ 'exec' "ruby" '-x' "$0" "$@"
3
+ #!/home/sensei/.rbenv/versions/3.0.1/bin/ruby
4
+ #
5
+ # This file was generated by RubyGems.
6
+ #
7
+ # The application 'diff-lcs' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ require 'rubygems'
12
+
13
+ version = ">= 0.a"
14
+
15
+ str = ARGV.first
16
+ if str
17
+ str = str.b[/\A_(.*)_\z/, 1]
18
+ if str and Gem::Version.correct?(str)
19
+ version = str
20
+ ARGV.shift
21
+ end
22
+ end
23
+
24
+ if Gem.respond_to?(:activate_bin_path)
25
+ load Gem.activate_bin_path('diff-lcs', 'htmldiff', version)
26
+ else
27
+ gem "diff-lcs", version
28
+ load Gem.bin_path("diff-lcs", "htmldiff", version)
29
+ end
data/bin/ldiff ADDED
@@ -0,0 +1,29 @@
1
+ #!/bin/sh
2
+ 'exec' "ruby" '-x' "$0" "$@"
3
+ #!/home/sensei/.rbenv/versions/3.0.1/bin/ruby
4
+ #
5
+ # This file was generated by RubyGems.
6
+ #
7
+ # The application 'diff-lcs' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ require 'rubygems'
12
+
13
+ version = ">= 0.a"
14
+
15
+ str = ARGV.first
16
+ if str
17
+ str = str.b[/\A_(.*)_\z/, 1]
18
+ if str and Gem::Version.correct?(str)
19
+ version = str
20
+ ARGV.shift
21
+ end
22
+ end
23
+
24
+ if Gem.respond_to?(:activate_bin_path)
25
+ load Gem.activate_bin_path('diff-lcs', 'ldiff', version)
26
+ else
27
+ gem "diff-lcs", version
28
+ load Gem.bin_path("diff-lcs", "ldiff", version)
29
+ end
data/bin/rake ADDED
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by RubyGems.
4
+ #
5
+ # The application 'rake' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'rubygems'
10
+
11
+ version = ">= 0.a"
12
+
13
+ str = ARGV.first
14
+ if str
15
+ str = str.b[/\A_(.*)_\z/, 1]
16
+ if str and Gem::Version.correct?(str)
17
+ version = str
18
+ ARGV.shift
19
+ end
20
+ end
21
+
22
+ if Gem.respond_to?(:activate_bin_path)
23
+ load Gem.activate_bin_path('rake', 'rake', version)
24
+ else
25
+ gem "rake", version
26
+ load Gem.bin_path("rake", "rake", version)
27
+ end
data/bin/rspec ADDED
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by RubyGems.
4
+ #
5
+ # The application 'rspec-core' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'rubygems'
10
+
11
+ version = ">= 0.a"
12
+
13
+ str = ARGV.first
14
+ if str
15
+ str = str.b[/\A_(.*)_\z/, 1]
16
+ if str and Gem::Version.correct?(str)
17
+ version = str
18
+ ARGV.shift
19
+ end
20
+ end
21
+
22
+ if Gem.respond_to?(:activate_bin_path)
23
+ load Gem.activate_bin_path('rspec-core', 'rspec', version)
24
+ else
25
+ gem "rspec-core", version
26
+ load Gem.bin_path("rspec-core", "rspec", version)
27
+ end
data/bin/rubocop ADDED
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by RubyGems.
4
+ #
5
+ # The application 'rubocop' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'rubygems'
10
+
11
+ version = ">= 0.a"
12
+
13
+ str = ARGV.first
14
+ if str
15
+ str = str.b[/\A_(.*)_\z/, 1]
16
+ if str and Gem::Version.correct?(str)
17
+ version = str
18
+ ARGV.shift
19
+ end
20
+ end
21
+
22
+ if Gem.respond_to?(:activate_bin_path)
23
+ load Gem.activate_bin_path('rubocop', 'rubocop', version)
24
+ else
25
+ gem "rubocop", version
26
+ load Gem.bin_path("rubocop", "rubocop", version)
27
+ end
data/bin/ruby-parse ADDED
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by RubyGems.
4
+ #
5
+ # The application 'parser' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'rubygems'
10
+
11
+ version = ">= 0.a"
12
+
13
+ str = ARGV.first
14
+ if str
15
+ str = str.b[/\A_(.*)_\z/, 1]
16
+ if str and Gem::Version.correct?(str)
17
+ version = str
18
+ ARGV.shift
19
+ end
20
+ end
21
+
22
+ if Gem.respond_to?(:activate_bin_path)
23
+ load Gem.activate_bin_path('parser', 'ruby-parse', version)
24
+ else
25
+ gem "parser", version
26
+ load Gem.bin_path("parser", "ruby-parse", version)
27
+ end
data/bin/ruby-rewrite ADDED
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by RubyGems.
4
+ #
5
+ # The application 'parser' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'rubygems'
10
+
11
+ version = ">= 0.a"
12
+
13
+ str = ARGV.first
14
+ if str
15
+ str = str.b[/\A_(.*)_\z/, 1]
16
+ if str and Gem::Version.correct?(str)
17
+ version = str
18
+ ARGV.shift
19
+ end
20
+ end
21
+
22
+ if Gem.respond_to?(:activate_bin_path)
23
+ load Gem.activate_bin_path('parser', 'ruby-rewrite', version)
24
+ else
25
+ gem "parser", version
26
+ load Gem.bin_path("parser", "ruby-rewrite", version)
27
+ end
data/bin/setup ADDED
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle config --local path ${PWD}/../vendor/bundle
7
+ bundle lock
8
+
9
+ bundle install
10
+
11
+ # Do any other automated setup that you need to do here
data/example/Gemfile ADDED
@@ -0,0 +1,65 @@
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]