Commit Graph

155 Commits

Author SHA1 Message Date
Stanko K.R. 15eeba82f5 Scope model methods by account 2025-11-17 09:12:41 -05:00
Stanko K.R. a0251255a7 Rename IdenityMailer to UserMailer 2025-11-17 09:12:41 -05:00
Stanko K.R. e0693de7c3 Scope jobs and controllers by account 2025-11-17 09:12:41 -05:00
Donal McBreen 28efe28f24 Replace Search::Index with Search::Records
Lean on ActiveRecord models for searching and strip out the raw SQL.
Replaces the search_index_* tables with sharded search_records_* tables
as that allows us to use a Search::Record model name.

A Class is dynamically created for each record table shard so that we
and we can access it via the Search::Record.for_account(account_id)
method.
2025-11-17 09:12:40 -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. 56c41d45eb Reinstate email changes 2025-11-17 09:12:40 -05:00
Mike Dalessio 039e4a0bed Remove dead code (after deleting Membership) 2025-11-17 09:12:40 -05:00
Stanko K.R. edf837fed3 Drop memberships 2025-11-17 09:12:39 -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
Mike Dalessio ff8d786144 Filter boards by account 2025-11-17 09:11:57 -05:00
Mike Dalessio dbf66f9a50 Constrain user queries to the current or relevant account 2025-11-17 09:11:57 -05:00
Jorge Manrubia 9903a37243 Fix tests 2025-11-12 11:37:06 +01:00
Jorge Manrubia dba3b2d65d Remove nil param 2025-11-12 11:25:51 +01:00
Jorge Manrubia f5440833a9 Order method 2025-11-10 16:21:46 +01:00
Jorge Manrubia 590a63c422 Move helpers salad to a presenter column when rendering the timeline 2025-11-10 15:52:59 +01:00
Jorge Manrubia 3b34703db3 Make sure that only admins or card creators can delete cards 2025-11-05 16:37:43 +01:00
Jorge Manrubia 193cc26a98 Make sure only admins or collection creators can toggle the all access setting 2025-11-05 15:51:19 +01:00
Jorge Manrubia 2494b94ec9 Support old events in the timeline 2025-11-05 13:56:22 +01:00
Jorge Manrubia 03a345609e Baseline replacing collection with board across code 2025-11-05 13:31:54 +01:00
David Heinemeier Hansson 992b149395 No longer used 2025-11-03 14:29:01 +01:00
Mike Dalessio 18f70c3312 Do not bundle notifications for inactive users
https://app.box-car.com/5986089/cards/2671
2025-10-31 14:51:09 -04: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. 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 e1d2455c01 Remove unused events 2025-10-30 07:53:21 +01:00
Jorge Manrubia 85bee1af9b Add events for moving between columns 2025-10-29 14:49:02 +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
Jorge Manrubia 9317a82570 Remove Fizzy Ask
Since we are not going to ship it
2025-10-27 14:45:30 +01:00
Jorge Manrubia 392bdae316 Rename highlights -> summary 2025-10-25 20:06:57 +02:00
Jorge Manrubia 4b5e8dc233 The collections filters is pretty crucial, make it evident in the code 2025-10-16 17:34:16 +02: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
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 1d1a3da9cf Cleanup workflow/stages
This was pending after moving to columns
2025-10-07 11:10:10 +02:00
Jorge Manrubia 969d971616 Use a more consistent approach to highligts dates 2025-10-06 15:17:28 +02:00
Jorge Manrubia 328b488d3d Remove trace 2025-10-06 12:47:27 +02:00
Jorge Manrubia 4e5edef4df Invalidate cache when there are higlights 2025-10-06 12:43:05 +02: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
Jorge Manrubia 4527dcbeda Remove unnecessary filtering code
After removing collections from the filtering menu, there was quite a good cleanup here pending
2025-10-03 10:56:34 +02:00
Jason Zimdars 7e43cc3ab4 Stub collections filter UI 2025-10-01 15:38:32 -05:00
Mike Dalessio 0213140a7c Update User so that it can be cleanly destroyed
- Delete unused dependent-destroy associations
- Include watchers as a dependent-destroy
2025-09-30 14:44:38 -04:00
Jorge Manrubia e8f6323cf0 Select the previous week when passing a sunday 2025-09-23 14:02:29 +02:00
Jorge Manrubia bfe0f5a68b Fix: missing highlights due to not interpreting timezones right 2025-09-23 13:38:25 +02:00
Jorge Manrubia 8de84ad329 Revert "Fix highlights being skipped"
This reverts commit 102ce0bf3c.
2025-09-22 14:16:35 +02:00
Jorge Manrubia 102ce0bf3c Fix highlights being skipped 2025-09-22 13:45:40 +02:00