8f39c015ea
This is the first step of a multi-step SaaS engine extraction. Looking ahead to an open source release, we need to make sure that local authentication is treated as an "official" option, and not just a hack I added for Kevin to do load testing outside our DC. So this PR gets to green, and adds a CI step in "local authentication" mode. This all probably feels a little hacky to you, Reader, but the goal of this change is to ease the next step, which will be extracting the 37id and Queenbee integrations into a proprietary "SaaS mode" engine. In service of that goal, this commit simply wraps all of the dependent code and tests with a conditional check on `config.x.local_authentication`.
74 lines
2.0 KiB
Ruby
74 lines
2.0 KiB
Ruby
source "https://rubygems.org"
|
|
git_source(:bc) { |repo| "https://github.com/basecamp/#{repo}" }
|
|
|
|
gem "rails", github: "rails/rails", branch: "main"
|
|
|
|
# Assets & front end
|
|
gem "importmap-rails"
|
|
gem "propshaft"
|
|
gem "stimulus-rails"
|
|
gem "turbo-rails"
|
|
|
|
# Deployment and drivers
|
|
gem "activerecord-tenanted"
|
|
gem "bootsnap", require: false
|
|
gem "kamal", require: false
|
|
gem "puma", ">= 5.0"
|
|
gem "solid_cable", ">= 3.0"
|
|
gem "solid_cache", "~> 1.0"
|
|
gem "solid_queue", "~> 1.1"
|
|
gem "sqlite3", ">= 2.0"
|
|
gem "thruster", require: false
|
|
|
|
# Features
|
|
gem "bcrypt", "~> 3.1.7"
|
|
gem "geared_pagination", "~> 1.2"
|
|
gem "rqrcode"
|
|
gem "redcarpet"
|
|
gem "rouge"
|
|
gem "jbuilder"
|
|
gem "lexxy", bc: "lexxy"
|
|
gem "image_processing", "~> 1.14"
|
|
gem "platform_agent"
|
|
gem "aws-sdk-s3", require: false
|
|
gem "web-push"
|
|
gem "net-http-persistent"
|
|
|
|
# 37id and Queenbee integration
|
|
need_signal_id = ENV.fetch("LOCAL_AUTHENTICATION", "") == ""
|
|
gem "signal_id", bc: "signal_id", branch: "rails4", require: need_signal_id
|
|
gem "mysql2", github: "jeremy/mysql2", branch: "force_latin1_to_utf8" # needed by signal_id
|
|
gem "queuety", bc: "queuety", branch: "rails4" # needed by signal_id
|
|
gem "service_concurrency_prevention", bc: "service_concurrency_prevention" # needed by queuety
|
|
gem "portfolio", ">= 4.6", bc: "portfolio" # needed by signal_id
|
|
gem "file_repository", "~> 1.4.5", bc: "file_repository" # needed by portfolio
|
|
gem "queenbee", bc: "queenbee-plugin"
|
|
gem "activeresource", require: "active_resource" # needed by queenbee
|
|
|
|
# Telemetry, logging, and operations
|
|
gem "mission_control-jobs"
|
|
gem "sentry-ruby"
|
|
gem "sentry-rails"
|
|
gem "rails_structured_logging", bc: "rails-structured-logging"
|
|
|
|
# AI
|
|
gem "ruby_llm", git: "https://github.com/crmne/ruby_llm.git"
|
|
gem "tiktoken_ruby"
|
|
gem "sqlite-vec", "0.1.7.alpha.2"
|
|
|
|
group :development, :test do
|
|
gem "debug"
|
|
gem "bundler-audit", require: false
|
|
gem "brakeman", require: false
|
|
gem "rubocop-rails-omakase", require: false
|
|
gem "letter_opener"
|
|
end
|
|
|
|
group :test do
|
|
gem "capybara"
|
|
gem "selenium-webdriver"
|
|
gem "webmock"
|
|
gem "vcr"
|
|
gem "mocha"
|
|
end
|