Commit Graph

255 Commits

Author SHA1 Message Date
Mike Dalessio e1609a1aa4 Delete the first runs controller/routes/model
which has been replaced by the signups controller
2025-06-21 10:38:36 -04:00
Mike Dalessio 141554c21c Make sure the beta env keeps local authentication (for now)
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.
2025-06-20 16:17:02 -04:00
Mike Dalessio 2c18173f08 Trampoline the Launchpad auth redirect from a GET into a POST
to always route it to the writer.
2025-06-20 15:16:57 -04:00
Mike Dalessio 8b68eab6a8 Add the shared signal_id secret
so that we can authenticate properly with launchpad
2025-06-20 15:16:57 -04:00
Mike Dalessio d29bfb9f5a Add a QB API endpoint for plans
- add the shared api token to all environments
- add a single FreeV1 subscription
- add QB routes
- allow the queenbee routes in the tenanting middleware

ref: https://3.basecamp.com/2914079/buckets/37331921/todos/8746302763
2025-06-20 15:16:57 -04:00
Mike Dalessio 6f09d6a737 Add HTTP basic auth to the signup controllers
so that signup is internal-only for now.
2025-06-20 15:16:57 -04:00
Mike Dalessio 1be9ba6ee3 Signup workflow for existing identity 2025-06-20 15:16:57 -04:00
Mike Dalessio ee60e8dd01 Signup::AccountsController suppports signing up with a new identity 2025-06-20 15:16:57 -04:00
Mike Dalessio 6594dd115a ci: run the 37id tests 2025-06-20 15:16:57 -04:00
Mike Dalessio 73ba0c074f Introduce a Signup model and integrate with QB/37id
- 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
2025-06-20 15:16:57 -04:00
Mike Dalessio dacb53b8b1 Launchpad login works for existing 37id identities 2025-06-20 15:16:56 -04:00
Mike Dalessio aada380147 Add the signal_id gem
- 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
2025-06-20 15:16:56 -04:00
Jorge Manrubia 9ddb18792b Only offer users accessible in the collection 2025-06-20 10:44:42 +02:00
Jorge Manrubia 6446e5b409 Select cards with # 2025-06-19 13:00:26 +02:00
Jorge Manrubia cda20600b1 Show mentions in the editor 2025-06-19 12:16:32 +02:00
Kevin McConnell 67594301a7 Add state volume to load balancer 2025-06-17 08:47:03 +01:00
Kevin McConnell 63c2aa1367 Enable VFS, but don't load extension again
We only need to load the extension once, which we're doing in an
initializer. So no need to load it again on the tenanted connections
(and doing so is problematic when it occurs after a fork).
2025-06-16 14:48:13 +01:00
Jorge Manrubia f58aaadba5 Drag and drop cards to move between doing/considering 2025-06-12 11:57:53 +02:00
Jorge Manrubia 7013b7f378 Pagination working for public collections 2025-06-09 14:36:53 +02:00
Jorge Manrubia 486bc4a610 Basic UI to toggle collection publication status 2025-06-09 12:58:58 +02:00
Kevin McConnell 7d027f6699 Disable replication temporarily 2025-06-06 09:02:13 +01:00
Kevin McConnell d78a61b8fc Use vfs tag on production accessories 2025-06-05 14:55:02 +01:00
Mike Dalessio 711bf829dd Merge pull request #584 from basecamp/flavorjones/staging-env
Introduce a staging environment
2025-06-05 09:37:31 -04:00
Kevin McConnell e998783155 Use VFS-based Beamer 2025-06-05 11:59:30 +01:00
Jorge Manrubia e8322afb59 Update brakeman 2025-06-05 09:13:19 +02:00
Mike Dalessio e67d59e341 Introduce a staging environment
ref: https://3.basecamp.com/2914079/buckets/21350690/card_tables/cards/8708868711
2025-06-04 11:06:09 -04:00
Jorge Manrubia 3c61fc3cdf Add screen to edit account settings to tweak default entropy configuration 2025-06-04 11:25:10 +02:00
Jason Zimdars ff403021cc Wire-up keyboard navigation
- Introduces a distinct controller and individual forms for each option so they behave like other pop-ups
- Adds `filter` and `navigable-list` behaviors
2025-06-03 11:05:39 -05:00
Mike Dalessio 9126c42eef Remove the "mirror" storage service
because we've updated all the blobs to point to "purestorage"
2025-06-01 13:04:30 -04:00
Mike Dalessio a43db94a83 Update production storage to write to the Pure blob store
Modify the blob copying script to update the blob service name.

