masks 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.
Files changed (179) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/LICENSE +21 -0
  4. data/README.md +215 -29
  5. data/app/controllers/masks/rails/base_controller.rb +13 -0
  6. data/app/controllers/masks/rails/handshakes_controller.rb +87 -0
  7. data/app/controllers/masks/rails/sessions_controller.rb +113 -0
  8. data/app/views/layouts/masks/rails/plain.html.erb +47 -0
  9. data/app/views/masks/rails/handshakes/refused.html.erb +12 -0
  10. data/app/views/masks/rails/handshakes/show.html.erb +40 -0
  11. data/config/routes.rb +10 -82
  12. data/lib/generators/masks/install/install_generator.rb +35 -22
  13. data/lib/generators/masks/install/templates/masks.rb.tt +38 -0
  14. data/lib/masks/client/claims.rb +103 -0
  15. data/lib/masks/client/errors.rb +52 -0
  16. data/lib/masks/client/handshake.rb +104 -0
  17. data/lib/masks/client/http.rb +81 -0
  18. data/lib/masks/client/introspection.rb +29 -0
  19. data/lib/masks/client/issuer.rb +76 -0
  20. data/lib/masks/client/pkce.rb +27 -0
  21. data/lib/masks/client/rack.rb +62 -0
  22. data/lib/masks/client/registration.rb +91 -0
  23. data/lib/masks/client/registry.rb +25 -0
  24. data/lib/masks/client/resource.rb +92 -0
  25. data/lib/masks/client/session.rb +146 -0
  26. data/lib/masks/client/stores.rb +40 -0
  27. data/lib/masks/client/tokens.rb +70 -0
  28. data/lib/masks/client/tracker.rb +122 -0
  29. data/lib/masks/client/verifier.rb +42 -0
  30. data/lib/masks/client.rb +51 -0
  31. data/lib/masks/rails/authentication.rb +217 -0
  32. data/lib/masks/rails/configurable.rb +11 -0
  33. data/lib/masks/rails/configuration.rb +172 -0
  34. data/lib/masks/rails/credentials.rb +60 -0
  35. data/lib/masks/rails/engine.rb +20 -0
  36. data/lib/masks/rails/protected_resource.rb +51 -0
  37. data/lib/masks/rails.rb +10 -0
  38. data/lib/masks/version.rb +1 -3
  39. data/lib/masks.rb +3 -183
  40. metadata +47 -416
  41. data/MIT-LICENSE +0 -20
  42. data/Rakefile +0 -11
  43. data/app/assets/builds/masks/application.css +0 -1
  44. data/app/assets/builds/masks/application.js +0 -8549
  45. data/app/assets/builds/masks/application.js.map +0 -7
  46. data/app/assets/images/masks.png +0 -0
  47. data/app/assets/javascripts/application.js +0 -2
  48. data/app/assets/javascripts/controllers/application.js +0 -9
  49. data/app/assets/javascripts/controllers/emails_controller.js +0 -28
  50. data/app/assets/javascripts/controllers/index.js +0 -21
  51. data/app/assets/javascripts/controllers/keys_controller.js +0 -20
  52. data/app/assets/javascripts/controllers/recover_controller.js +0 -21
  53. data/app/assets/javascripts/controllers/recover_password_controller.js +0 -21
  54. data/app/assets/javascripts/controllers/session_controller.js +0 -94
  55. data/app/assets/javascripts/controllers/table_controller.js +0 -15
  56. data/app/assets/manifest.js +0 -2
  57. data/app/assets/masks_manifest.js +0 -2
  58. data/app/assets/stylesheets/application.css +0 -34
  59. data/app/controllers/concerns/masks/controller.rb +0 -114
  60. data/app/controllers/masks/actors_controller.rb +0 -15
  61. data/app/controllers/masks/application_controller.rb +0 -35
  62. data/app/controllers/masks/backup_codes_controller.rb +0 -34
  63. data/app/controllers/masks/debug_controller.rb +0 -9
  64. data/app/controllers/masks/devices_controller.rb +0 -20
  65. data/app/controllers/masks/emails_controller.rb +0 -60
  66. data/app/controllers/masks/error_controller.rb +0 -14
  67. data/app/controllers/masks/keys_controller.rb +0 -45
  68. data/app/controllers/masks/manage/actors_controller.rb +0 -83
  69. data/app/controllers/masks/manage/base_controller.rb +0 -20
  70. data/app/controllers/masks/manage/clients_controller.rb +0 -84
  71. data/app/controllers/masks/manage/dashboard_controller.rb +0 -15
  72. data/app/controllers/masks/manage/devices_controller.rb +0 -19
  73. data/app/controllers/masks/one_time_code_controller.rb +0 -49
  74. data/app/controllers/masks/openid/authorizations_controller.rb +0 -45
  75. data/app/controllers/masks/openid/discoveries_controller.rb +0 -55
  76. data/app/controllers/masks/openid/tokens_controller.rb +0 -45
  77. data/app/controllers/masks/openid/userinfo_controller.rb +0 -28
  78. data/app/controllers/masks/passwords_controller.rb +0 -33
  79. data/app/controllers/masks/recoveries_controller.rb +0 -43
  80. data/app/controllers/masks/sessions_controller.rb +0 -53
  81. data/app/helpers/masks/application_helper.rb +0 -49
  82. data/app/jobs/masks/application_job.rb +0 -7
  83. data/app/jobs/masks/expire_actors_job.rb +0 -15
  84. data/app/jobs/masks/expire_recoveries_job.rb +0 -15
  85. data/app/mailers/masks/actor_mailer.rb +0 -22
  86. data/app/mailers/masks/application_mailer.rb +0 -15
  87. data/app/models/concerns/masks/access.rb +0 -162
  88. data/app/models/concerns/masks/actor.rb +0 -132
  89. data/app/models/concerns/masks/adapter.rb +0 -68
  90. data/app/models/concerns/masks/role.rb +0 -9
  91. data/app/models/concerns/masks/scoped.rb +0 -54
  92. data/app/models/masks/access/actor_password.rb +0 -21
  93. data/app/models/masks/access/actor_scopes.rb +0 -18
  94. data/app/models/masks/access/actor_signup.rb +0 -21
  95. data/app/models/masks/actors/anonymous.rb +0 -40
  96. data/app/models/masks/actors/system.rb +0 -24
  97. data/app/models/masks/adapters/active_record.rb +0 -85
  98. data/app/models/masks/application_model.rb +0 -15
  99. data/app/models/masks/application_record.rb +0 -8
  100. data/app/models/masks/check.rb +0 -192
  101. data/app/models/masks/credential.rb +0 -166
  102. data/app/models/masks/credentials/access_token.rb +0 -60
  103. data/app/models/masks/credentials/backup_code.rb +0 -30
  104. data/app/models/masks/credentials/device.rb +0 -59
  105. data/app/models/masks/credentials/email.rb +0 -48
  106. data/app/models/masks/credentials/factor2.rb +0 -71
  107. data/app/models/masks/credentials/key.rb +0 -38
  108. data/app/models/masks/credentials/last_login.rb +0 -12
  109. data/app/models/masks/credentials/masquerade.rb +0 -32
  110. data/app/models/masks/credentials/nickname.rb +0 -63
  111. data/app/models/masks/credentials/one_time_code.rb +0 -34
  112. data/app/models/masks/credentials/password.rb +0 -28
  113. data/app/models/masks/credentials/recovery.rb +0 -71
  114. data/app/models/masks/credentials/return_to.rb +0 -27
  115. data/app/models/masks/credentials/session.rb +0 -67
  116. data/app/models/masks/device.rb +0 -30
  117. data/app/models/masks/error.rb +0 -51
  118. data/app/models/masks/event.rb +0 -14
  119. data/app/models/masks/mask.rb +0 -266
  120. data/app/models/masks/openid/authorization.rb +0 -116
  121. data/app/models/masks/openid/token.rb +0 -56
  122. data/app/models/masks/rails/actor.rb +0 -212
  123. data/app/models/masks/rails/actor_role.rb +0 -12
  124. data/app/models/masks/rails/device.rb +0 -47
  125. data/app/models/masks/rails/email.rb +0 -96
  126. data/app/models/masks/rails/key.rb +0 -61
  127. data/app/models/masks/rails/openid/access_token.rb +0 -55
  128. data/app/models/masks/rails/openid/authorization.rb +0 -45
  129. data/app/models/masks/rails/openid/client.rb +0 -186
  130. data/app/models/masks/rails/openid/id_token.rb +0 -43
  131. data/app/models/masks/rails/recovery.rb +0 -116
  132. data/app/models/masks/rails/role.rb +0 -20
  133. data/app/models/masks/rails/scope.rb +0 -15
  134. data/app/models/masks/session.rb +0 -447
  135. data/app/models/masks/sessions/access.rb +0 -27
  136. data/app/models/masks/sessions/inline.rb +0 -16
  137. data/app/models/masks/sessions/request.rb +0 -42
  138. data/app/resources/masks/actor_resource.rb +0 -9
  139. data/app/resources/masks/session_resource.rb +0 -15
  140. data/app/views/layouts/masks/application.html.erb +0 -17
  141. data/app/views/layouts/masks/mailer.html.erb +0 -17
  142. data/app/views/layouts/masks/mailer.text.erb +0 -1
  143. data/app/views/layouts/masks/manage.html.erb +0 -42
  144. data/app/views/masks/actor_mailer/recover_credentials.html.erb +0 -32
  145. data/app/views/masks/actor_mailer/recover_credentials.text.erb +0 -1
  146. data/app/views/masks/actor_mailer/verify_email.html.erb +0 -33
  147. data/app/views/masks/actor_mailer/verify_email.text.erb +0 -8
  148. data/app/views/masks/actors/current.html.erb +0 -145
  149. data/app/views/masks/application/_header.html.erb +0 -30
  150. data/app/views/masks/backup_codes/new.html.erb +0 -117
  151. data/app/views/masks/emails/new.html.erb +0 -109
  152. data/app/views/masks/emails/verify.html.erb +0 -51
  153. data/app/views/masks/keys/new.html.erb +0 -127
  154. data/app/views/masks/manage/actors/index.html.erb +0 -104
  155. data/app/views/masks/manage/actors/show.html.erb +0 -172
  156. data/app/views/masks/manage/clients/index.html.erb +0 -102
  157. data/app/views/masks/manage/clients/show.html.erb +0 -156
  158. data/app/views/masks/manage/dashboard/index.html.erb +0 -10
  159. data/app/views/masks/manage/devices/index.html.erb +0 -47
  160. data/app/views/masks/one_time_code/new.html.erb +0 -167
  161. data/app/views/masks/openid/authorizations/error.html.erb +0 -23
  162. data/app/views/masks/openid/authorizations/new.html.erb +0 -46
  163. data/app/views/masks/passwords/edit.html.erb +0 -71
  164. data/app/views/masks/recoveries/new.html.erb +0 -69
  165. data/app/views/masks/recoveries/password.html.erb +0 -63
  166. data/app/views/masks/sessions/new.html.erb +0 -152
  167. data/config/brakeman.ignore +0 -28
  168. data/config/initializers/inflections.rb +0 -5
  169. data/config/locales/en.yml +0 -307
  170. data/db/migrate/20231205173845_create_actors.rb +0 -94
  171. data/db/migrate/20240329182422_support_openid.rb +0 -64
  172. data/lib/generators/masks/install/USAGE +0 -8
  173. data/lib/generators/masks/install/templates/initializer.rb +0 -5
  174. data/lib/generators/masks/install/templates/masks.json +0 -9
  175. data/lib/masks/configuration.rb +0 -249
  176. data/lib/masks/engine.rb +0 -25
  177. data/lib/masks/middleware.rb +0 -70
  178. data/lib/tasks/masks_tasks.rake +0 -72
  179. data/masks.json +0 -315
