Commit Graph

109 Commits

Author SHA1 Message Date
Kevin McConnell 11a38a4526 Initial (wip) staging deployment
This adds an initial configuration for staging. Note that we are doing
this ahead of having the full infrastructure in all 3 DCs. So this
this will result in some cross-DC writes for now (e.g. we have a single cache in
IAD). We'll correct this as the infrastructure becomes available.

We'll also run jobs on every app server, until we split them out to
separate instances.
2025-11-17 09:12:41 -05:00
Stanko K.R. 0a3f91f220 Fix entropy imports 2025-11-17 09:12:41 -05:00
Mike Dalessio fe6df7085f Finish the rollout of account_id to all core data models
Schema:
- add account_id to tables it was missing from
- make account_id a required column everywhere
- add [account_id] indexes, or add `account_id` to existing indices

Models:
- add `belongs_to :account` to all models (default to using a domain
  model's account whenever possible)
- add account_id in all the necessary fixtures
- add account_id to insert_all hashes
- pass account_id to a few initialize calls

Miscellaneous:
- update the import script to set account_id

Note that I'm not adding account_id to the join tables primarily
because I couldn't think of an easy way to populate it without making
it a full Join model, and that was more work than I have time to take
on right now.
2025-11-17 09:12:40 -05:00
Stanko K.R. 8fa9566c07 Update sign up 2025-11-17 09:12:40 -05:00
Stanko K.R. edf837fed3 Drop memberships 2025-11-17 09:12:39 -05:00
Donal McBreen 84d1fb6827 Import steps correctly 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
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
Stanko K.R. 32d96db7d9 Replace card id with card number 2025-11-17 09:12:15 -05:00
Stanko K.R. 906e82a346 Optimize card and comment imports 2025-11-17 09:11:57 -05:00
Stanko K.R. 5c86d307be Fix import bugs with a real prod account 2025-11-17 09:11:57 -05:00
Stanko K.R. c894bcc3b2 Fix event creation 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
Stanko K.R. 65f97babd9 Create SQLite import script 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
Jorge Manrubia 39ec6cf062 Replace collection with board in the code, tests green 2025-11-05 13:41:12 +01:00
Jorge Manrubia 03a345609e Baseline replacing collection with board across code 2025-11-05 13:31:54 +01:00
Fernando Álvarez 514c0f45a2 Migrate to fizzy.do 2025-11-04 13:17:10 +01:00
Jorge Manrubia f104e31f3f Remove unused method 2025-11-04 05:06:18 +01:00
David Heinemeier Hansson aae16d2070 Fix path 2025-10-31 21:21:10 +01:00
David Heinemeier Hansson d49c7f45eb Use a single populate script with faker data 2025-10-31 21:19:33 +01:00
David Heinemeier Hansson e258e39242 Slim down 2025-10-31 17:47:02 +01:00
David Heinemeier Hansson 65c3dba574 Do it on a single line 2025-10-31 17:00:16 +01:00
David Heinemeier Hansson f3b00eaa3e Explain the ID 2025-10-31 17:00:16 +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. 201c3e27d3 Update tests for the Internal API 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. 5cef4ffeb0 Add sign in flow using magic links 2025-10-31 16:22:12 +01:00
David Heinemeier Hansson 4c851e2756 Fix-up population script and take it to 10K cards 2025-10-31 15:47:53 +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
Jorge Manrubia 5eb5e4b007 Add buttons to move columns left and right 2025-10-29 16:15:25 +01:00
Fernando Álvarez cdb7a410cf Update configure script for fizzy-lb-401 2025-10-29 15:58:07 +01:00
Fernando Álvarez 4b929cd51f Update configure fizzy-lb-101 script 2025-10-29 13:57:38 +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
Fernando Álvarez 260eaa0369 Amend references to box-car.com 2025-10-29 10:09:12 +01:00
Jorge Manrubia 6044287be4 Fix upload script: migrate_all can't be invoked like that anymore 2025-10-29 07:53:19 +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
Fernando Álvarez 4017da746c Add script for configuring production load balancers 2025-10-22 10:46:41 -07:00
Mike Dalessio 214e1fd402 Script to configure staging load balancers
ref: https://3.basecamp.com/2914079/buckets/37331921/todos/9180260061
2025-10-17 10:17:15 -04:00
Stanko K.R. 622a687158 Set a password for the owner 2025-10-16 22:13:30 +02:00
Stanko K.R. eae59342e9 Add account creation script 2025-10-16 22:05:22 +02:00
Mike Dalessio 73fa235bae Delete unnecessary migration helper script 2025-10-14 16:32:24 -04:00
Mike Dalessio a7e22a537d Update load-prod-db-in-dev to use the latest AR::Tenanted idiom 2025-10-14 16:30:35 -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
Mike Dalessio 6f43fa3b2b Update the load-prod-db-in-dev script to handle migrations
This is obviously not a good fix, but it gets the job done. Permanent
fix will be researched at https://fizzy.37signals.com/5986089/cards/545
2025-10-07 02:45:54 -04:00