* 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
This is the first step of a multi-step SaaS engine extraction.
Looking ahead to an open source release, we need to make sure that
local authentication is treated as an "official" option, and not just
a hack I added for Kevin to do load testing outside our DC. So this PR
gets to green, and adds a CI step in "local authentication" mode.
This all probably feels a little hacky to you, Reader, but the goal of
this change is to ease the next step, which will be extracting the
37id and Queenbee integrations into a proprietary "SaaS mode" engine.
In service of that goal, this commit simply wraps all of the dependent
code and tests with a conditional check on
`config.x.local_authentication`.
Also, downgrade LLM for commands to mini. It's much cheaper and I only upgraded because of the
interpretation complexities that the insight command introduced.
We are implementing a much better approach with Ask.
* main: (28 commits)
Clean up the /scripts directory
Prevent recursion when invoking AI
Bump sqlite3 from 2.7.2 to 2.7.3
Port over Jeremy's fix for slow uploads
.gitignore log files and portfolio's local storage
Drop Current.account and just use Account.sole
Use the utf8-patched mysql driver
Call blob.preview for previewable attachments
Make sure the image variants we use are preprocessed
Add /user command
Make sure it doesn't infer custom abbreviations when matching user names
Script to load prod db in development
Update Signup to use the queenbee_id for the tenant name
Bump cache version
Make sure it uses latest bundler to prevent error due to mismatch
Invalidate cache
Update ruby
Update bundler to prevent error on lower version
Update bundler to prevent error on lower version
Resolve stages
...
to avoid implicitly creating a variant during a GET to a read replica,
which will raise an exception and cause the image to fail to load.
This feels pretty brittle, to be honest, and we'll need to be careful
in the future about creating and using new variants; we will probably
need to backfill the new variant for existing images because we can't
guarantee that they will be created implicitly/lazily if the GET lands
on the replica.
ref: https://fizzy.37signals.com/5986089/collections/7/cards/942
This really only impacts the Disk service in development.
I proposed this upstream in https://github.com/rails/rails/pull/55248,
but it's not clear if the presence of script_name should _always_
prefix generated URLs, so for now it's local to Fizzy.
and more importantly, don't try to connect to the 37id database, which
will hang.
And finally, set the connect_timeout to something small so if we do
try to make a connection, it will fail quickly instead of hanging for
the default 120 seconds.
- Creates a Queenbee::Account
- SignalId peer classes work properly
- Set up a basic template for the account (closure reasons, workflow, collection)
- Load signal_id fixtures during `bin/setup --reset`
- Update signal_id to pull in the Fizzy product
- add libmysqlclient to the container image
- configure the signal id database
- YAML permitted classes setup for 37id tests
- setup rw splitting so integration tests pass