Commit Graph

260 Commits

Author SHA1 Message Date
Mike Dalessio 384831fd57 More schema cleanup 2025-10-22 15:39:06 -07:00
Mike Dalessio d984ac78d2 Remove schema changes introduced in da413e75
which I think was accidental
2025-10-20 17:48:24 -07:00
Mike Dalessio 6aafa3aff1 Update migration versions to 8.2 2025-10-20 17:47:42 -07:00
Mike Dalessio 25598e75bd Fix old migration that doesn't work with Rails edge 2025-10-20 17:44:17 -07:00
Jason Zimdars c3a3f157a2 Merge branch 'main' into remove-closure-reasons 2025-10-16 13:55:13 -05:00
Jason Fried 739c53cfff Updated global and local auto-close language. 2025-10-16 10:41:01 -07:00
Jorge Manrubia 41a23b5634 Reapply "Don't relay name change events to the timeline"
This reverts commit 44d3c84e13.
2025-10-16 17:32:24 +02:00
Jorge Manrubia 44d3c84e13 Revert "Don't relay name change events to the timeline"
This reverts commit fc0b59267e.
2025-10-16 17:32:05 +02:00
Jorge Manrubia fc0b59267e Don't relay name change events to the timeline
it also adds a missing index

https://fizzy.37signals.com/5986089/cards/411
2025-10-16 17:31:51 +02:00
Jason Zimdars da413e7540 Remove closure reasons 2025-10-15 16:15:56 -05:00
Jorge Manrubia b2b05e1da8 Remove wrong migration 2025-10-15 14:31:02 +02:00
Jorge Manrubia bd178fef3c Remove null constraint 2025-10-15 14:22:44 +02:00
Jorge Manrubia 634270a1e8 Merge main into now-now-stamp and resolve schema conflicts 2025-10-15 14:05:27 +02:00
Jorge Manrubia 9263cff3d5 Store and show the user that postpones cards 2025-10-15 13:44:49 +02:00
Mike Dalessio 71103400d6 Make sure the schema and schema cache are consistent with reality
There has been a bit of drift between actual schemas in production and
what's implied by the migrations.

And fixed some tests that were relying on everyone always watching.

ref: https://fizzy.37signals.com/5986089/cards/2322
2025-10-14 17:38:08 -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
Jorge Manrubia 89f84e846c Migration I forgot to push 2025-10-07 11:24:42 +02:00
Jorge Manrubia 1d1a3da9cf Cleanup workflow/stages
This was pending after moving to columns
2025-10-07 11:10:10 +02:00
Mike Dalessio 73faf76976 Fix seeds script
broken in eb9ed86f
2025-10-07 02:50:15 -04:00
Mike Dalessio eb9ed86f64 seeds: make sure the admin has the secret password 2025-10-06 23:57:39 -04:00
Mike Dalessio 0425a83577 seeds: drop the 'bare' option 2025-10-06 23:44:42 -04:00
Jorge Manrubia 3e67da7d0e Add a new join model to link summaries with users
So that changing the set of events does not result in not being able to find a generated highlight summary
2025-10-06 12:33:28 +02:00
Mike Dalessio f26b0b7256 Rename accounts.tenant_id to external_account_id
and simplify the params to Account.create_with_admin_user
2025-10-03 17:21:01 -04:00
Mike Dalessio 8e0cb930af Delete SignalId concerns from the codebase
including Signup for now, will rebuild it with just QB
2025-10-03 14:06:51 -04:00
Mike Dalessio b93a32a57f Drop external_user_id from the users table 2025-10-03 14:06:51 -04:00
Mike Dalessio 320558919c Rename LOCAL_AUTHENTICATION to OSS_CONFIG 2025-10-02 16:44:24 -04:00
Mike Dalessio 47370084d2 Remove code related to Launchpad auth or 37id Users 2025-10-02 16:33:23 -04:00
Mike Dalessio 1553ddce28 Update seeds to use the workflow stages 2025-09-29 13:27:16 -04:00
Jorge Manrubia 1b39e0b45e Format 2025-09-28 11:18:54 +02:00
Jorge Manrubia 2f6a639682 Prepare entropy code for the new auto postpone approach 2025-09-24 16:22:42 +02:00
Jorge Manrubia b63a6b3e97 Add postponable concern 2025-09-24 14:37:14 +02:00
Jorge Manrubia cd025447f2 Add basic column models and script to migrate 2025-09-24 13:15:03 +02:00
Stanko Krtalić 9b55ff241c Merge pull request #1124 from basecamp/fix-missing-default-value-for-delinquency-tracker
Fix crash due to missing default value
2025-09-17 11:53:41 +02:00
Stanko K.R. 661471e9e8 Fix crash due to missing default value 2025-09-17 11:47:46 +02:00
Jason Zimdars b5d880c063 Merge pull request #1101 from basecamp/involvement-defaults
Involvement defaults
2025-09-16 14:16:24 -05:00
Stanko K.R. dd3063b01d Simplify delinquency tracking 2025-09-16 20:08:03 +02:00
Stanko K.R. 02a421675f Scope Webhooks to Collections 2025-09-16 20:07:25 +02:00
Stanko K.R. 0bdbc5f5e8 Add abuse prevention 2025-09-16 20:04:18 +02:00
Stanko K.R. 9cfd1e43af Enable subscribing to specific actions 2025-09-16 20:03:57 +02:00
Stanko K.R. a515ea3b1f Create webhooks 2025-09-16 20:03:55 +02:00
Jason Zimdars f2afb2f637 Change default involvement for collection access from "watching" to "access_only"
People should opt-in to getting new card notifications
2025-09-16 12:58:54 +02:00
Mike Dalessio d5a4239d19 Rename the queenbee_id and signal_user_id columns
to be more generic for the open-source release.

Find the signal account via Account#external_account

Find the signal user via User#external_user
2025-09-15 13:57:53 -04:00
Mike Dalessio 2630e4bd74 Extract 37id and QB controllers, models, and tests 2025-09-13 16:03:02 -04:00
Jorge Manrubia 2654cfe27d Format 2025-09-12 18:59:41 +02:00
Jorge Manrubia 57225e7c9a Add migration to convert accesses 2025-09-12 14:38:20 +02:00
Jorge Manrubia b15cb4541f Show summarier capturing the actual weeks in the user's timezone
https://3.basecamp.com/2914079/buckets/37331921/todos/9010176047#__recording_9037056688
2025-09-05 13:48:02 +02:00
Jorge Manrubia aad61b36bc Generate highlights in the user timezone, now that we persist it
Also, remove the dates and duration from the highlights records. Those are not relevant, only the events-derived
key is. If two users with different timezones have different activities, they should see different summaries.
2025-09-05 12:39:09 +02:00
Jorge Manrubia cfa0149564 Persist timezones in the server
Add a beacon to persist timezones when these change (or the first time)
2025-09-05 12:11:57 +02:00
Jorge Manrubia 33710dae7b Drop old summaries table 2025-09-02 11:40:21 +02:00
Jorge Manrubia 0c979a41c5 Format 2025-09-02 11:12:33 +02:00