Commit Graph

606 Commits

Author SHA1 Message Date
Jorge Manrubia cebd5d35f6 Revert "Remove local ci for now"
This reverts commit 7d6ed4a459f78d14767f1523b32553df84e627e5.
2025-11-28 15:53:58 +01:00
Jorge Manrubia 76d3ec0fc4 Remove local ci for now 2025-11-28 15:53:58 +01:00
Jorge Manrubia e962ba82ed Simplify local ci 2025-11-28 15:53:58 +01:00
Jorge Manrubia 4e09352c09 Bring simple signup flow from the fizzy-saas gem
We skip the QB code and we fill external account ids automatically on creation with a sequence

See:
https://github.com/basecamp/fizzy-saas/pull/7
2025-11-28 15:53:58 +01:00
Jorge Manrubia 96caeacb03 Move to ENV (kamal secrets) 2025-11-28 15:53:58 +01:00
Jorge Manrubia c61dba0641 Format 2025-11-28 15:53:58 +01:00
Jorge Manrubia 1083f715a8 This was moved to the gem already by Mike 2025-11-28 15:53:58 +01:00
Jorge Manrubia fa9ee0381d Move more settings to the gem 2025-11-28 15:53:58 +01:00
Jorge Manrubia af42ce43d4 Remove vapid keys in development 2025-11-28 15:53:58 +01:00
Jorge Manrubia 44d086e076 Cleanup of credentials
Secrets moved to 1password.
2025-11-28 15:53:58 +01:00
Jorge Manrubia 18e1badfb5 Prevent choking when no structured logging for now 2025-11-28 15:53:58 +01:00
Jorge Manrubia 197090f754 Move active storage config to gem 2025-11-28 15:53:58 +01:00
Jorge Manrubia 8baf5b8abd Make mission control only accessible for staff members 2025-11-28 15:53:58 +01:00
Jorge Manrubia 99bda234c0 Bring changes from main 2025-11-28 15:53:58 +01:00
Jorge Manrubia 8724963b84 Bring vanilla versions for Dockerfile and deploy config, we are moving those to the private saas gem 2025-11-28 15:53:58 +01:00
Jorge Manrubia f1df9afe72 Not needed anymore, no more bundler groups 2025-11-28 15:53:58 +01:00
Jorge Manrubia fe20d8f2a5 Format 2025-11-28 15:53:58 +01:00
Jorge Manrubia cd231c48d5 Format 2025-11-28 15:53:58 +01:00
Jorge Manrubia 13f1ad19f3 The engine automounts now 2025-11-28 15:53:58 +01:00
Jorge Manrubia 3414fea012 Remove comment 2025-11-28 15:53:58 +01:00
Jorge Manrubia 277a45fa88 Add CI step for saas tests 2025-11-28 15:53:58 +01:00
Jorge Manrubia 2c7079393a Move kamal deploy config to the gem 2025-11-28 15:53:48 +01:00
Jorge Manrubia 35b49a417d Move the SASS database config to the gem 2025-11-28 15:53:48 +01:00
Jorge Manrubia 102827ff8d Use bundler groups instead of conditional
So that the gemfile.lock does not change across invocations
2025-11-28 15:53:48 +01:00
Jorge Manrubia cf59ac1da9 Split database files 2025-11-28 15:53:48 +01:00
Jorge Manrubia bab914d4e0 Move db check to the Fizzy module 2025-11-28 15:53:48 +01:00
Jorge Manrubia e1e9a01720 Make open source the default, and check for sass instead 2025-11-28 15:53:48 +01:00
Fernando Álvarez 91929d7c09 Add extra fizzy lbs 2025-11-28 15:19:51 +01:00
Mike Dalessio f0b2603ba4 Rename bin/gitleaks to gitleaks-audit
to prevent script recursion if bin is in user's $PATH
2025-11-26 21:36:01 -05:00
Mike Dalessio 7f46063c25 Introduce gitleaks to the codebase
- `bin/setup` installs gitleaks
- add `gitleaks dir` command to CI
- configure gitleaks to ignore tmp, log, and encrypted files
- tag existing false positives with `gitleaks:allow`
- add historical false positives to the ignore list
2025-11-26 15:46:47 -05:00
Donal McBreen 18fa877882 Switch to a pool size of 5 2025-11-26 10:27:06 +00:00
Donal McBreen c4498212dc Merge branch 'main' into sqlite
* main: (116 commits)
  Ensure avatar thumbnails are square
  Update useragent to recognize twitterbot/facebot
  Add defensive styles for non-square avatar images
  Update test for copy changes
  Missed commit
  AI: standardize on https://agents.md
  Make it clear this is just notifications, not comprehensive activity
  AI: configure MCP servers for Chrome, Grafana, and Sentry (#1727)
  Allow requests from Google Image Proxy
  Update to basecamp's useragent fork
  Clean up a little bit the CSRF reporting code
  Claude: production observability guidance (#1725)
  Prevent autoscroll to the root columns container to prevent jump on page load
  Include full name string so you can type your name to filter
  Prioritize current user and assigned users in assignment dropdown
  Check and report on Sec-Fetch-Site header for forgery protection
  bundle update
  Bump bootsnap from 1.18.6 to 1.19.0
  Bump rails from `077c3ad` to `17f6e00`
  Fix cards getting stuck in edit mode
  ...
2025-11-26 10:07:41 +00:00
Donal McBreen b839340cf2 Tidy up modules and on_load points 2025-11-26 10:02:32 +00:00
Donal McBreen 9c86205510 Enforce SQLite column limits via CHECK constraints
Patch the sqlite adapter to add CHECK constraints for string and text
column limits. We'll do them inline, so that any column changes
automatically update the constraints.
2025-11-26 09:50:29 +00:00
Donal McBreen 97bcdf1853 Enforce column limits via concern
SQLite columns lengths are purely informational, so we'll enforce the
limits via a concern that checks the lengths from the schema.
2025-11-25 15:32:34 +00:00
Donal McBreen 67f648f356 Enforce MySQL string/text limits in SQLite
To ensure consistent column lengths, we'll add limits to string and text
columns which match MySQL defaults.
2025-11-25 14:50:40 +00:00
Kevin McConnell b238a5b45b Don't report ConcurrentMigrationError to Sentry 2025-11-25 13:24:07 +00:00
Kevin McConnell b6e31a234a Set MySQL max statement timeout to 5s 2025-11-25 12:58:17 +00:00
Donal McBreen e07419e953 Update config/database.yml
Co-authored-by: Mike Dalessio <mike.dalessio@gmail.com>
2025-11-25 11:38:21 +00:00
Donal McBreen b96ea6e9d0 Update config/database.yml
Co-authored-by: Mike Dalessio <mike.dalessio@gmail.com>
2025-11-25 11:38:13 +00:00
Mike Dalessio 9f117159a6 Restore structured logging of queenbee_id
and clean up some other small remaining "plan b" to-dos.
2025-11-24 15:50:45 -05:00
Mike Dalessio 44f1d19f9a Configure beta to use production blob store 2025-11-24 14:25:14 -05:00
Mike Dalessio 2a88e8aacc Configure beta load balancer
including otel config
2025-11-24 14:21:42 -05:00
Mike Dalessio a600faa0fc Update beta deployment and secrets config
to use the production database. Note:

- no jobs containers are running
- we use a single cache db (not a DC-local one)
2025-11-24 14:21:40 -05:00
Mike Dalessio 6ebb572964 Remove tenant format specifier from Disk storage config 2025-11-24 13:45:23 -05:00
Kevin McConnell bd259f7795 Add optimistic pausing to avoid stale reads
Instead of writer pinning, we'll track the last transaction ID of each
write in the session. Then on each read we'll wait for the replica to
report that this transaction is available.

If it doesn't become available within a reasonable timeout, we'll
proceed anyway, and accept the possibility of a stale read.

The hope here is that most of the time, the replica is caught up in the
time between a write request and the following read request. If it's
not, we now have a little tolerance to wait for it, which hopefully
proves enough to stale reads are not encountered in normal use.

We also disable the writer affinity opt-out mechanism that we had
before, since we will no longer be using writer affinity at the load
balancer.
2025-11-24 13:29:52 +00:00
David Heinemeier Hansson 03e24b0ffa Not needed 2025-11-22 12:13:22 +01:00
Donal McBreen 4c4f6957ec Drop sqlite compability, using a separate schema.rb 2025-11-21 17:25:40 +00:00
Donal McBreen b1862733dd Merge branch 'main' into sqlite 2025-11-21 15:23:34 +00:00
Jason Zimdars 2382326a13 Merge pull request #1638 from basecamp/expand-activity-columns
Expand activity columns
2025-11-21 09:11:22 -06:00