Donal McBreen
f6ec9bbeea
Use a custom class for Uuid values
2025-11-17 09:12:35 -05:00
Donal McBreen
f4729577b6
Use uuids in the search_index tables too
2025-11-17 09:12:35 -05:00
Donal McBreen
fc56ad9d7c
Combine uuid-old and uuid branch changes
...
- Switch to binary 16 for UUID keys
- Remove AccountScopedRecord base class, all model use binary uuids now
- Fix the search sql to serialize uuids properly
- Patch the MySQL schema dumper to output binary lengths
2025-11-17 09:12:34 -05:00
Mike Dalessio
e4011ef211
Update primary keys on customer data to UUIDs
...
- schema changes to primary and foreign keys
- fixture changes
- customer data models subclass AccountScopedRecord
- import script updated
2025-11-17 09:12:30 -05:00
Stanko K.R.
71a332bb08
Remove dead code
2025-11-17 09:12:17 -05:00
Donal McBreen
3aa4a1a562
Shard the search index into 16 tables
...
Create search_index_0 to search_index_15 tables and shard each index by
account id. MySQL has no ability to pre-filter fulltext indexes by
another field so this is the best bet for improving performance.
Each fulltest index internally creates 11 sub tables (see
https://dev.mysql.com/doc/refman/8.4/en/innodb-fulltext-index.html ) so
actually we have 192 tables in total here.
The search_index table name is generated dynamically based on the
account_id.
2025-11-17 09:12:17 -05:00
Kevin McConnell
915c1202f8
Initial minimal primary/replica switching
2025-11-17 09:11:57 -05:00
Mike Dalessio
29cf6485e4
Drop the migrations audit from CI
2025-11-17 09:11:57 -05:00
Mike Dalessio
006aa4d6b3
Tests need to set up the script_name properly
...
which requires tweaking fixtures for the memberships and the account
2025-11-17 09:11:42 -05:00
Mike Dalessio
030433b99d
Remove debugging statements
2025-11-17 09:11:42 -05:00
Mike Dalessio
ec54014832
Add account slug middleware
...
and set Current.account
2025-11-17 09:11:42 -05:00
Mike Dalessio
d6c7fc9e0a
Database config for mysql
2025-11-17 09:11:42 -05:00
Stanko K.R.
6705b5225f
Remove the untenanted database
2025-11-17 09:11:36 -05:00
Mike Dalessio
4d3c265042
Rip out activerecord-tenanting
...
Co-authored-by: Stanko K.R. <stanko@stanko.io >
2025-11-17 09:11:35 -05:00
Kevin McConnell
e5bbe6cf64
Remove Beamer
2025-11-17 09:11:28 -05:00
Mike Dalessio
19df86aef9
Re-enable SQL query logging
2025-11-14 13:19:35 -05:00
Jorge Manrubia
eea9afb639
Fix: dismiss grouped notifications by card from the notifications tray
...
This also splits the templates into two: index and tray, since the URL now changes.
2025-11-14 12:58:24 +01:00
David Heinemeier Hansson
63291ca0a2
Alpha sort lists when they're three or longer and there isn't another reason for existing sort
2025-11-08 20:09:12 +01:00
David Heinemeier Hansson
5231f13ced
Show up top
2025-11-08 20:06:56 +01:00
David Heinemeier Hansson
75b8adeb9a
No longer used
2025-11-08 20:06:50 +01:00
David Heinemeier Hansson
5d4f4f8a74
No longer used
2025-11-08 20:04:38 +01:00
David Heinemeier Hansson
e28e02f273
Move down to related routes for logging in and joining
2025-11-08 20:03:48 +01:00
Jorge Manrubia
8a07782e0f
Enable public file server for assets
...
Attempt to deal with https://app.fizzy.do/5986089/cards/2790
2025-11-07 13:13:24 +01:00
Kevin McConnell
7a23e0bdd5
Serve default error pages
2025-11-06 09:56:28 +00:00
Mike Dalessio
72a1cfc088
dep: update Rails and AR::Tenanted
...
Note that the query logs in this version of AR::Tenanted have changed,
to use standard Rails query log tags, which I have enabled.
Note that enabling Rails query log tags disables prepared
statements. I don't think turning off prepared statements will impact
our performance, but I'll verify that post-deploy (we have dashboards
for a reason).
2025-11-05 13:12:42 -05:00
Jorge Manrubia
2af7a9f402
Merge pull request #1498 from basecamp/rename-boards
...
Rename collections => boards
2025-11-05 18:50:49 +01:00
Jorge Manrubia
a717ae838b
Support old public collection urls
2025-11-05 14:02:40 +01:00
Jorge Manrubia
41c8c7ee53
Support old collection urls
2025-11-05 13:58:40 +01:00
Jorge Manrubia
03a345609e
Baseline replacing collection with board across code
2025-11-05 13:31:54 +01:00
Stanko Krtalić
1c54efbd75
Merge pull request #1497 from basecamp/fix-double-memberships
...
Prohibit duplicate memberships
2025-11-05 12:22:32 +01:00
Stanko K.R.
cfdd7ab1cb
Prohibit duplicate memberships
2025-11-05 11:57:40 +01:00
Kevin McConnell
b66bad082a
Specify asset path in deployment
...
We need this so that app containers can serve old asset versions, to
cover the cases where a request for an old asset is a MISS on the CDN.
2025-11-05 08:32:10 +00:00
Jorge Manrubia
2bb90eab13
Use the sole collection as the root for a better onboarding experience for new accounts
2025-11-04 17:09:35 +01:00
Fernando Álvarez
514c0f45a2
Migrate to fizzy.do
2025-11-04 13:17:10 +01:00
Kevin McConnell
417acab12a
Upgrade Beamer to zone-aware version
2025-11-04 09:58:53 +00:00
Stanko K.R.
1c4c271fd8
Remove unused route
2025-11-04 07:20:16 +01:00
Mike Dalessio
8538c21d4e
Copy Cloudflare's True-Client-IP header to X-Forwarded-For
...
ref: https://3.basecamp.com/2914079/buckets/37331921/todos/9243121525
2025-11-03 14:22:33 -05:00
Jorge Manrubia
7f7ecdaf28
Merge pull request #1456 from basecamp/only-show-draft-banner
...
Only show draft banner when the draft has some previous title/content set
2025-11-03 14:48:51 +01:00
David Heinemeier Hansson
e081ce5e76
Consistently use symbols for module scopes
2025-11-03 14:47:48 +01:00
Jorge Manrubia
ebf8490c2b
Use Turbo.fetch to prevent page refreshes bounces when using rails/requests
2025-11-03 14:46:22 +01:00
David Heinemeier Hansson
ecd0d319cc
Style
2025-11-03 14:44:46 +01:00
David Heinemeier Hansson
2f1ee30a2b
Remove duplicated nesting
2025-11-03 14:20:57 +01:00
David Heinemeier Hansson
225a70fc52
Remove here too
2025-11-03 13:40:20 +01:00
David Heinemeier Hansson
38a7a14466
Remove vector extension that we are no longer using
2025-11-03 13:40:03 +01:00
Jorge Manrubia
9d4dd3b00e
Remove "save as draft"
...
Removes the creating status completely as well as the abandoned cards system. It will
always resume drafts if they exist, for a given collection and user.
https://app.box-car.com/5986089/cards/2489
2025-11-03 09:32:29 +01:00
David Heinemeier Hansson
43069b1ea4
Extract Users::JoinsController from overloaded UsersController
...
Good code smell is when the before_action callbacks stack up but can't
be shared across actions
2025-11-02 17:49:25 +01:00
David Heinemeier Hansson
bced7405df
Extract events loading from overloaded UsersController
2025-11-02 17:31:28 +01:00
David Heinemeier Hansson
6a62df470c
No longer used
2025-11-02 16:34:29 +01:00
David Heinemeier Hansson
b3474ec97d
Rename Entropy::Configuration to just Entropy
2025-11-02 13:11:41 +01:00
David Heinemeier Hansson
72d0008df0
Only restrict resource actions when there's a specific story to tell
2025-11-02 12:49:17 +01:00