Commit Graph

4959 Commits

Author SHA1 Message Date
Stanko K.R. 9cfd1e43af Enable subscribing to specific actions 2025-09-16 20:03:57 +02:00
Stanko K.R. a515ea3b1f Create webhooks 2025-09-16 20:03:55 +02:00
Lewis Buckley 525c3cb7f7 Merge pull request #1118 from basecamp/otel-collector
OTel collector for Prometheus metrics
2025-09-16 11:45:54 +01:00
Lewis Buckley 95f9b16ef5 Add Webrick, required for prometheus metrics server 2025-09-16 11:35:05 +01:00
Jorge Manrubia 7750b2e776 Merge pull request #1117 from basecamp/bundles-fixes
Fix problem where we can generate overlapping bundles due to flushing
2025-09-16 12:32:04 +02:00
Jorge Manrubia b87a572f58 Fix VCR test 2025-09-16 12:30:23 +02:00
Lewis Buckley c75e1e8e17 Expose 9394 for metrics 2025-09-16 11:24:48 +01:00
Lewis Buckley 437877f290 Debug with info logging 2025-09-16 11:20:46 +01:00
Lewis Buckley ab6622d653 Set up the OTel collector to gather and export metrics from containers 2025-09-16 11:16:02 +01:00
Jorge Manrubia a6eb928688 Fix: update ends_at when flushing bundles
If not, it can happen that the bundlers remains in a delivered state
even when it is not covering its window anymore because it has been delivered.
2025-09-16 12:10:06 +02:00
Stanko Krtalić 0e2c7f7d4d Escape HTML everywhere where html_safe is used (#1114)
* Escape HTML everywhere where html_safe is used
* Mark search results as HTML safe at the attribute
2025-09-16 11:52:15 +02:00
Jorge Manrubia 97506c9a6c Remove trace 2025-09-16 11:22:44 +02:00
Jorge Manrubia 09325403e5 Add missing test (we were only testing this logic via the bundle test) 2025-09-16 11:22:14 +02:00
Mike Dalessio 80de91417d Merge pull request #1115 from basecamp/flavorjones/rename-proprietary-columns
Rename the queenbee_id and signal_user_id columns
2025-09-15 14:05:06 -04:00
Mike Dalessio d5a4239d19 Rename the queenbee_id and signal_user_id columns
to be more generic for the open-source release.

Find the signal account via Account#external_account

Find the signal user via User#external_user
2025-09-15 13:57:53 -04:00
Andy Smith 60e515e462 Merge pull request #1098 from basecamp/collapsible-nav-sections
Collapsible nav sections
2025-09-15 12:54:21 -05:00
Mike Dalessio 46de946e25 Merge pull request #1113 from basecamp/flavorjones/dep-update-20250915
Update dependencies 2025-09-15
2025-09-15 12:37:03 -04:00
Mike Dalessio 3341479605 dep: remaining dependencies
except ruby_llm
2025-09-15 12:32:17 -04:00
Mike Dalessio 13db361aed dep: bump puma
also remove the incorrect on_worker_boot block and the needless
before_fork block
2025-09-15 12:31:57 -04:00
Mike Dalessio 6f7985b887 bump aws-sdk-s3 2025-09-15 12:21:07 -04:00
Mike Dalessio 7ff764d394 dep: bump sentry 2025-09-15 12:20:47 -04:00
Mike Dalessio 7bbb858d91 dep: update lexxy 2025-09-15 12:17:51 -04:00
Mike Dalessio 6a4c1a9f45 dep: update nokogiri 2025-09-15 12:17:23 -04:00
Mike Dalessio e33cd1f473 Merge pull request #1112 from basecamp/flavorjones/yabeda-puma
Introduce yabeda for puma metrics
2025-09-15 12:14:08 -04:00
Mike Dalessio f01e20f64b Introduce yabeda for puma metrics 2025-09-15 12:08:43 -04:00
Mike Dalessio ad1491a484 Merge pull request #1109 from basecamp/flavorjones/yabeda-solid-queue
Introduce yabeda for Solid Queue metrics
2025-09-15 11:19:08 -04:00
Jorge Manrubia b48e919274 Merge pull request #1110 from basecamp/filter-collections
Fix: the system to filter at the current view was broken after moving menu to turbo frame
2025-09-15 17:10:10 +02:00
Jorge Manrubia 48f7f914dc Fix: the system to filter at the current view was broken after moving menu to turbo frame
https://fizzy.37signals.com/5986089/cards/1723
2025-09-15 17:07:09 +02:00
Mike Dalessio 4442964408 Introduce yabeda for Solid Queue metrics 2025-09-15 11:05:04 -04:00
Jorge Manrubia 08b4e69d40 Merge pull request #1108 from basecamp/etag-session
Tie etag to sessions
2025-09-15 16:32:48 +02:00
Jorge Manrubia 2e4138b585 Tie etag to sessions
So that we don't get CSRF token issues if sharing sessions in the same browser
2025-09-15 16:31:01 +02:00
Jorge Manrubia 7bb7cb9f6e Merge pull request #1107 from basecamp/summary-size
Truncate summaries to keep within API limits
2025-09-15 16:19:24 +02:00
Jorge Manrubia 3d8437bd5f Truncate summaries to keep within API limits
https://fizzy.37signals.com/5986089/cards/1739
2025-09-15 16:14:29 +02:00
Jorge Manrubia e17000ad75 Merge pull request #1106 from basecamp/debug-overlapping-bundle
Debug the overlapping bundle
2025-09-15 14:28:59 +02:00
Jorge Manrubia 05ba0b703e Update VCR fixtures 2025-09-15 14:27:10 +02:00
Jorge Manrubia 0e3d25707c Debug the overlapping bundle 2025-09-15 14:01:57 +02:00
Mike Dalessio c1fcb9d098 Merge pull request #1105 from basecamp/flavorjones/split-proprietary-code-v4
Extract proprietary integrations into an engine
2025-09-13 16:44:38 -04:00
Mike Dalessio b1aa5bb5b9 Update Dockerfile to deploy the fizzy-saas gem 2025-09-13 16:36:53 -04:00
Mike Dalessio 04baaa9cd6 dep: pin Rails to my bugfix branch 2025-09-13 16:03:02 -04:00
Mike Dalessio 2630e4bd74 Extract 37id and QB controllers, models, and tests 2025-09-13 16:03:02 -04:00
Mike Dalessio f4e2fe31b4 dep: add refs to the fizzy-saas git dependencies
so that we can quickly switch the app between using the saas extension
and not. (Bundler will re-fetch the remote if the ref is not present.)

Also set the bundler config to auto-install missing dependencies.
2025-09-13 16:03:02 -04:00
Mike Dalessio e7dcefb25b Extract SignalUser and SignalAccount, and QB routes 2025-09-13 16:03:02 -04:00
Mike Dalessio 66075fc49e Extract signal_id and queenbee initialization 2025-09-13 16:03:00 -04:00
Mike Dalessio 8ad0c65997 Extract saas bin/setup 2025-09-13 15:21:01 -04:00
Mike Dalessio 8325059f5f Extract basecamp proprietary dependencies into fizzy-saas
and wire up the fizzy-saas gemspec and Gemfile
2025-09-13 15:21:01 -04:00
Mike Dalessio c21b6d824d Removing unnecessary test files 2025-09-13 15:21:01 -04:00
Mike Dalessio 3fe0a07cdc rails plugin new gems/fizzy-saas --mountable 2025-09-13 15:21:01 -04:00
Mike Dalessio 8f39c015ea Tests now pass with local authentication
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`.
2025-09-13 15:21:00 -04:00
Mike Dalessio 424edb6291 Merge pull request #1104 from basecamp/flavorjones/introduce-system-tests
Introduce a few system tests
2025-09-13 13:54:53 -04:00
Mike Dalessio 5dec991d7c Introduce a few system tests
Primarily I'm trying to exercise active storage and action cable /
turbo streams, both of which have been brittle when making changes to
tenanting.
2025-09-13 13:18:32 -04:00