data/lib/masks.rb CHANGED
@@ -1,184 +1,4 @@
1
- # frozen_string_literal: true
1
+ require_relative "masks/version"
2
+ require_relative "masks/client"
2
3
 
3
- require "masks/version"
4
- require "masks/engine"
5
- require "masks/configuration"
6
- require "fuzzyurl"
7
- require "valid_email"
8
- require "phonelib"
9
- require "rqrcode"
10
- require "rotp"
11
- require "alba"
12
- require "pagy"
13
- require "device_detector"
14
- require "active_model"
15
- require "chronic_duration"
16
-
17
- # Top-level module for masks.
18
- #
19
- # Includes helper methods for managing configuration and building
20
- # sessions, access, etc.
21
- module Masks
22
- # @visibility private
23
- ANON = :anon
24
-
25
- class << self
26
- # Returns an access instance based on the type & session passed.
27
- #
28
- # @param [Symbol|String] name
29
- # @param [Masks::Session] session
30
- # @return [Masks::Access]
31
- # @raise [Masks::Error::Unauthorized] if access cannot be granted to the session passed
32
- # @raise [Masks::UnknownAccess] if the access type cannot be found
33
- def access(name, session, **_opts)
34
- configuration.access(name).fetch(:cls).build(session)
35
- end
36
-
37
- # Returns a masked session based on the request passed.
38
- #
39
- # @param [ActionDispatch::Request] request
40
- # @return [Masks::Sessions::Request] session
41
- def request(request)
42
- model = configuration.model(:request)
43
- session = model.new(config: configuration, request:)
44
- session.mask!
45
- session
46
- end
47
-
48
- # Returns a masked session based on the params and data passed.
49
- #
50
- # This method is useful for creating masks directly, outside of a
51
- # specific context like a web request.
52
- #
53
- # @param params [Hash]
54
- # @param data [Hash]
55
- # @yield [Masks::Sessions::Inline]
56
- # @return [Masks::Sessions::Inline] session
57
- def mask(name, params: {}, **data)
58
- model = configuration.model(:inline)
59
- session = model.new(name:, config: configuration, params:, data:)
60
- session.mask!
61
- yield session if session.passed? && block_given?
62
- session
63
- end
64
-
65
- # Yields the global masks configuration object.
66
- # @return [Masks::Configuration]
67
- # @yield [Masks::Configuration]
68
- def configure
69
- yield configuration
70
- end
71
-
72
- # Returns the global configuration object for masks.
73
- # @return [Masks::Configuration]
74
- def configuration
75
- @configuration ||= Masks::Configuration.new(data: config.dup)
76
- end
77
-
78
- # @visibility private
79
- def event(name, **opts, &block)
80
- ActiveSupport::Notifications.instrument("masks.#{name}", **opts) do
81
- block.call
82
- end
83
- end
84
-
85
- # @visibility private
86
- def config
87
- @config ||=
88
- begin
89
- config = load_config(config_path)
90
-
91
- defaults =
92
- if config[:extend]
93
- # extend a "masks.json" from a gem
94
- load_config(gem_path(config[:extend]))
95
- else
96
- {}
97
- end
98
-
99
- config = defaults.except(:masks).deep_merge(config)
100
- config[:masks] = [*config[:masks], *defaults[:masks]] if defaults[
101
- :masks
102
- ]
103
- config
104
- end
105
- end
106
-
107
- # @visibility private
108
- def with_config(path_or_config)
109
- previous_config = @config
110
- previous_path = @config_path
111
-
112
- case path_or_config
113
- when String
114
- @config_path = Pathname.new(path_or_config)
115
- when Pathname
116
- @config_path = path_or_config
117
- when Hash
118
- @config_path = :custom
119
- @config = path_or_config
120
- else
121
- raise Error::InvalidConfiguration, path_or_config
122
- end
123
-
124
- result = yield
125
- ensure
126
- @config = previous_config
127
- @config_path = previous_path
128
-
129
- result
130
- end
131
-
132
- # @visibility private
133
- def config_path
134
- path =
135
- [
136
- @config_path,
137
- ENV["MASKS_DIR"] ? Pathname.new(ENV["MASKS_DIR"]) : nil,
138
- Pathname.new(Dir.pwd),
139
- defined?(ENGINE_ROOT) ? Pathname.new(ENGINE_ROOT) : nil
140
- ].find do |p|
141
- p.is_a?(Symbol) || (p && File.exist?(p.join("masks.json")))
142
- end
143
-
144
- raise Error::ConfigurationNotFound unless path
145
-
146
- path
147
- end
148
-
149
- # @visibility private
150
- def config_path=(value)
151
- @config_path =
152
- case value
153
- when String
154
- Pathname.new(value)
155
- when Pathname
156
- value
157
- else
158
- raise Error::InvalidConfiguration, value
159
- end
160
- end
161
-
162
- # @visibility private
163
- def reset!
164
- @configuration = @config = @config_path = nil
165
- end
166
-
167
- def load_config(dir)
168
- JSON.parse(File.read(dir.join("masks.json")), symbolize_names: true)
169
- end
170
-
171
- def gem_path(gem_name)
172
- begin
173
- # Try to require the gem
174
- require gem_name
175
- rescue LoadError
176
- return nil
177
- end
178
-
179
- # Get the gem specification
180
- spec = Gem::Specification.find_by_name(gem_name)
181
- Pathname.new(spec.gem_dir) if spec
182
- end
183
- end
184
- end
4
+ require_relative "masks/rails" if defined?(::Rails::Engine)
metadata CHANGED
@@ -1,31 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: masks
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
- - geiger-to
8
- autorequire:
7
+ - geiger
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2024-04-11 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
- name: alba
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: bcrypt
13
+ name: jwt
29
14
  requirement: !ruby/object:Gem::Requirement
