Commit Graph

188 Commits

Author SHA1 Message Date
Stanko Krtalić eceb6c9b43 Add self-service account deletion (#2246)
* Add self-service account deletion

* Disable access to cancelled accounts & implement Stripe interactions

* Add tests

* Fix failing tests

* Remove cancelled accounts from lists

* Fix incorrect redirect

* Use _path instead of _url for consistency

* Don't track how far the inicieration job got

We still want the step tracking so that the job can be interrupted. But, since the scope is idempotent, we don't need to track how far it got.

* Specify the exact time when the data will be deleted

* Fix crash due to unadvancable cursor

* Rename up_for_incineration to due_for_incineration

* Regenrate the schema

* Fix incorrect path check

* Migrate the SQLite schema

* Only show the cancel button on cancellable accounts

* Check that a subscirption method exists before calling it

* Ignore job failures due to missing records when an account gets deleted

* Skip sending notifications on cancelled accounts

* Use collbacks to integrate

* Add a blank line between queue_as and discard_on

* Break checks into methods

* Inline methods

* Rename Account::IncinerateJob

* Run migrations

* Migrate SQLite
2026-01-12 14:21:05 +01:00
Jorge Manrubia f58a1aeb31 Use a dedicated resource for showing cards in draft mode
Mobile team needs this. Also, this lets us get rid from some conditionals for handling
both modes with a single template.

https://3.basecamp.com/2914079/buckets/44843469/messages/9437287330
2026-01-08 10:40:21 +01:00
Mike Dalessio a7c9b7479c saas: move log_level setting into an environment variable 2026-01-07 11:24:22 -05:00
Jeremy Daer 0634ddaebd Fix 1Password account ID (was user UUID) (#2278) 2025-12-31 13:58:01 -08:00
Jeremy Daer cda4f93e4a Switch 1Password account to 37signals.1password.com (#2276) 2025-12-31 10:15:39 -08:00
Andy Smith 4ca13516be Add padding to upgrade message on larger screens 2025-12-29 13:54:43 -06:00
Jason Zimdars d977d51501 This link is reduntant if you're over the limits
No need to show this link and the big upgrade button. The subtle footer
link is for people who *want* to ugprade but don't *need* to.
2025-12-23 12:30:37 -06:00
Jason Zimdars 2f9d6bf7cd Add obvious upgrade button when you're out of storage 2025-12-23 12:28:15 -06:00
Jason Zimdars 0875d7369c Merge pull request #2241 from basecamp/improve-account-admin
Internaly only view
2025-12-23 12:21:19 -06:00
Andy Smith fdcdd5b542 Merge pull request #2214 from basecamp/billing-decimals
Ensure 2 decimal precision when dealing with currency decimals
2025-12-23 12:18:19 -06:00
Jason Zimdars 472b1a1cad Internaly only view
Adds plan name and indicates when overrides exceed limits; cleans up UI
at bit
2025-12-23 12:02:18 -06:00
Andy Smith 64970feb24 Better name for helper method 2025-12-23 10:53:00 -06:00
Fernando Álvarez 037559fb25 Set beta site automatically in deployment 2025-12-23 12:27:03 +01:00
Fernando Álvarez 78d3a72cc4 Update script to configure betas load balancers 2025-12-23 12:27:03 +01:00
Fernando Álvarez dbb8113080 Extend the number of Beta environments 2025-12-23 12:27:03 +01:00
Fernando Álvarez 43dd149ff2 Cleanup beta deployment
Current beta runs in Chicago only.
2025-12-23 10:17:30 +01:00
Andy Smith 1f16936b2e Move currency helper to existing subscriptions helpers file 2025-12-19 15:47:04 -06:00
Andy Smith 43b67e92ad Ensure 2 decimal precision when dealing with currency decimals 2025-12-19 15:43:49 -06:00
Jorge Manrubia 766cde4775 Tidy up test 2025-12-19 15:15:00 +01:00
Mike Dalessio 28250b340c Move the :fatal log setting into the SaaS config
This should only be set if the app is using the
rails-structured-logging gem, which means it should only be set in the
SAAS config. I think this is just something we missed in one of the
decoupling exercises we did.
2025-12-19 09:09:40 -05:00
Jorge Manrubia 5ab6b1299e Restoring kamal secrets we lost when moving back to Fizzy 2025-12-19 10:49:16 +01:00
Jason Zimdars dd59771c94 Use current plan because you might be on the extra storage plan 2025-12-18 07:25:20 -06:00
Jorge Manrubia b44b7ba992 Add method to locate plans by the stripe price id 2025-12-18 10:05:13 +01:00
Jorge Manrubia d9ce1577c0 Fix upgrade/downgrade buttons
- Remove old buttons I had added before the UI work.
- Fix: make new upgrade button use the dedicated action.
- Add symmetric downgrade button.
2025-12-18 10:05:13 +01:00
Jorge Manrubia 7bf701095c Fix tests after the UI/copy changes 2025-12-18 10:05:13 +01:00
Jorge Manrubia 0f9d1df31b Format 2025-12-18 10:05:13 +01:00
Jason Zimdars 8bb59f507b Cherry-pick changes in b87ae1494a 2025-12-18 10:05:13 +01:00
Jason Zimdars d8b3485812 Copy edits for limit notices 2025-12-18 10:04:15 +01:00
Jason Zimdars b1a65bd698 Consistency 2025-12-18 10:04:15 +01:00
Jason Zimdars cfd2033d15 Design paid plan screen 2025-12-18 10:04:15 +01:00
Jason Zimdars 95bfc40392 Tweak plan name 2025-12-18 10:04:15 +01:00
Jason Zimdars 5f4330cbcc Update free plan partial to include storage limits 2025-12-18 10:04:15 +01:00
Jorge Manrubia b326f78d02 More idiomatic 2025-12-18 10:04:15 +01:00
Jorge Manrubia 3b99aa5dcf Remove unused method 2025-12-18 10:04:15 +01:00
Jorge Manrubia 00cab8ad7a Add tests for subscription-related messaging 2025-12-18 10:04:15 +01:00
Jorge Manrubia 4e6274d59a Consider storage when preventing backend card creation and publishing too 2025-12-18 10:04:15 +01:00
Jorge Manrubia 68cec74436 Extract parent class, validate plans can be downgraded/upgraded 2025-12-18 10:04:15 +01:00
Jorge Manrubia c56dbb5f1e Add upgrade/downgrade options 2025-12-18 10:04:15 +01:00
Jorge Manrubia 9c8c56cdb8 Comped plans use the extra storage variant 2025-12-18 10:04:15 +01:00
Jorge Manrubia 61c2277362 Place nearing variant above for consistency 2025-12-18 10:04:15 +01:00
Jorge Manrubia fc2848ea89 Initial storage notices 2025-12-18 10:04:15 +01:00
Jorge Manrubia 823cf9fbb9 Add some methods to deal with storage limits 2025-12-18 10:04:15 +01:00
Jorge Manrubia 8205823588 Add button to buy extra-storage subscriptions 2025-12-18 10:04:15 +01:00
Jorge Manrubia a1a67c65f5 Extract partials 2025-12-18 10:04:15 +01:00
Jorge Manrubia 611e1cc97e Add additional plan for extra storage 2025-12-18 10:04:15 +01:00
Mike Dalessio 605f4ed2a4 Move deploy broadcast to the saas gem 2025-12-17 12:46:00 -05:00
Andy Smith caefa72748 Remove testing logic 2025-12-17 11:26:59 -06:00
Andy Smith b87ae1494a Better upgrde footer on mobile 2025-12-17 11:26:37 -06:00
Andy Smith 2956ea3f90 Fix divider above subscription footer 2025-12-17 11:07:38 -06:00
Jeremy Daer c691d39ecf Integrate fizzy-saas as vendored gem at saas/
- Update Gemfile.saas to use path: "saas" instead of GitHub source
- Update config/database.yml to reference local saas/ directory
- Update bin/setup to source saas/bin/setup directly
- Remove redundant dotfiles (ruby-version, gitignore, rubocop, github workflows)
- Add saas/db exclusions to root rubocop config
2025-12-16 12:25:22 -08:00