Kevin McConnell
6c04b56f4b
Compact the UUIDs to base36
2025-11-17 09:12:31 -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
Kevin McConnell
ab35c730d0
Scope account.cards
2025-11-17 09:12:25 -05:00
Stanko K.R.
28a6dfce01
Simplify user deactivation
2025-11-17 09:12:17 -05:00
Stanko K.R.
6858b96619
Simplify join codes
2025-11-17 09:12:17 -05:00
Stanko K.R.
2f62d91bc3
Remove all special charaters when stemming
2025-11-17 09:12:17 -05:00
Stanko K.R.
1b8828da1d
Add tests for the highlighter and stemmer
2025-11-17 09:12:17 -05:00
Donal McBreen
0f77202d8f
Remove redundant fields from search select
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
Donal McBreen
ddd7fe082a
Ensure the mentioning scope search works
...
Include the filter by accessible board ids to avoid large joins from the
search_index table. Drop the unused search scope.
2025-11-17 09:12:17 -05:00
Stanko K.R.
a41085fe00
Show full comment, description or title
2025-11-17 09:12:17 -05:00
Stanko K.R.
2c3062fd86
Add a stemmer and highlighter
2025-11-17 09:12:17 -05:00
Donal McBreen
e8abc66eba
MySQL search
...
Add a single search_index table for full-text search of cards and
comments.
For the search there is a full-text index on the title and content
columns. The board_ids is also included in the table and accessible
board ids are pre-loaded and included in the search query. This allows
us to filter out inaccessible records before joining with other tables.
Right now the search is just using boolean search. This would give us
a bunch of syntax options
(see https://dev.mysql.com/doc/refman/8.4/en/fulltext-boolean.html )
except the search query filters those out.
I've removed the searchable_by method for now - everything is built
on the assumption that there's a single search index table and all data
must fit into it.
Queries are written in SQL, we don't have a SearchIndex ActiveRecord
model. That's because we'll likely want to shard the table and it will
be simpler to just keep with the raw SQL for that.
There's no stemming, highlighting or snippet extraction yet - we are
dumping the full description in the search results.
Data can be reindexed with the search:reindex rake task.
2025-11-17 09:12:17 -05:00
Stanko K.R.
32d96db7d9
Replace card id with card number
2025-11-17 09:12:15 -05:00
Kevin McConnell
915c1202f8
Initial minimal primary/replica switching
2025-11-17 09:11:57 -05:00
Mike Dalessio
ff8d786144
Filter boards by account
2025-11-17 09:11:57 -05:00
Mike Dalessio
dbf66f9a50
Constrain user queries to the current or relevant account
2025-11-17 09:11:57 -05:00
Mike Dalessio
b5197fe6d3
Fix notifications to use the user's account
2025-11-17 09:11:57 -05:00
Mike Dalessio
9697f7b43d
Replace some instances of Current.account with model account
2025-11-17 09:11:57 -05:00
Stanko K.R.
8b1ca5e7fb
Remove unused account associations
2025-11-17 09:11:42 -05:00
Stanko K.R.
ba3f6b188e
Add account_id to everything
2025-11-17 09:11:42 -05:00
Mike Dalessio
7bd697f75e
test: Skip search tests, fix others, and skip a few hard ones
2025-11-17 09:11:42 -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
ec54014832
Add account slug middleware
...
and set Current.account
2025-11-17 09:11:42 -05:00
Mike Dalessio
4ad1718d86
Stub searchable functionality and start to restore login/auth
2025-11-17 09:11:42 -05:00
Mike Dalessio
d41d50d52b
Account.sole → Current.account
...
and some other de-tenant changes, including removing the controller
tenanting concerns
2025-11-17 09:11:40 -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
Jorge Manrubia
d6b602b7d7
Restore refreshes: make sure they play well with cards in editing mode
2025-11-14 15:37:43 +01: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
Jorge Manrubia
80d309cd22
Keep current logical names for colors
...
So that the db values are not tied to the specific CSS
2025-11-14 11:44:04 +01:00
Jorge Manrubia
956a7aafad
Revert "Revert "Color a11y""
2025-11-14 11:24:55 +01:00
Jorge Manrubia
6413570985
Revert "Color a11y"
2025-11-14 11:21:52 +01:00
Jorge Manrubia
06b762c0a8
Move default color to the column
2025-11-14 11:15:09 +01:00
Jorge Manrubia
b1e087e7c9
Introduce a proper color poro to represent colors
...
Instead of managing a hash throgh the app
2025-11-14 11:09:39 +01:00
Andy Smith
2b0fd0909d
Fix test
2025-11-13 17:32:36 -06:00
Andy Smith
8ad0d05750
Add column color names
2025-11-13 17:30:01 -06:00
Jorge Manrubia
66c5005169
Disable temporarily
2025-11-13 17:01:00 +01:00
Jorge Manrubia
0267223749
Re-enable live updates for card permas
2025-11-13 14:49:17 +01:00
Jorge Manrubia
9903a37243
Fix tests
2025-11-12 11:37:06 +01:00
Jorge Manrubia
dba3b2d65d
Remove nil param
2025-11-12 11:25:51 +01:00
Jorge Manrubia
56a85c261b
Remove plain text mentions
...
They can cause duplicates
https://app.fizzy.do/5986089/cards/2874
Closes #https://github.com/basecamp/fizzy/pull/1549
2025-11-11 10:01:59 +01:00
Jason Zimdars
657905ff6c
Update to match navigation changes
2025-11-10 13:44:42 -06:00
Jorge Manrubia
f5440833a9
Order method
2025-11-10 16:21:46 +01:00
Jorge Manrubia
590a63c422
Move helpers salad to a presenter column when rendering the timeline
2025-11-10 15:52:59 +01:00
Jorge Manrubia
b13823305b
Always include assignees when notifying of published cards
2025-11-10 13:08:51 +01:00
Jorge Manrubia
b686936230
Fix: extract mentions when publishing cards
...
This wasn't working when creation and publishing happened on separated instances
of the same record, which is what happens when you edit a draft and then you
publish it
https://app.fizzy.do/5986089/cards/2835/edit
2025-11-10 13:08:29 +01:00
Stanko K.R.
3f4d500103
Unify sign in and sign up
2025-11-07 07:06:25 +01:00
Jorge Manrubia
3a831e390f
Clean watchers when losing access to board
...
https://app.fizzy.do/5986089/cards/2814
2025-11-06 22:02:12 +01:00
Jorge Manrubia
676c2a42fe
Always use the creator name for the plain text form
...
You does not make sense for webhooks
2025-11-06 14:16:01 +01:00