- 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.
Resolved conflict in card-columns.css by keeping both changes:
- Added padding-inline for non-collapsed cards from collapsing-columns
- Kept bubble positioning, hover effects, and card steps from main
Resolves merge conflicts by:
- Integrating new Cards::Columns architecture from main
- Preserving collapsible columns functionality
- Maintaining stage-specific doing columns support
- Using new column-based rendering while keeping expanders
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* main: (55 commits)
Use polymorphic_url instead of path
Rename redundant name
Exclude inactive users
Send HTML to campfire instead of JSON
Fix crash due to missing default value
Bundle rails from main
Sort alphabetically
Now that we have space on the left, move it there
Add missing actions
Remove URL field from edit form
Improve active state
Don't need to navigate this list
Style show view
Style web hooks forms and list WIP
Rename methods for clarity
Use HTML5 validation for the URL
Change the icon if there are webhooks on a collection
Simplify delinquency tracking
Scope Webhooks to Collections
Limit access to webhooks to admins
...