Commit Graph

110 Commits

Author SHA1 Message Date
Stanko K.R. d915bff326 Fix admin having duplicate user after import 2025-11-17 09:12:41 -05:00
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