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