-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGemfile
More file actions
150 lines (130 loc) · 5.2 KB
/
Copy pathGemfile
File metadata and controls
150 lines (130 loc) · 5.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
# frozen_string_literal: true
source 'https://rubygems.org'
# Bundle edge Rails instead: gem "rails", github: "rails/rails", branch: "main"
gem 'rails', '>= 8.0'
# The modern asset pipeline for Rails [https://github.com/rails/propshaft]
gem 'propshaft'
# Use PostgreSQL as the database for Active Record
gem 'pg', '>= 1.1'
# Use the Puma web server [https://github.com/puma/puma]
gem 'puma', '>= 5.0'
# Use JavaScript with ESM import maps [https://github.com/rails/importmap-rails]
gem 'importmap-rails'
# Hotwire's SPA-like page accelerator [https://turbo.hotwired.dev]
gem 'turbo-rails'
# Hotwire's modest JavaScript framework [https://stimulus.hotwired.dev]
gem 'stimulus-rails'
# Use Active Model has_secure_password [https://guides.rubyonrails.org/active_model_basics.html#securepassword]
gem 'bcrypt'
# Authentication framework [https://rodauth.jeremyevans.net/]
gem 'rodauth-oauth', '~> 1.6'
gem 'rodauth-rails'
# Required for Rodauth to use ActiveRecord's database connection
gem 'sequel-activerecord_connection'
# Required for Rodauth's render plugin (used for email templates)
gem 'tilt'
# OAuth integration for Rodauth [https://github.com/janko/rodauth-omniauth]
gem 'rodauth-omniauth'
# Generic OpenID Connect provider support
gem 'omniauth_openid_connect'
# Authorization framework [https://github.com/varvet/pundit]
gem 'pundit'
# Audit logging [https://github.com/paper-trail-gem/paper_trail]
gem 'paper_trail'
# Pagination [https://github.com/ddnexus/pagy]
gem 'pagy'
gem 'prawn'
gem 'prawn-table'
gem 'premailer-rails'
# Rate limiting and throttling [https://github.com/rack/rack-attack]
gem 'rack-attack'
# TOTP for two-factor authentication [https://github.com/mdp/rotp]
gem 'rotp'
# QR code generation for OTP setup [https://github.com/whomwah/rqrcode]
gem 'rqrcode'
# WebAuthn support for passkeys [https://github.com/cedarcode/webauthn-ruby]
gem 'aws-sdk-s3', require: false
gem 'webauthn'
# Web push notifications (VAPID) [https://github.com/pushpad/web-push]
gem 'web-push'
# OpenTelemetry for observability [https://opentelemetry.io/docs/languages/ruby/]
gem 'opentelemetry-api'
gem 'opentelemetry-sdk'
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: %i[windows jruby]
# Solid Queue is a database-based queuing backend for Active Job [https://github.com/rails/solid_queue]
gem 'solid_queue'
# Reduces boot times through caching; required in config/boot.rb
gem 'bootsnap', require: false
# Use Phlex for views [https://github.com/phlex-rb/phlex-rails]
gem 'csv'
gem 'mcp', require: false
gem 'phlex-rails'
gem 'ruby_llm', require: false
gem 'ruby_ui', require: false
gem 'tailwindcss-rails'
gem 'tailwind_merge'
group :production, :test do
# OpenTelemetry for observability [https://opentelemetry.io/docs/languages/ruby/]
gem 'opentelemetry-exporter-otlp'
gem 'opentelemetry-instrumentation-net_http'
gem 'opentelemetry-instrumentation-pg'
gem 'opentelemetry-instrumentation-rack'
gem 'opentelemetry-instrumentation-rails'
end
group :production do
# Structured logging for production
gem 'ecs-logging'
gem 'lograge'
# Use the database-backed adapters for Rails.cache, Active Job, and Action Cable
gem 'solid_cable'
# Solid Cache is a database-backed Active Support cache store [https://github.com/rails/solid_cache]
gem 'solid_cache'
# Add HTTP asset caching/compression and X-Sendfile acceleration to Puma [https://github.com/basecamp/thruster/]
gem 'thruster', require: false
end
group :test do
# Clean database between tests
gem 'database_cleaner-active_record'
gem 'simplecov', require: false
# Playwright for end-to-end testing
gem 'capybara'
gem 'capybara-playwright-driver'
gem 'factory_bot_rails'
gem 'pundit-matchers'
gem 'rspec-rails'
gem 'shoulda-matchers'
# HTTP request stubbing [https://github.com/bblimke/webmock]
gem 'webmock'
# Mutation testing [https://github.com/mbj/mutant] — lives in :test because it
# drives the RSpec suite against the app + database. mutant-license (the OSS
# licence gem) is added once the OSS token is available — see
# docs/superpowers/plans/2026-06-09-test-coverage-and-mutation-testing.md (Task 1.2).
gem 'mutant', require: false
gem 'mutant-rspec', require: false
end
group :tools do
# Static analysis for security vulnerabilities [https://brakemanscanner.org/]
gem 'brakeman', require: false
# Check for vulnerable dependencies [https://github.com/rubysec/bundler-audit]
gem 'bundler-audit', require: false
# Omakase Ruby styling [https://github.com/rails/rubocop-rails-omakase/]
gem 'rubocop-rails-omakase', require: false
# Factory Bot [https://github.com/thoughtbot/factory_bot_rails]
gem 'rubocop-factory_bot', require: false
gem 'rspec-github', require: false
gem 'rubocop-capybara'
gem 'rubocop-rails'
gem 'rubocop-rspec'
gem 'rubocop-rspec_rails'
gem 'rubycritic', require: false
end
group :development do
# See https://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-the-debug-gem
gem 'debug', platforms: %i[mri windows], require: 'debug/prelude'
gem 'vernier', '~> 1.10', require: false
gem 'web-console'
end
gem 'ruby-lsp', '~> 0.26.9', group: :development
gem 'ruby-lsp-rails', '~> 0.4.8', group: :development
gem 'rubyzip', '~> 3.4'