30
15
  requirements:
31
16
  - - "~>"
@@ -38,427 +23,73 @@ dependencies:
38
23
  - - "~>"
39
24
  - !ruby/object:Gem::Version
40
25
  version: '3.1'
41
- - !ruby/object:Gem::Dependency
42
- name: chronic_duration
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '0.10'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '0.10'
55
- - !ruby/object:Gem::Dependency
56
- name: cssbundling-rails
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '1.3'
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '1.3'
69
- - !ruby/object:Gem::Dependency
70
- name: device_detector
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: fuzzyurl
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: 0.9.0
90
- type: :runtime
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: 0.9.0
97
- - !ruby/object:Gem::Dependency
98
- name: jsbundling-rails
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '1.2'
104
- type: :runtime
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '1.2'
111
- - !ruby/object:Gem::Dependency
112
- name: openid_connect
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: '2.3'
118
- type: :runtime
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: '2.3'
125
- - !ruby/object:Gem::Dependency
126
- name: pagy
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - ">="
130
- - !ruby/object:Gem::Version
131
- version: '0'
132
- type: :runtime
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - ">="
137
- - !ruby/object:Gem::Version
138
- version: '0'
139
- - !ruby/object:Gem::Dependency
140
- name: phonelib
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- version: '0'
146
- type: :runtime
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- version: '0'
153
- - !ruby/object:Gem::Dependency
154
- name: premailer-rails
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - "~>"
158
- - !ruby/object:Gem::Version
159
- version: '1'
160
- type: :runtime
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - "~>"
165
- - !ruby/object:Gem::Version
166
- version: '1'
167
- - !ruby/object:Gem::Dependency
168
- name: rails
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - ">="
172
- - !ruby/object:Gem::Version
173
- version: 7.1.2
174
- type: :runtime
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - ">="
179
- - !ruby/object:Gem::Version
180
- version: 7.1.2
181
- - !ruby/object:Gem::Dependency
182
- name: recursive-open-struct
183
- requirement: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - ">="
186
- - !ruby/object:Gem::Version
187
- version: '0'
188
- type: :runtime
189
- prerelease: false
190
- version_requirements: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - ">="
193
- - !ruby/object:Gem::Version
194
- version: '0'
195
- - !ruby/object:Gem::Dependency
196
- name: rotp
197
- requirement: !ruby/object:Gem::Requirement
198
- requirements:
199
- - - ">="
200
- - !ruby/object:Gem::Version
201
- version: '0'
202
- type: :runtime
203
- prerelease: false
204
- version_requirements: !ruby/object:Gem::Requirement
205
- requirements:
206
- - - ">="
207
- - !ruby/object:Gem::Version
208
- version: '0'
209
- - !ruby/object:Gem::Dependency
210
- name: rqrcode
211
- requirement: !ruby/object:Gem::Requirement
212
- requirements:
213
- - - ">="
214
- - !ruby/object:Gem::Version
215
- version: '0'
216
- type: :runtime
217
- prerelease: false
218
- version_requirements: !ruby/object:Gem::Requirement
219
- requirements:
220
- - - ">="
221
- - !ruby/object:Gem::Version
222
- version: '0'
223
- - !ruby/object:Gem::Dependency
224
- name: sprockets-rails
225
- requirement: !ruby/object:Gem::Requirement
226
- requirements:
227
- - - ">="
228
- - !ruby/object:Gem::Version
229
- version: '0'
230
- type: :runtime
231
- prerelease: false
232
- version_requirements: !ruby/object:Gem::Requirement
233
- requirements:
234
- - - ">="
235
- - !ruby/object:Gem::Version
236
- version: '0'
237
- - !ruby/object:Gem::Dependency
238
- name: stimulus-rails
239
- requirement: !ruby/object:Gem::Requirement
240
- requirements:
241
- - - "~>"
242
- - !ruby/object:Gem::Version
243
- version: '1.3'
244
- type: :runtime
245
- prerelease: false
246
- version_requirements: !ruby/object:Gem::Requirement
247
- requirements:
248
- - - "~>"
249
- - !ruby/object:Gem::Version
250
- version: '1.3'
251
- - !ruby/object:Gem::Dependency
252
- name: turbo-rails
253
- requirement: !ruby/object:Gem::Requirement
254
- requirements:
255
- - - ">="
256
- - !ruby/object:Gem::Version
257
- version: '1.5'
258
- - - "<"
259
- - !ruby/object:Gem::Version
260
- version: '3.0'
261
- type: :runtime
262
- prerelease: false
263
- version_requirements: !ruby/object:Gem::Requirement
264
- requirements:
265
- - - ">="
266
- - !ruby/object:Gem::Version
267
- version: '1.5'
268
- - - "<"
269
- - !ruby/object:Gem::Version
270
- version: '3.0'
271
- - !ruby/object:Gem::Dependency
272
- name: valid_email
273
- requirement: !ruby/object:Gem::Requirement
274
- requirements:
275
- - - "~>"
276
- - !ruby/object:Gem::Version
277
- version: '0.2'
278
- type: :runtime
279
- prerelease: false
280
- version_requirements: !ruby/object:Gem::Requirement
281
- requirements:
282
- - - "~>"
283
- - !ruby/object:Gem::Version
284
- version: '0.2'
285
- description: masks is a ruby library and rails engine that adds simple, extensible
286
- auth to most applications. DO NOT USE
287
- email:
288
- - git@geiger.to
26
+ description: Discovery, PKCE authorization, token exchange, and token verification
27
+ against a masks issuer, with Rack middleware for a resource server and a Rails engine
28
+ that mounts the consumer half of the code flow. The auth server itself stays standalone.
289
29
  executables: []
