Commit Graph

5595 Commits

Author SHA1 Message Date
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 f38410890a Merge pull request #1276 from basecamp/udpate-fizzy
Update lexxy to latest
2025-10-10 15:45:57 +02:00
Jorge Manrubia a5b8012eb6 Update lexxy to latest 2025-10-10 15:42:21 +02:00
Andy Smith e068faf3ec Merge pull request #1275 from basecamp/public-description-lists
Public description lists
2025-10-09 16:12:58 -05:00
Andy Smith 9ead1d82ac Merge branch 'main' into public-description-lists
* main: (21 commits)
  Ruby 3.4.7 (#1274)
  bin/setup: enpurple step headings
  bin/setup: ensure PATH is prepared after a new Ruby is installed
  Drop defunct bin/bundle that interferes with Bundler's own version management
  bin/setup: use Bash so we can bootstrap Ruby (#1273)
  Don't try to wrap with a download link, every file already has one in the caption
  bundle lock --normalize-platforms
  Show column title on public collections
  Docker: explicit libssl dep
  Ruby 3.4.6 (#1272)
  Check the selected color
  Style
  Add column color to cache keys
  Make the edit form the same dimensions as the add form
  Don't let the column button effect apply to buttons in the picker
  Set and change column colors
  Prom metrics in dev (#1269)
  Cleanup prototyping
  Properly scroll and center content
  Sorta working x-scroll
  ...
2025-10-09 16:08:16 -05:00
Jeremy Daer 0cdf68125d Ruby 3.4.7 (#1274) 2025-10-09 13:24:01 -07:00
Jeremy Daer 0d4a045e1c bin/setup: enpurple step headings 2025-10-08 22:05:27 -07:00
Jeremy Daer 5c48e47c02 bin/setup: ensure PATH is prepared after a new Ruby is installed 2025-10-08 22:02:57 -07:00
Jeremy Daer 2faaba3ef0 Drop defunct bin/bundle that interferes with Bundler's own version management
Without it, Bundler auto-installs the correct version to run, including
newer Bundler versions.
2025-10-08 22:01:57 -07:00
Jeremy Daer 0e82255601 bin/setup: use Bash so we can bootstrap Ruby (#1273)
And chew gum
2025-10-08 21:45:18 -07:00
Jason Zimdars 094c2c056b Don't try to wrap with a download link, every file already has one in the caption 2025-10-08 21:54:25 -05:00
Jeremy Daer 3dd3dcc2e7 bundle lock --normalize-platforms 2025-10-08 16:02:09 -07:00
Jason Zimdars 37ba5e8b67 Merge branch 'public-columns-fix' 2025-10-08 18:01:50 -05:00
Jason Zimdars 8c3f0c66b7 Show column title on public collections 2025-10-08 17:55:35 -05:00
Jeremy Daer 2411ab74a0 Docker: explicit libssl dep 2025-10-08 15:50:55 -07:00
Jeremy Daer 398946aa9e Ruby 3.4.6 (#1272)
* Bundler 2.7.2
* Minor dep bumps
2025-10-08 15:40:21 -07:00
Jason Zimdars 4bc304f762 Check the selected color 2025-10-08 17:37:10 -05:00
Jason Zimdars 300a7b2faa Merge pull request #1271 from basecamp/add-colors-to-cache-keys
Add column color to cache keys
2025-10-08 17:16:47 -05:00
Jason Zimdars 3390cd95af Style 2025-10-08 17:11:42 -05:00
Jason Zimdars fcba8b6acb Add column color to cache keys
So cards change colors when you change the column color
2025-10-08 17:08:32 -05:00
Andy Smith 24eaf9ff1f Make lists in public description less weird 2025-10-08 16:52:22 -05:00
Jason Zimdars 9d1d21b625 Merge pull request #1270 from basecamp/set-column-colors
Set column colors
2025-10-08 16:52:22 -05:00
Jason Zimdars 7d8564996f Make the edit form the same dimensions as the add form 2025-10-08 16:49:16 -05:00
Jason Zimdars 7fd8cb2297 Don't let the column button effect apply to buttons in the picker 2025-10-08 16:48:44 -05:00
Jason Zimdars d7cf5c9348 Set and change column colors 2025-10-08 16:47:36 -05:00
Jeremy Daer a798cc445c Prom metrics in dev (#1269) 2025-10-08 14:06:28 -07:00
Jason Zimdars 643d12db1b Merge pull request #1268 from basecamp/mobile-columns
Mobile columns
2025-10-08 15:49:51 -05:00
Andy Smith 4638237889 Cleanup prototyping 2025-10-08 14:45:02 -05:00
Andy Smith 64175f040a Properly scroll and center content 2025-10-08 14:34:56 -05:00
Andy Smith 86b458bad0 Sorta working x-scroll 2025-10-08 13:54:24 -05:00
Andy Smith a701cf4324 WIP 2025-10-08 12:59:08 -05:00
Mike Dalessio 4cfeeea959 Merge pull request #1266 from basecamp/flavorjones/qb-signup
Signup user workflow (simple QB version)
2025-10-08 13:39:48 -04:00
Jeremy Daer 2b1c886bc9 maOS Tailscape.app CLI support (#1267) 2025-10-08 10:14:51 -07:00
Mike Dalessio 160a5b5269 Signup user flow 2025-10-08 12:09:17 -04:00
Andy Smith 699b2f7cb3 Merge pull request #1265 from basecamp/filter-bar-spacing
Add gap
2025-10-08 11:03:11 -05:00
Andy Smith c87dce0e7f Add gap 2025-10-08 10:57:07 -05:00
Mike Dalessio a9cf7c2c7c Re-introduce a Signup PORO model 2025-10-08 11:20:33 -04:00
Jorge Manrubia 753cba1cd8 Merge pull request #1264 from basecamp/remove-problematic-caching
Don't cache the whole stream column
2025-10-08 12:20:15 +02:00
Jorge Manrubia 245823ad1c Don't cache the whole stream column
It can result in serving the wrong watch button, causing trouble like https://fizzy.37signals.com/5986089/cards/2157

The list of cards is already cached.
2025-10-08 12:18:31 +02:00
Jorge Manrubia 509464778f Format 2025-10-08 11:21:49 +02:00
Jeremy Daer 5663d37dd4 Tailscale-aware deploys (#1263)
* If Tailscale isn't running, advise bringing it up

(No SSH gateway support; may retrofit later.)
2025-10-07 20:04:58 -07:00
Jason Zimdars e1f0bbd7d1 Merge pull request #1261 from basecamp/fix-users-lists
Fix squashed users lists
2025-10-07 20:29:10 -05:00
Jason Zimdars 6f73c6a729 Fix squashed users lists
Regressed in 9b1cd84f96 cc: @andyra
2025-10-07 20:27:55 -05:00
Mike Dalessio 32a6bedada Merge pull request #1262 from basecamp/flavorjones/bump-uri-for-cve
dep: bump uri for CVE-2025-61594
2025-10-07 20:38:33 -04:00
Mike Dalessio 878ff60ad7 dep: bump uri for CVE-2025-61594 2025-10-07 20:37:03 -04:00
Andy Smith e0b87fb7f4 Merge pull request #1259 from basecamp/a11y-toolbar
Remove aside and toolbar role from perma actions
2025-10-07 11:33:41 -05:00
Andy Smith 42aa213312 Remove aside and toolbar role from perma actions 2025-10-07 10:48:05 -05:00
Jorge Manrubia 5a329195fe Invalidate on collection (so that when we let you edit column colors it invalidates) 2025-10-07 11:25:14 +02:00
Jorge Manrubia 89f84e846c Migration I forgot to push 2025-10-07 11:24:42 +02:00
Jorge Manrubia 6035738bb4 No workflows anymore 2025-10-07 11:23:25 +02:00