Skip to content

Commit b04242b

Browse files
authored
Merge pull request #11463 from neinteractiveliterature/jwt-backend-auth
JWT/OIDC backend: add Authorization Code + PKCE support for frontend auth
2 parents c01d6c4 + b794cd1 commit b04242b

27 files changed

Lines changed: 541 additions & 980 deletions

.rubocop_todo.yml

Lines changed: 46 additions & 656 deletions
Large diffs are not rendered by default.

Gemfile

Lines changed: 35 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1+
# frozen_string_literal: true
12
source "https://rubygems.org"
23

34
ruby File.read(File.expand_path(".ruby-version", __dir__)).strip
4-
gem "rails", "8.1.3"
5+
gem "rails", "8.1.1"
56

67
# benchmark was removed from Ruby's default gems in Ruby 4.0; required by mini_magick
78
gem "benchmark"
@@ -17,13 +18,13 @@ gem "with_advisory_lock"
1718

1819
# Devise for authentication, pundit for authorization, doorkeeper for OAuth providership
1920
gem "devise"
20-
gem "pundit"
21-
gem "recaptcha", require: "recaptcha/rails"
22-
gem "doorkeeper", "5.9.0"
2321
gem "devise-doorkeeper"
2422
gem "devise-encryptable"
23+
gem "doorkeeper", "5.8.2"
2524
gem "doorkeeper-jwt"
2625
gem "doorkeeper-openid_connect"
26+
gem "pundit"
27+
gem "recaptcha", require: "recaptcha/rails"
2728

2829
# Let's store sessions in the database, shall we?
2930
gem "activerecord-session_store"
@@ -41,24 +42,23 @@ gem "civil_service", github: "neinteractiveliterature/civil_service", branch: "n
4142

4243
# File uploading
4344
gem "aws-sdk-s3"
44-
gem "ruby-vips"
4545
gem "image_processing", "~> 1.2"
46-
gem "active_storage_svg_sanitizer"
46+
gem "ruby-vips"
4747

4848
# Filthy lucre
49-
gem "money-rails"
50-
gem "eu_central_bank"
51-
gem "stripe"
5249
gem "business_time"
50+
gem "eu_central_bank"
5351
gem "holidays"
52+
gem "money-rails"
53+
gem "stripe"
5454

5555
# Pagination and search
56-
gem "will_paginate"
5756
gem "pg_search"
57+
gem "will_paginate"
5858

5959
# GraphQL server
60+
gem "apollo_upload_server", "2.1.7"
6061
gem "graphql"
61-
gem "apollo_upload_server", "2.1.8"
6262
gem "graphql-rails_logger", groups: %i[development test]
6363

6464
# Email stuff
@@ -71,13 +71,13 @@ gem "aws-sdk-sns"
7171
gem "redcarpet"
7272

7373
# SMS and phone support
74-
gem "twilio-ruby", "~> 7.10.0"
7574
gem "phonelib"
75+
gem "twilio-ruby", "~> 7.8.0"
7676

7777
# Background workers and scheduling
78-
gem "shoryuken"
7978
gem "aws-sdk-sqs"
8079
gem "cloudwatch_scheduler", github: "paul/cloudwatch_scheduler"
80+
gem "shoryuken"
8181

8282
# Privacy-respecting metrics
8383
gem "ahoy_matey"
@@ -86,22 +86,23 @@ gem "ahoy_matey"
8686
gem "lograge"
8787

8888
# Miscellany
89+
gem "browser"
8990
gem "csv"
9091
gem "dalli"
9192
gem "domain_prefix"
9293
gem "faraday"
94+
gem "fly.io-rails"
9395
gem "icalendar"
9496
gem "platform-api"
95-
gem "fly.io-rails"
96-
gem "tzinfo-data"
97-
gem "browser"
9897
gem "positioning"
98+
gem "rack-cors"
9999
gem "stackprof"
100+
gem "tzinfo-data"
100101

101102
gem "faker", group: "development", require: false
102103

104+
gem "oj", "~> 3.16.0"
103105
gem "rollbar"
104-
gem "oj", "~> 3.17.0"
105106

106107
# Reduces boot times through caching; required in config/boot.rb
107108
gem "bootsnap", ">= 1.1.0", require: false
@@ -110,9 +111,9 @@ gem "parallel", groups: %i[development intercode1_import]
110111

111112
# Production profiling
112113
group :skylight do
114+
gem "rbtrace"
113115
gem "skylight"
114116
gem "webrick" # we don't actually use it, but Skylight needs it on boot
115-
gem "rbtrace"
116117
end
117118

118119
group :development do
@@ -140,20 +141,20 @@ group :development do
140141
gem "debug"
141142

142143
# Linting
143-
gem "rubocop"
144-
gem "rubocop-performance"
145-
gem "rubocop-rails"
146-
gem "rubocop-sequel"
144+
gem "prettier", "4.0.4"
145+
gem "prettier_print"
146+
gem "prism"
147+
gem "rubocop", ">= 1.82"
148+
gem "rubocop-capybara", require: false
147149
gem "rubocop-factory_bot", require: false
148150
gem "rubocop-graphql", require: false
151+
gem "rubocop-performance"
152+
gem "rubocop-rails"
149153
gem "rubocop-rspec", require: false
150-
gem "rubocop-capybara", require: false
151-
gem "prettier", "4.0.4"
152-
gem "prettier_print"
154+
gem "rubocop-sequel"
153155
gem "syntax_tree"
154156
gem "syntax_tree-haml"
155157
gem "syntax_tree-rbs"
156-
gem "prism"
157158

158159
# Find missing `end` statements
159160
gem "dead_end"
@@ -168,32 +169,32 @@ group :development, :test do
168169
end
169170

170171
group :intercode1_import do
172+
gem "mysql2", "~> 0.5.3"
173+
gem "reverse_markdown"
171174
gem "sequel"
172175
gem "term-ansicolor"
173-
gem "reverse_markdown"
174-
gem "mysql2", "~> 0.5.3"
175176
end
176177

177178
group :test do
178179
gem "capybara"
179180
gem "cuprite"
180181
gem "database_cleaner-active_record"
181-
gem "minitest-spec-rails"
182-
gem "minitest-reporters"
183-
gem "minitest-focus"
184-
gem "minitest-mock"
185182
gem "factory_bot"
186183
gem "factory_bot_rails"
184+
gem "minitest-focus"
185+
gem "minitest-mock"
186+
gem "minitest-reporters"
187+
gem "minitest-spec-rails"
187188
gem "simplecov"
188189
gem "simplecov-cobertura"
189190

190191
# Not sure if we actually need it or not, but adding this for now to unbreak controller tests
191192
gem "rails-controller-testing"
192193
end
193194

194-
gem "sentry-ruby", "~> 6.0"
195195
gem "sentry-rails", "~> 6.0"
196+
gem "sentry-ruby", "~> 6.0"
196197

197-
gem "openssl", "~> 4.0"
198+
gem "openssl", "~> 3.3"
198199

199200
gem "readline", "~> 0.0.4"

0 commit comments

Comments
 (0)