290
30
  extensions: []
291
31
  extra_rdoc_files: []
292
32
  files:
293
- - MIT-LICENSE
33
+ - CHANGELOG.md
34
+ - LICENSE
294
35
  - README.md
295
- - Rakefile
296
- - app/assets/builds/masks/application.css
297
- - app/assets/builds/masks/application.js
298
- - app/assets/builds/masks/application.js.map
299
- - app/assets/images/masks.png
300
- - app/assets/javascripts/application.js
301
- - app/assets/javascripts/controllers/application.js
302
- - app/assets/javascripts/controllers/emails_controller.js
303
- - app/assets/javascripts/controllers/index.js
304
- - app/assets/javascripts/controllers/keys_controller.js
305
- - app/assets/javascripts/controllers/recover_controller.js
306
- - app/assets/javascripts/controllers/recover_password_controller.js
307
- - app/assets/javascripts/controllers/session_controller.js
308
- - app/assets/javascripts/controllers/table_controller.js
309
- - app/assets/manifest.js
310
- - app/assets/masks_manifest.js
311
- - app/assets/stylesheets/application.css
312
- - app/controllers/concerns/masks/controller.rb
313
- - app/controllers/masks/actors_controller.rb
314
- - app/controllers/masks/application_controller.rb
315
- - app/controllers/masks/backup_codes_controller.rb
316
- - app/controllers/masks/debug_controller.rb
317
- - app/controllers/masks/devices_controller.rb
318
- - app/controllers/masks/emails_controller.rb
319
- - app/controllers/masks/error_controller.rb
320
- - app/controllers/masks/keys_controller.rb
321
- - app/controllers/masks/manage/actors_controller.rb
322
- - app/controllers/masks/manage/base_controller.rb
323
- - app/controllers/masks/manage/clients_controller.rb
324
- - app/controllers/masks/manage/dashboard_controller.rb
325
- - app/controllers/masks/manage/devices_controller.rb
326
- - app/controllers/masks/one_time_code_controller.rb
327
- - app/controllers/masks/openid/authorizations_controller.rb
328
- - app/controllers/masks/openid/discoveries_controller.rb
329
- - app/controllers/masks/openid/tokens_controller.rb
330
- - app/controllers/masks/openid/userinfo_controller.rb
331
- - app/controllers/masks/passwords_controller.rb
332
- - app/controllers/masks/recoveries_controller.rb
333
- - app/controllers/masks/sessions_controller.rb
334
- - app/helpers/masks/application_helper.rb
335
- - app/jobs/masks/application_job.rb
336
- - app/jobs/masks/expire_actors_job.rb
337
- - app/jobs/masks/expire_recoveries_job.rb
338
- - app/mailers/masks/actor_mailer.rb
339
- - app/mailers/masks/application_mailer.rb
340
- - app/models/concerns/masks/access.rb
341
- - app/models/concerns/masks/actor.rb
342
- - app/models/concerns/masks/adapter.rb
343
- - app/models/concerns/masks/role.rb
344
- - app/models/concerns/masks/scoped.rb
345
- - app/models/masks/access/actor_password.rb
346
- - app/models/masks/access/actor_scopes.rb
347
- - app/models/masks/access/actor_signup.rb
348
- - app/models/masks/actors/anonymous.rb
349
- - app/models/masks/actors/system.rb
350
- - app/models/masks/adapters/active_record.rb
351
- - app/models/masks/application_model.rb
352
- - app/models/masks/application_record.rb
353
- - app/models/masks/check.rb
354
- - app/models/masks/credential.rb
355
- - app/models/masks/credentials/access_token.rb
356
- - app/models/masks/credentials/backup_code.rb
357
- - app/models/masks/credentials/device.rb
358
- - app/models/masks/credentials/email.rb
359
- - app/models/masks/credentials/factor2.rb
360
- - app/models/masks/credentials/key.rb
361
- - app/models/masks/credentials/last_login.rb
362
- - app/models/masks/credentials/masquerade.rb
363
- - app/models/masks/credentials/nickname.rb
364
- - app/models/masks/credentials/one_time_code.rb
365
- - app/models/masks/credentials/password.rb
366
- - app/models/masks/credentials/recovery.rb
367
- - app/models/masks/credentials/return_to.rb
368
- - app/models/masks/credentials/session.rb
369
- - app/models/masks/device.rb
370
- - app/models/masks/error.rb
371
- - app/models/masks/event.rb
372
- - app/models/masks/mask.rb
373
- - app/models/masks/openid/authorization.rb
374
- - app/models/masks/openid/token.rb
375
- - app/models/masks/rails/actor.rb
376
- - app/models/masks/rails/actor_role.rb
377
- - app/models/masks/rails/device.rb
378
- - app/models/masks/rails/email.rb
379
- - app/models/masks/rails/key.rb
380
- - app/models/masks/rails/openid/access_token.rb
381
- - app/models/masks/rails/openid/authorization.rb
382
- - app/models/masks/rails/openid/client.rb
383
- - app/models/masks/rails/openid/id_token.rb
384
- - app/models/masks/rails/recovery.rb
385
- - app/models/masks/rails/role.rb
386
- - app/models/masks/rails/scope.rb
387
- - app/models/masks/session.rb
388
- - app/models/masks/sessions/access.rb
389
- - app/models/masks/sessions/inline.rb
390
- - app/models/masks/sessions/request.rb
391
- - app/resources/masks/actor_resource.rb
392
- - app/resources/masks/session_resource.rb
393
- - app/views/layouts/masks/application.html.erb
394
- - app/views/layouts/masks/mailer.html.erb
395
- - app/views/layouts/masks/mailer.text.erb
396
- - app/views/layouts/masks/manage.html.erb
397
- - app/views/masks/actor_mailer/recover_credentials.html.erb
398
- - app/views/masks/actor_mailer/recover_credentials.text.erb
399
- - app/views/masks/actor_mailer/verify_email.html.erb
400
- - app/views/masks/actor_mailer/verify_email.text.erb
401
- - app/views/masks/actors/current.html.erb
402
- - app/views/masks/application/_header.html.erb
403
- - app/views/masks/backup_codes/new.html.erb
404
- - app/views/masks/emails/new.html.erb
405
- - app/views/masks/emails/verify.html.erb
406
- - app/views/masks/keys/new.html.erb
407
- - app/views/masks/manage/actors/index.html.erb
408
- - app/views/masks/manage/actors/show.html.erb
409
- - app/views/masks/manage/clients/index.html.erb
410
- - app/views/masks/manage/clients/show.html.erb
411
- - app/views/masks/manage/dashboard/index.html.erb
412
- - app/views/masks/manage/devices/index.html.erb
413
- - app/views/masks/one_time_code/new.html.erb
414
- - app/views/masks/openid/authorizations/error.html.erb
415
- - app/views/masks/openid/authorizations/new.html.erb
416
- - app/views/masks/passwords/edit.html.erb
417
- - app/views/masks/recoveries/new.html.erb
418
- - app/views/masks/recoveries/password.html.erb
419
- - app/views/masks/sessions/new.html.erb
420
- - config/brakeman.ignore
421
- - config/initializers/inflections.rb
422
- - config/locales/en.yml
36
+ - app/controllers/masks/rails/base_controller.rb
37
+ - app/controllers/masks/rails/handshakes_controller.rb
38
+ - app/controllers/masks/rails/sessions_controller.rb
39
+ - app/views/layouts/masks/rails/plain.html.erb
40
+ - app/views/masks/rails/handshakes/refused.html.erb
41
+ - app/views/masks/rails/handshakes/show.html.erb
423
42
  - config/routes.rb