This completes the migration and allows us to (at some point) clean up
local disk and remove the "mirror" service from the config.
2025-06-01 12:57:54 -04:00
Mike Dalessio 6d7fbd2175 Clean up the purestorage config, and add explanatory comments.
We're keeping beta on local disk for now.
2025-06-01 12:48:59 -04:00
Mike Dalessio 29644ba122 Mount mission control under /admin/jobs
and add credentials for beta and production (in 1password).
2025-06-01 11:50:47 -04:00
Mike Dalessio bddfed3419 Flip the storage mirror to write to Pure as the primary 2025-05-31 16:02:50 -04:00
Mike Dalessio 704e215eca Production mirrors Active Storage to :purestorage
Also include a script to copy existing blobs to Pure.

Local is still the primary.

Beta will keep using local disk service for Active Storage because I
think there are constraints on source IPs for the Pure cluster.
2025-05-31 14:37:35 -04:00
Mike Dalessio df682cdfe1 Make sure Sentry is configured for the beta env. 2025-05-31 13:35:53 -04:00
Mike Dalessio c3a9ac7391 Create a distinct "beta" environment
and move secrets into Rails credentials for both beta and production
environments.
2025-05-31 10:57:26 -04:00
Mike Dalessio 1c85d8f270 Add a kamal "ssh" alias 2025-05-30 17:44:02 -04:00
Mike Dalessio febab0758a Drop the unnecessary initializer creating storage paths 2025-05-30 15:13:10 -04:00
Jorge Manrubia fa04016cbe Revert "Revert "Replace House with Lexical"" 2025-05-29 14:25:16 +02:00
Jorge Manrubia 08d8b2e5ff Revert "Replace House with Lexical" 2025-05-29 14:22:27 +02:00
Jorge Manrubia 62bef018ea Merge branch 'main' into lexical
* main:
  Don't choke when rendering commands where the card was deleted
  Update tests
  Rework system events
  test: add missing assertions
  dep: bump active_record-tenanted to fix URI support
  Remove hyphen from "Un-do"
  Prevent default when handling keyboard shortcuts
  dep: update AR::Tenanted to support database URIs
  Detect platform and label the correct hotkey shortcut
  Things got too tight
  Don't require TLS for Beamer at the moment
  dep: update dependencies

# Conflicts:
#	Gemfile
#	Gemfile.lock
#	app/assets/stylesheets/comments.css
2025-05-29 12:44:14 +02:00
Jorge Manrubia 2594bf90a7 Bye house! 2025-05-28 22:36:43 +02:00
Kevin McConnell c2c3a8d8ab Don't require TLS for Beamer at the moment 2025-05-26 15:26:31 +01:00
Jorge Manrubia 10b2aad647 Replace House with lexical-powered actiontext 2025-05-23 11:41:08 +02:00
Jorge Manrubia 202088fc8e Comment AI in tests 2025-05-16 17:28:37 +02:00
Jorge Manrubia 40b78e4115 Move extension configuration to config file
Kudos to Mike for the tip
2025-05-16 16:17:54 +02:00
Jorge Manrubia b8f94c4ecb Add VCR and some initial tests 2025-05-16 13:29:18 +02:00
Jorge Manrubia 4c7b99e39d Add separated API key for test environment 2025-05-16 13:29:18 +02:00
Jorge Manrubia b079be8388 Be explicit about the model 2025-05-16 13:29:18 +02:00
Jorge Manrubia b7b89541c6 Update README with a note about credentials 2025-05-16 13:29:18 +02:00