Commit Graph

42 Commits

Author SHA1 Message Date
Mike Dalessio b2ff0b47bf Make sure QB subscriptions reload properly in dev 2025-06-25 10:06:45 -04:00
Mike Dalessio 141554c21c Make sure the beta env keeps local authentication (for now)
and more importantly, don't try to connect to the 37id database, which
will hang.

And finally, set the connect_timeout to something small so if we do
try to make a connection, it will fail quickly instead of hanging for
the default 120 seconds.
2025-06-20 16:17:02 -04:00
Mike Dalessio 8b68eab6a8 Add the shared signal_id secret
so that we can authenticate properly with launchpad
2025-06-20 15:16:57 -04:00
Mike Dalessio d29bfb9f5a Add a QB API endpoint for plans
- add the shared api token to all environments
- add a single FreeV1 subscription
- add QB routes
- allow the queenbee routes in the tenanting middleware

ref: https://3.basecamp.com/2914079/buckets/37331921/todos/8746302763
2025-06-20 15:16:57 -04:00
Mike Dalessio ee60e8dd01 Signup::AccountsController suppports signing up with a new identity 2025-06-20 15:16:57 -04:00
Mike Dalessio 73ba0c074f Introduce a Signup model and integrate with QB/37id
- Creates a Queenbee::Account
- SignalId peer classes work properly
- Set up a basic template for the account (closure reasons, workflow, collection)
- Load signal_id fixtures during `bin/setup --reset`
- Update signal_id to pull in the Fizzy product
2025-06-20 15:16:57 -04:00
Mike Dalessio aada380147 Add the signal_id gem
- add libmysqlclient to the container image
- configure the signal id database
- YAML permitted classes setup for 37id tests
- setup rw splitting so integration tests pass
2025-06-20 15:16:56 -04:00
Kevin McConnell e998783155 Use VFS-based Beamer 2025-06-05 11:59:30 +01:00
Mike Dalessio e67d59e341 Introduce a staging environment
ref: https://3.basecamp.com/2914079/buckets/21350690/card_tables/cards/8708868711
2025-06-04 11:06:09 -04:00
Mike Dalessio df682cdfe1 Make sure Sentry is configured for the beta env. 2025-05-31 13:35:53 -04:00
Mike Dalessio febab0758a Drop the unnecessary initializer creating storage paths 2025-05-30 15:13:10 -04: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
Jorge Manrubia b8f94c4ecb Add VCR and some initial tests 2025-05-16 13:29:18 +02:00
Jorge Manrubia b079be8388 Be explicit about the model 2025-05-16 13:29:18 +02:00
Jorge Manrubia 67984bf589 WIP for LLM experiment 2025-05-16 13:29:18 +02:00
Mike Dalessio 9d8d38873e Backup the tenant databases nightly.
This is probably not a permanent solution, but should provide some
disaster recovery capability while we're building up Fizzy operationally.
2025-04-30 06:15:25 -04:00
Jason Zimdars c964c87d5b Don't strip lightbox attributes 2025-04-30 10:52:47 +02:00
Mike Dalessio 33719b588c Restore the 404 page but allow the kamal health check 2025-03-20 11:36:32 -04:00
Mike Dalessio 987e420d05 Revert the tenant resolver fix
because it causes kamal healthchecks to fail
2025-03-20 11:04:03 -04:00
Mike Dalessio 743597d059 Quick fix to restore the 404 page 2025-03-20 10:58:44 -04:00
Mike Dalessio 2e70e0c3bd Update to AR::Tenanted with the extracted tenant resolver
- we no longer need to explicitly add the TenantSelector middleware
- and we can set up a properly-articulated tenant resolver proc that's
  used by both TenantSelector and Action Cable connections

ref: https://37s.fizzy.37signals.com/buckets/693169862/bubbles/999008671
2025-03-19 13:34:43 -04:00
Mike Dalessio e08f073d73 Structured logs for controller actions now contain the tenant 2025-03-13 17:21:31 -04:00
Mike Dalessio d8075b74b7 hack: to handle tenantname.fizzy.37signals.com
Let's do the needful thing for now, and clean it up once the gem has
exposed the tenant resolver as a config in a cleaner way.
2025-03-12 07:53:31 -04:00
Mike Dalessio d9ece38753 Make the application multi-tenant 2025-03-12 07:53:31 -04: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
Kevin McConnell cc1051c968 Expire upload links after 5 minutes
By default the Active Storage URLs are valid for 5 minutes. We should
avoid caching the responses for longer than that.
2025-01-28 16:13:26 +00:00
Kevin McConnell ed17bc28ab Make active storage blobs cacheable 2025-01-28 11:45:33 +00: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 4fc7ab1582 Spike potential redcarpet replacement 2024-12-17 00:32:58 -06:00
Jose Farias 2b9c4d9b71 Sanitize rendered markdown 2024-11-29 18:00:50 -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
David Heinemeier Hansson b8e93c4f8a Extract render svg as a real renderer 2024-10-19 19:31:48 -07:00
Jose Farias f4b5210ca1 Spike persisted filters 2024-10-16 16:41:11 -06:00
Jose Farias 999dd8fbcc Add Sentry 2024-10-09 13:01:04 -04:00
Kevin McConnell b9cf8c5e9d Set up Rubocop 2024-06-21 16:42:48 +01:00
Kevin McConnell 564a0f48ae New Rails app 2024-06-21 13:19:56 +01:00