424
- - db/migrate/20231205173845_create_actors.rb
425
- - db/migrate/20240329182422_support_openid.rb
426
- - lib/generators/masks/install/USAGE
427
43
  - lib/generators/masks/install/install_generator.rb
428
- - lib/generators/masks/install/templates/initializer.rb
429
- - lib/generators/masks/install/templates/masks.json
44
+ - lib/generators/masks/install/templates/masks.rb.tt
430
45
  - lib/masks.rb
431
- - lib/masks/configuration.rb
432
- - lib/masks/engine.rb
433
- - lib/masks/middleware.rb
46
+ - lib/masks/client.rb
47
+ - lib/masks/client/claims.rb
48
+ - lib/masks/client/errors.rb
49
+ - lib/masks/client/handshake.rb
50
+ - lib/masks/client/http.rb
51
+ - lib/masks/client/introspection.rb
52
+ - lib/masks/client/issuer.rb
53
+ - lib/masks/client/pkce.rb
54
+ - lib/masks/client/rack.rb
55
+ - lib/masks/client/registration.rb
56
+ - lib/masks/client/registry.rb
57
+ - lib/masks/client/resource.rb
58
+ - lib/masks/client/session.rb
59
+ - lib/masks/client/stores.rb
60
+ - lib/masks/client/tokens.rb
61
+ - lib/masks/client/tracker.rb
62
+ - lib/masks/client/verifier.rb
63
+ - lib/masks/rails.rb
64
+ - lib/masks/rails/authentication.rb
65
+ - lib/masks/rails/configurable.rb
66
+ - lib/masks/rails/configuration.rb
67
+ - lib/masks/rails/credentials.rb
68
+ - lib/masks/rails/engine.rb
69
+ - lib/masks/rails/protected_resource.rb
434
70
  - lib/masks/version.rb
