diff --git a/.rubocop.yml b/.rubocop.yml index 16773cd4c..c0d945b70 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -11,3 +11,5 @@ AllCops: Exclude: - 'db/migrate/**/*' - 'db/schema*.rb' + - 'saas/db/migrate/**/*' + - 'saas/db/saas_schema.rb' diff --git a/Gemfile.saas b/Gemfile.saas index 2366e80aa..05e6bbabd 100644 --- a/Gemfile.saas +++ b/Gemfile.saas @@ -6,7 +6,7 @@ git_source(:bc) { |repo| "https://github.com/basecamp/#{repo}" } gem "activeresource", require: "active_resource" gem "stripe", "~> 18.0" gem "queenbee", bc: "queenbee-plugin" -gem "fizzy-saas", bc: "fizzy-saas" +gem "fizzy-saas", path: "saas" gem "console1984", bc: "console1984" gem "audits1984", bc: "audits1984" diff --git a/Gemfile.saas.lock b/Gemfile.saas.lock index bd811d9d6..576bbc731 100644 --- a/Gemfile.saas.lock +++ b/Gemfile.saas.lock @@ -19,28 +19,6 @@ GIT rails (>= 7.0) rainbow -GIT - remote: https://github.com/basecamp/fizzy-saas - revision: 8eaa692316bb27ed73bd628b4735082585498ca0 - specs: - fizzy-saas (0.1.0) - audits1984 - console1984 - prometheus-client-mmap (~> 1.4.0) - queenbee - rails (>= 8.1.0.beta1) - rails_structured_logging - sentry-rails - sentry-ruby - yabeda - yabeda-actioncable - yabeda-activejob - yabeda-gc - yabeda-http_requests - yabeda-prometheus-mmap - yabeda-puma-plugin - yabeda-rails (>= 0.10) - GIT remote: https://github.com/basecamp/lexxy revision: 7c197c0afc7095c89df9cb6e24484df9e7212ac8 @@ -181,6 +159,27 @@ GIT tsort (>= 0.2) zeitwerk (~> 2.6) +PATH + remote: saas + specs: + fizzy-saas (0.1.0) + audits1984 + console1984 + prometheus-client-mmap (~> 1.4.0) + queenbee + rails (>= 8.1.0.beta1) + rails_structured_logging + sentry-rails + sentry-ruby + yabeda + yabeda-actioncable + yabeda-activejob + yabeda-gc + yabeda-http_requests + yabeda-prometheus-mmap + yabeda-puma-plugin + yabeda-rails (>= 0.10) + GEM remote: https://rubygems.org/ specs: diff --git a/bin/setup b/bin/setup index e1a9dabb8..a49eaa9d4 100755 --- a/bin/setup +++ b/bin/setup @@ -136,8 +136,7 @@ bundle config set --local auto_install true step "Installing RubyGems" bundle install if [ -n "$SAAS" ]; then - saas_setup=$(bundle show fizzy-saas)/bin/setup - source "$saas_setup" + source "$app_root/saas/bin/setup" else if [ "$DATABASE_ADAPTER" = "mysql" ]; then oss_mysql_setup diff --git a/config/database.yml b/config/database.yml index d5ab7dbc0..359ac6655 100644 --- a/config/database.yml +++ b/config/database.yml @@ -1,6 +1,6 @@ <% config_path = if Fizzy.saas? - gem_path = Gem::Specification.find_by_name("fizzy-saas").gem_dir + gem_path = Rails.root.join("saas").to_s File.join(gem_path, "config", "database.yml") else File.join("config", "database.#{Fizzy.db_adapter}.yml") diff --git a/saas/.github/workflows/lint.yml b/saas/.github/workflows/lint.yml deleted file mode 100644 index bfcd0ef2d..000000000 --- a/saas/.github/workflows/lint.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: Lint - -on: - pull_request: - -permissions: - contents: read - -jobs: - rubocop: - name: Rubocop - runs-on: ubuntu-latest - - env: - BUNDLE_GITHUB__COM: ${{ format('x-access-token:{0}', secrets.FIZZY_GH_TOKEN) }} - - steps: - - uses: actions/checkout@v6 - - uses: ruby/setup-ruby@v1 - with: - ruby-version: .ruby-version - bundler-cache: true - - - name: Run Rubocop - run: bundle exec rubocop diff --git a/saas/.gitignore b/saas/.gitignore deleted file mode 100644 index a3ee5aad3..000000000 --- a/saas/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -/.bundle/ -/doc/ -/log/*.log -/pkg/ -/tmp/ -/test/dummy/db/*.sqlite3 -/test/dummy/db/*.sqlite3-* -/test/dummy/log/*.log -/test/dummy/storage/ -/test/dummy/tmp/ diff --git a/saas/.rubocop.yml b/saas/.rubocop.yml deleted file mode 100644 index 16773cd4c..000000000 --- a/saas/.rubocop.yml +++ /dev/null @@ -1,13 +0,0 @@ -# Omakase Ruby styling for Rails -inherit_gem: { rubocop-rails-omakase: rubocop.yml } - -# Overwrite or add rules to create your own house style -# -# # Use `[a, [b, c]]` not `[ a, [ b, c ] ]` -# Layout/SpaceInsideArrayLiteralBrackets: -# Enabled: false - -AllCops: - Exclude: - - 'db/migrate/**/*' - - 'db/schema*.rb' diff --git a/saas/.ruby-version b/saas/.ruby-version deleted file mode 100644 index 2aa513199..000000000 --- a/saas/.ruby-version +++ /dev/null @@ -1 +0,0 @@ -3.4.7 diff --git a/saas/Dockerfile b/saas/Dockerfile index c30972ad1..92fd9c4ec 100644 --- a/saas/Dockerfile +++ b/saas/Dockerfile @@ -25,6 +25,8 @@ RUN apt-get update -qq && \ # Install application gems COPY Gemfile Gemfile.lock Gemfile.saas Gemfile.saas.lock .ruby-version ./ COPY lib/fizzy.rb ./lib/fizzy.rb +COPY saas/fizzy-saas.gemspec ./saas/ +COPY saas/lib/fizzy/saas/version.rb ./saas/lib/fizzy/saas/ RUN --mount=type=secret,id=GITHUB_TOKEN --mount=type=cache,id=fizzy-permabundle-${RUBY_VERSION},sharing=locked,target=/permabundle \ gem install bundler && \ BUNDLE_PATH=/permabundle BUNDLE_GITHUB__COM="$(cat /run/secrets/GITHUB_TOKEN):x-oauth-basic" bundle install && \ diff --git a/saas/config/environments/production.rb b/saas/config/environments/production.rb index 7add7804b..3cad5c015 100644 --- a/saas/config/environments/production.rb +++ b/saas/config/environments/production.rb @@ -11,7 +11,7 @@ Rails.application.configure do # Content Security Policy config.x.content_security_policy.report_only = false - config.x.content_security_policy.report_uri = "https://o33603.ingest.us.sentry.io/api/4510481339187200/security/?sentry_key=9f126ba30d5f703451a13a2929bb5a10" + config.x.content_security_policy.report_uri = "https://o33603.ingest.us.sentry.io/api/4510481339187200/security/?sentry_key=9f126ba30d5f703451a13a2929bb5a10" # gitleaks:allow (public DSN for CSP reports) config.x.content_security_policy.script_src = "https://challenges.cloudflare.com" config.x.content_security_policy.frame_src = "https://challenges.cloudflare.com" config.x.content_security_policy.connect_src = "https://storage.basecamp.com"