Commit Graph

97 Commits

Author SHA1 Message Date
Donal McBreen f6ec9bbeea Use a custom class for Uuid values 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
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 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
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
Jorge Manrubia e8920ceb0e Prevent page refreshes when posting comments/descriptions with attachments 2025-11-13 16:03:48 +01:00
Jason Zimdars 0f28ded99e Send email from support@fizzy.do 2025-11-11 10:47:30 -06:00
Fernando Álvarez 514c0f45a2 Migrate to fizzy.do 2025-11-04 13:17:10 +01:00
Jorge Manrubia 445ee48b0d Format 2025-11-04 05:07:26 +01:00
Jorge Manrubia 4e999eaf86 Use existing ARTENANT env var for selecting the tenant
Thanks Mike for the tip!
2025-11-03 15:04:06 +01:00
Jorge Manrubia ac507aa754 Add support for remote images in the seeding system 2025-11-02 09:24:38 +01:00
Jorge Manrubia e726335833 WIP for seeding accounts 2025-11-02 00:05:38 +01:00
Fernando Álvarez 7f78514a58 Move to app.box-car.com 2025-10-30 11:12:39 +01:00
Fernando Álvarez 3946733b65 Migrate to box-car.com 2025-10-28 18:44:25 +01:00
Mike Dalessio 320558919c Rename LOCAL_AUTHENTICATION to OSS_CONFIG 2025-10-02 16:44:24 -04:00
Mike Dalessio 4442964408 Introduce yabeda for Solid Queue metrics 2025-09-15 11:05:04 -04:00
Mike Dalessio 2630e4bd74 Extract 37id and QB controllers, models, and tests 2025-09-13 16:03:02 -04:00
Jorge Manrubia 218519d075 Configure letter opener 2025-08-26 10:21:13 +02:00
Mike Dalessio a711975904 Turn off attachment previews on large files
ref: https://fizzy.37signals.com/5986089/collections/7/cards/1302
2025-08-19 12:16:24 -04:00
Stanko K.R. c95e8678a9 Extract #all_emoji? to a Rails ext 2025-08-13 15:14:12 +02:00
Jason Zimdars a6e9e51071 Merge branch 'main' into web-push
* main: (28 commits)
  Clean up the /scripts directory
  Prevent recursion when invoking AI
  Bump sqlite3 from 2.7.2 to 2.7.3
  Port over Jeremy's fix for slow uploads
  .gitignore log files and portfolio's local storage
  Drop Current.account and just use Account.sole
  Use the utf8-patched mysql driver
  Call blob.preview for previewable attachments
  Make sure the image variants we use are preprocessed
  Add /user command
  Make sure it doesn't infer custom abbreviations when matching user names
  Script to load prod db in development
  Update Signup to use the queenbee_id for the tenant name
  Bump cache version
  Make sure it uses latest bundler to prevent error due to mismatch
  Invalidate cache
  Update ruby
  Update bundler to prevent error on lower version
  Update bundler to prevent error on lower version
  Resolve stages
  ...
2025-07-21 11:03:56 -05:00
Mike Dalessio 0a92fc3a16 Port over Jeremy's fix for slow uploads
ref: https://fizzy.37signals.com/5986089/collections/7/cards/944
2025-07-20 13:19:53 -04:00
Jason Zimdars 83f7bd4346 Use icon with background included 2025-07-15 21:40:04 -05:00
Jason Zimdars 7dbb9c7a9e Fix icon path 2025-07-15 18:47:44 -05:00
Jason Zimdars e59a994a0c Add db table and models 2025-07-14 19:57:30 -05:00
Jorge Manrubia fa04016cbe Revert "Revert "Replace House with Lexical"" 2025-05-29 14:25:16 +02:00
Jorge Manrubia 08d8b2e5ff Revert "Replace House with Lexical" 2025-05-29 14:22:27 +02:00
Jorge Manrubia 10b2aad647 Replace House with lexical-powered actiontext 2025-05-23 11:41:08 +02:00
David Heinemeier Hansson 48a6c05250 No longer used 2025-04-20 16:23:15 +02:00
Jorge Manrubia 17aa9b97e9 Monkey patch a prepend_order method 2025-04-11 10:28:12 +02:00
Jorge Manrubia 168a790687 Add a rails helper for the new custom stream action 2025-04-10 13:30:15 +02:00
Jason Zimdars 6872852d3f Embed additional video formats 2025-04-08 16:02:32 -05:00
Jason Zimdars 9b7d297027 Add rudimentary support for embedding videos 2025-01-30 16:47:42 -06:00
Jason Zimdars 441c68b8d7 Add data-turbo-frame attribute to links in comments 2025-01-30 15:20:40 -06:00
Jose Farias 7d83874266 Use Redcarpet for plain text rendering 2024-12-18 16:39:56 -06:00
Jose Farias 0139f71bf2 Use redcarpet as markdown renderer 2024-12-18 16:37:33 -06:00
Jose Farias cb1686d84e Use house ssr 2024-12-17 18:02:42 -06:00
Jose Farias b88e56ee1c Put bracket on new line 2024-12-17 00:41:20 -06:00
Jose Farias 4fc7ab1582 Spike potential redcarpet replacement 2024-12-17 00:32:58 -06:00
Jose Farias 6164da2e38 Unnest uploads controller 2024-11-29 17:05:32 -06:00
Jose Farias 45e94e4484 Support search on markdown fields 2024-11-29 14:28:37 -06:00
Jose Farias d556e21287 Use House for MD comments 2024-11-27 18:59:15 -06:00
Jose Farias c570fa7e4c Appease zeitwerk 2024-10-17 22:01:25 -06:00
Jose Farias 783f0ec83a Revert "Appease zeitwerk"
This reverts commit 87ebabe260.
2024-10-17 21:53:42 -06:00
Jose Farias 87ebabe260 Appease zeitwerk 2024-10-17 21:44:49 -06:00
Jose Farias f4b5210ca1 Spike persisted filters 2024-10-16 16:41:11 -06:00
Kevin McConnell 564a0f48ae New Rails app 2024-06-21 13:19:56 +01:00