mirror of
https://github.com/we-promise/sure.git
synced 2026-04-09 15:24:48 +00:00
* Add configuration and logic for dynamic SSO provider support and stricter JIT account creation - Introduced `config/auth.yml` for centralized auth configuration and documentation. - Added support for multiple SSO providers, including Google, GitHub, and OpenID Connect. - Implemented stricter JIT SSO account creation modes (`create_and_link` vs `link_only`). - Enabled optional restriction of JIT creation by allowed email domains. - Enhanced OmniAuth initializer for dynamic provider setup and better configurability. - Refined login UI to handle local login disabling and emergency super-admin override. - Updated account creation flow to respect JIT mode and domain checks. - Added tests for SSO account creation, login form visibility, and emergency overrides. # Conflicts: # app/controllers/sessions_controller.rb * remove non-translation * Refactor authentication views to use translation keys and update locale files - Extracted hardcoded strings in `oidc_accounts/link.html.erb` and `sessions/new.html.erb` into translation keys for better localization support. - Added missing translations for English and Spanish in `sessions` and `oidc_accounts` locale files. * Enhance OmniAuth provider configuration and refine local login override logic - Updated OmniAuth initializer to support dynamic provider configuration with `name` and scoped parameters for Google and GitHub. - Improved local login logic to enforce stricter handling of super-admin override when local login is disabled. - Added test for invalid super-admin override credentials. * Document Google sign-in configuration for local development and self-hosted environments --------- Co-authored-by: Josh Waldrep <joshua.waldrep5+github@gmail.com>
133 lines
2.4 KiB
Ruby
133 lines
2.4 KiB
Ruby
source "https://rubygems.org"
|
|
|
|
ruby file: ".ruby-version"
|
|
|
|
# Rails
|
|
gem "rails", "~> 7.2.2"
|
|
|
|
# Drivers
|
|
gem "pg", "~> 1.5"
|
|
gem "redis", "~> 5.4"
|
|
|
|
# Deployment
|
|
gem "puma", ">= 5.0"
|
|
gem "bootsnap", require: false
|
|
|
|
# Assets
|
|
gem "importmap-rails"
|
|
gem "propshaft"
|
|
gem "tailwindcss-rails"
|
|
gem "lucide-rails", github: "maybe-finance/lucide-rails"
|
|
|
|
# Hotwire + UI
|
|
gem "stimulus-rails"
|
|
gem "turbo-rails"
|
|
gem "view_component"
|
|
|
|
# https://github.com/lookbook-hq/lookbook/issues/712
|
|
# TODO: Remove max version constraint when fixed
|
|
gem "lookbook", "2.3.11"
|
|
|
|
gem "hotwire_combobox"
|
|
|
|
# Background Jobs
|
|
gem "sidekiq"
|
|
gem "sidekiq-cron"
|
|
gem "sidekiq-unique-jobs"
|
|
|
|
# Monitoring
|
|
gem "vernier"
|
|
gem "rack-mini-profiler"
|
|
gem "sentry-ruby"
|
|
gem "sentry-rails"
|
|
gem "sentry-sidekiq"
|
|
gem "posthog-ruby"
|
|
gem "logtail-rails"
|
|
gem "skylight", groups: [ :production ]
|
|
|
|
# Active Storage
|
|
gem "aws-sdk-s3", "~> 1.208.0", require: false
|
|
gem "image_processing", ">= 1.2"
|
|
|
|
# Other
|
|
gem "ostruct"
|
|
gem "bcrypt", "~> 3.1"
|
|
gem "jwt"
|
|
gem "jbuilder"
|
|
gem "countries"
|
|
|
|
# OAuth & API Security
|
|
gem "doorkeeper"
|
|
gem "rack-attack", "~> 6.6"
|
|
gem "faraday"
|
|
gem "faraday-retry"
|
|
gem "faraday-multipart"
|
|
gem "inline_svg"
|
|
gem "octokit"
|
|
gem "pagy"
|
|
gem "rails-settings-cached"
|
|
gem "tzinfo-data", platforms: %i[windows jruby]
|
|
gem "csv"
|
|
gem "redcarpet"
|
|
gem "stripe"
|
|
gem "plaid"
|
|
gem "httparty"
|
|
gem "rotp", "~> 6.3"
|
|
gem "rqrcode", "~> 3.0"
|
|
gem "activerecord-import"
|
|
gem "rubyzip", "~> 2.3"
|
|
|
|
# OpenID Connect & OAuth authentication
|
|
gem "omniauth", "~> 2.1"
|
|
gem "omniauth-rails_csrf_protection"
|
|
gem "omniauth_openid_connect"
|
|
gem "omniauth-google-oauth2"
|
|
gem "omniauth-github"
|
|
|
|
# State machines
|
|
gem "aasm"
|
|
gem "after_commit_everywhere", "~> 1.0"
|
|
|
|
# AI
|
|
gem "ruby-openai"
|
|
gem "langfuse-ruby", "~> 0.1.4", require: "langfuse"
|
|
|
|
group :development, :test do
|
|
gem "debug", platforms: %i[mri windows]
|
|
gem "brakeman", require: false
|
|
gem "rubocop-rails-omakase", require: false
|
|
gem "i18n-tasks"
|
|
gem "erb_lint"
|
|
gem "dotenv-rails"
|
|
end
|
|
|
|
if ENV["BENCHMARKING_ENABLED"]
|
|
gem "dotenv-rails", groups: [ :production ]
|
|
end
|
|
|
|
group :development do
|
|
gem "hotwire-livereload"
|
|
gem "letter_opener"
|
|
gem "ruby-lsp-rails"
|
|
gem "web-console"
|
|
gem "faker"
|
|
gem "benchmark-ips"
|
|
gem "stackprof"
|
|
gem "derailed_benchmarks"
|
|
gem "foreman"
|
|
end
|
|
|
|
group :test do
|
|
gem "capybara"
|
|
gem "selenium-webdriver"
|
|
gem "mocha"
|
|
gem "vcr"
|
|
gem "webmock"
|
|
gem "climate_control"
|
|
gem "simplecov", require: false
|
|
gem "rspec-rails"
|
|
gem "rswag-api"
|
|
gem "rswag-specs"
|
|
gem "rswag-ui"
|
|
end
|