openstreetmap-website/Gemfile
Milan Cvetkovic 7428da74c2 Use omniauth-microsoft_graph instead of omniauth-windowslive
Omniauth-microsoft_graph correctly populates 'email' and 'name' fields used by OpenStreetMap.
It also  uses updated endpoints for Microsoft identity provider.

Use email address returned by microsoft_graph provider as a verified address.

Upgrading exisiting users from windowslive to microsoft_graph:
 - upon next login existing `windowslive` users will have to authorizei
   OpenStreetMap application to "Read Your Profile," required for proper reading
   of display name field.

The name of the identity provider in OSM is kept to 'windowslive':
 - the entries in users table with `provider == 'windowslive'`
   can be reused for microsoft_graph provider, since
   the uid field is preserved. Users will not need to repeat the sign up process.
 - OAuth2 callback is still `/auth/windowslive`, no updates to Microsoft Identity Provider portal
   App registration are necessary.
2023-08-17 13:01:15 +00:00

165 lines
3.6 KiB
Ruby

source "https://rubygems.org"
# Require rails
gem "rails", "~> 7.0.0"
# Require json for multi_json
gem "json"
# Use postgres as the database
gem "pg"
# Use SCSS for stylesheets
gem "sassc-rails"
# Use Terser as compressor for JavaScript assets
gem "terser"
# Use jquery as the JavaScript library
gem "jquery-rails"
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem "jbuilder", "~> 2.7"
# Reduces boot times through caching; required in config/boot.rb
gem "bootsnap", ">= 1.4.2", :require => false
# Use R2 for RTL conversion
gem "r2", "~> 0.2.7"
# Use autoprefixer to generate CSS prefixes
gem "autoprefixer-rails"
# Use image_optim to optimise images
gem "image_optim_rails"
# Use argon2 for password hashing
gem "argon2"
# Support brotli compression for assets
gem "sprockets-exporters_pack"
# Load rails plugins
gem "actionpack-page_caching", ">= 1.2.0"
gem "activerecord-import"
gem "active_record_union"
gem "bootstrap", "~> 5.1.0"
gem "bootstrap_form", "~> 5.0"
gem "cancancan"
gem "composite_primary_keys", "~> 14.0.0"
gem "config"
gem "delayed_job_active_record"
gem "frozen_record"
gem "http_accept_language", "~> 2.1.1"
gem "i18n-js", "~> 3.9.2"
gem "oauth-plugin", ">= 0.5.1"
gem "openstreetmap-deadlock_retry", ">= 1.3.1", :require => "deadlock_retry"
gem "rack-cors"
gem "rails-i18n", "~> 7.0.0"
gem "rinku", ">= 2.0.6", :require => "rails_rinku"
gem "strong_migrations"
gem "validates_email_format_of", ">= 1.5.1"
# Native OSM extensions
gem "quad_tile", "~> 1.0.1"
# Sanitise URIs
gem "rack-uri_sanitizer"
# Omniauth for authentication
gem "omniauth", "~> 2.0.2"
gem "omniauth-facebook"
gem "omniauth-github"
gem "omniauth-google-oauth2", ">= 0.6.0"
gem "omniauth-mediawiki", ">= 0.0.4"
gem "omniauth-microsoft_graph"
gem "omniauth-openid"
gem "omniauth-rails_csrf_protection", "~> 1.0"
# Doorkeeper for OAuth2
gem "doorkeeper"
gem "doorkeeper-i18n"
# Markdown formatting support
gem "kramdown"
# For status transitions of Issues
gem "aasm"
# Load libxml support for XML parsing and generation
gem "libxml-ruby", ">= 2.0.5", :require => "libxml"
# Use for HTML sanitisation
gem "htmlentities"
gem "sanitize"
# Load faraday for mockable HTTP client
gem "faraday"
# Load maxminddb for querying Maxmind GeoIP database
gem "maxminddb"
# Load rotp to generate TOTP tokens
gem "rotp"
# Load memcache client in case we are using it
gem "connection_pool"
gem "dalli"
gem "kgio"
# Load secure_headers for Content-Security-Policy support
gem "secure_headers"
# Load canonical-rails to generate canonical URLs
gem "canonical-rails"
# Used to generate logstash friendly log files
gem "logstasher"
# Used to generate images for traces
gem "bzip2-ffi"
gem "ffi-libarchive"
gem "gd2-ffij", ">= 0.4.0"
gem "marcel"
# Used for browser detection
gem "browser"
# Used for S3 object storage
gem "aws-sdk-s3"
# Used to resize user images
gem "image_processing"
# Gems useful for development
group :development do
gem "annotate"
gem "better_errors"
gem "binding_of_caller"
gem "debug_inspector"
gem "i18n-tasks"
gem "listen"
gem "vendorer"
end
# Gems needed for running tests
group :test do
gem "brakeman"
gem "capybara", ">= 2.15"
gem "erb_lint", :require => false
gem "factory_bot_rails"
gem "minitest", "~> 5.1"
gem "puma", "~> 5.6"
gem "rails-controller-testing"
gem "rubocop"
gem "rubocop-capybara"
gem "rubocop-factory_bot"
gem "rubocop-minitest"
gem "rubocop-performance"
gem "rubocop-rails"
gem "rubocop-rake"
gem "selenium-webdriver"
gem "simplecov", :require => false
gem "simplecov-lcov", :require => false
gem "webmock"
end