435
- - lib/tasks/masks_tasks.rake
436
- - masks.json
437
- homepage: https://masks.geiger.to
71
+ homepage: https://github.com/masksrb/masks
438
72
  licenses:
439
73
  - MIT
440
74
  metadata:
441
- homepage_uri: https://masks.geiger.to
442
- source_code_uri: https://github.com/geiger-to/masks
443
- changelog_uri: https://masks.geiger.to/changelog
75
+ source_code_uri: https://github.com/masksrb/masks
76
+ changelog_uri: https://github.com/masksrb/masks/blob/main/client/CHANGELOG.md
444
77
  rubygems_mfa_required: 'true'
445
- post_install_message:
446
78
  rdoc_options: []
447
79
  require_paths:
448
80
  - lib
449
81
  required_ruby_version: !ruby/object:Gem::Requirement
450
82
  requirements:
451
- - - "~>"
83
+ - - ">="
452
84
  - !ruby/object:Gem::Version
453
- version: '3.1'
85
+ version: '3.2'
454
86
  required_rubygems_version: !ruby/object:Gem::Requirement
455
87
  requirements:
456
88
  - - ">="
457
89
  - !ruby/object:Gem::Version
458
90
  version: '0'
459
91
  requirements: []
460
- rubygems_version: 3.5.3
461
- signing_key:
92
+ rubygems_version: 3.6.9
462
93
  specification_version: 4
463
- summary: mask ruby applications with auth
94
+ summary: Sign a Ruby or Rails app in against a masks issuer.
464
95
  test_files: []