Commit Graph

454 Commits

Author SHA1 Message Date
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
Stanko K.R. 452c6a8373 Rework the email change flow to tie to memberships 2025-10-31 16:26:08 +01:00
Stanko Krtalić 98755844a1 Remove the internal API
* Bind sessions to identities
* Remove references to the identity token
* Move email changes to identity
* Move account menu into a turbo-frame
* Create tenants from a tenanted route
2025-10-31 16:26:08 +01:00
Stanko K.R. 79b012f319 Add Join Codes 2025-10-31 16:24:30 +01:00
Stanko K.R. c8843360fe Clean up and simplify magic links 2025-10-31 16:23:38 +01:00
Stanko K.R. 5cef4ffeb0 Add sign in flow using magic links 2025-10-31 16:22:12 +01:00
Jorge Manrubia f0c5285fb0 Move column editing to stream so that we can remove the invalidation concern 2025-10-31 10:40:28 +01:00
Jorge Manrubia bcac3fad10 Move perma collection picker to turbo frame 2025-10-31 10:37:36 +01:00
Fernando Álvarez 7f78514a58 Move to app.box-car.com 2025-10-30 11:12:39 +01:00
Jorge Manrubia 9d548e77ef Merge pull request #1418 from basecamp/sort-columns
Sort columns
2025-10-30 08:39:53 +01:00
David Heinemeier Hansson 7bebea07b4 Simplify the error handling
Just use normal HTML + static CSS
2025-10-29 17:39:57 +01:00
Jorge Manrubia 5eb5e4b007 Add buttons to move columns left and right 2025-10-29 16:15:25 +01:00
Jorge Manrubia 1547cfd651 Merge pull request #1414 from basecamp/remove-summaries
Remove AI summaries and semantic searches
2025-10-29 12:00:57 +01:00
Jorge Manrubia aa1ffb3357 Remove AI summaries and semantic searches
We were not using either. We can restore if we revisit.
2025-10-29 11:55:32 +01:00
Fernando Álvarez 654f8906c3 Merge pull request #1409 from basecamp/box-car-dot-com
Migrate to box-car.com
2025-10-29 10:39:43 +01:00
Jorge Manrubia 860ba1f2e4 Upgrade turbo and remove our patched version
We upstreamed the changes from https://github.com/basecamp/fizzy/pull/1327
2025-10-29 08:35:27 +01:00
Fernando Álvarez 3946733b65 Migrate to box-car.com 2025-10-28 18:44:25 +01:00
Jorge Manrubia 392bdae316 Rename highlights -> summary 2025-10-25 20:06:57 +02:00
Jorge Manrubia d6c7fb2084 Remove unused constants / controller
This came from the previous 3-column times
2025-10-25 18:50:37 +02:00
Mike Dalessio c87c2f0960 Complete beamer gem adoption
- stop importing beamer during Dockerfile builds
- add a "bin/beamer" gemstub
- invoke `bin/beamer` explicitly
- drop the beamer initializer
2025-10-23 15:35:57 -07:00
Stanko Krtalić 880ad7ff12 Use Beamer through its gem (#1230) 2025-10-23 12:14:00 +02:00
Mike Dalessio 8e64ef741f dev: Fix the default tenant to be the correct Honcho id 2025-10-21 15:13:29 -07:00
Mike Dalessio e7d59ff6d0 Add a migrations check to CI
which can be skipped with SKIP_MIGRATION_CHECK=1
2025-10-21 09:27:56 -07:00
Fernando Álvarez f5124fb338 Mount /certificates for fizzy-production 2025-10-20 14:31:36 -07:00
Fernando Álvarez 9b8236a3ab Revert "Mount /certificates for fizzy-production"
This reverts commit e13bfe8a86.
2025-10-20 14:30:17 -07:00
Fernando Álvarez e13bfe8a86 Mount /certificates for fizzy-production 2025-10-20 14:27:01 -07:00
Fernando Álvarez 91f078e0b9 Mount /certificates for fizzy-staging 2025-10-17 11:46:31 +02:00
Mike Dalessio 5934280b2e Set queue.yml thread back to 3
because I can see we're backing up on Event::WebhookDispatchJob,
PushNotificationJob, and Turbo::Streams jobs, all of which are
doing networking.
2025-10-16 09:54:18 -04:00
Mike Dalessio 6f725fc9cf Stagger the timings on recurring jobs
just to avoid dogpiling writes on the database
2025-10-16 09:42:08 -04:00
Jorge Manrubia 8c8dbe888e Fix assorted issues when reloading pages with morphing and the pagination system
This patches 2 problems in Turbo/idiomorph that are causing problems when reloading the pagination frames:

- No remove callback in idiomorph when removing a node that had been mapped.
- Regression introduced by https://github.com/hotwired/turbo/pull/1311, where it won't prevent the removal of frames with refresh=morph

I will upstream both patches, this is temporary.

https://fizzy.37signals.com/5986089/cards/2291
2025-10-16 13:39:16 +02:00
Fernando Álvarez 662798801b Add sc-chi and df-ams app and lb nodes to Production config 2025-10-15 12:24:45 +02:00
Mike Dalessio ffc0c86f36 Minio support in development
for when we need to debug direct upload problems
2025-10-14 19:11:50 -04:00
Matthew Kent 30a4b2d721 Mount our backup vol. 2025-10-14 11:56:00 -07:00
Fernando Álvarez ad3a16f8e6 Add reader nodes to Staging 2025-10-13 19:35:11 +02:00
Fernando Álvarez b682427df7 Add AMS to Staging 2025-10-13 18:00:00 +02:00
Stanko K.R. b016bd7cae Fix replicaiton wiht the untenanted DB 2025-10-13 14:09:37 +02:00
Stanko K.R. d3816bc212 Create testbed to test beamer scenarios in Fizzy 2025-10-13 13:46:00 +02:00
Jeremy Daer b8f09b7f75 Deploy to fully-qualified domain names to eliminate DNS search path driven query amplification (#1293) 2025-10-11 15:57:47 -07:00
Mike Dalessio 28e9b4a496 Fix recurring job config for webhook cleanup 2025-10-11 13:57:19 -04:00
Mike Dalessio 4f981e9c2f Add yabeda-actioncable metrics 2025-10-11 13:35:31 -04:00
Mike Dalessio 5c651a7f94 Tidy recurring.yml 2025-10-11 13:23:25 -04:00
Mike Dalessio b9a616b083 Increase the number of job workers to match CPUs
JOB_CONCURRENCY would still override this number.
2025-10-11 11:29:21 -04:00
Mike Dalessio 550a4b7c33 Don't set puma performance settings in dev 2025-10-10 16:53:52 -04:00
Mike Dalessio 257aeb8511 GC: Defer major GC cycles until after request handling completes 2025-10-10 16:49:01 -04:00
Mike Dalessio fb45b9d366 Install Autotuner for GC recommendations 2025-10-10 15:49:48 -04:00
Mike Dalessio 016f00dfb5 Call Process.warmup 2025-10-10 15:17:13 -04:00
Mike Dalessio ba090196d8 Baseline puma worker/thread config
Because we expect fewer I/O waits than Rails apps that connect to the
database over the network, let's start with a baseline config of 1
worker per CPU, 1 thread per worker and tune it from there.

https://edgeguides.rubyonrails.org/tuning_performance_for_deployment.html#puma
2025-10-10 15:00:03 -04:00
Mike Dalessio c368485e84 db: Add beamer to the untenanted database 2025-10-10 11:43:07 -04:00
Mike Dalessio 3399e45130 Introduce an "Identity" model to ease login
- New untenanted Identity and Membership models
- New `identity_token` cookie with path "/" holds state across tenants

We're not sure whether the untenanted database will be sqlite or
MySQL, and so I've been careful to minimize

- database reads, placing them behind etags and caching
- database writes, only writing when a new Session is created (login)

Note that we track two things in the identity_token cookie: a signed
id, and the updated_at for the underlying Identity object. This allows
us to effectively cache on the Identity without having to hit the
database, by using an Identity::Mock object that is compatible with
etag and cache methods.

The new integration test shows the desired user-facing behavior, which
is to make it easy to login without a tenanted URL and to jump between
tenants.

- the untenanted "login_help" page shows all linked memberships
- the jump menu shows all linked memberships (except the current)

Also introduced a utility script to populate existing employee
Identities, grouping accounts by email address.
2025-10-10 10:12:25 -04:00