Jorge Manrubia
20b5e57dd3
Prefer if/else over early return
2025-12-16 12:00:23 +01:00
Jorge Manrubia
973b4e4aed
Rename param to remove redundant bit
...
Co-authored-by: Matt Almeida <matt7@hey.com >
2025-12-16 12:00:23 +01:00
Jorge Manrubia
c0050415f5
This is needed for vat id collection
2025-12-16 12:00:23 +01:00
Jorge Manrubia
f68aa0d947
Enable tax id collection
2025-12-16 12:00:23 +01:00
Jorge Manrubia
3395b8d6ed
Grab and show the next amount to pay from Stripe
2025-12-16 12:00:23 +01:00
Jorge Manrubia
8dd31e3635
Add system to comp accounts
2025-12-16 12:00:23 +01:00
Jorge Manrubia
3ef5e4eeef
Add record to track overridden limits
...
Before, we were relying on just changing the cards_count in account, but this
could create problems where the system to calculate the next card number fails due
to the unique constraint.
2025-12-16 12:00:23 +01:00
Jorge Manrubia
725e850802
Enable automatic taxes and calculate based on mandatory billing address
...
https://app.fizzy.do/5986089/cards/3465
2025-12-16 12:00:23 +01:00
Jorge Manrubia
f4184e5a61
Remove redundant condition
2025-12-16 12:00:23 +01:00
Jorge Manrubia
c8330a7be8
Don't prevent creating drafts, or you won't get to see the upgrade banner
...
Instead:
- Always let you create drafts when pressing "Add card"
- Prevent creations of published cards via API
- Prevent publication of cards in all cases when the limit is exceeded
2025-12-16 12:00:23 +01:00
Jason Zimdars
7a5e29699c
Give this some padding
2025-12-16 12:00:23 +01:00
Jason Zimdars
b19770c2a8
Show different things to non-admins
2025-12-16 12:00:23 +01:00
Jason Zimdars
6411268d7a
More fancy apostrophes
2025-12-16 12:00:23 +01:00
Jason Zimdars
b1a8b3c859
Layout
2025-12-16 12:00:23 +01:00
Jason Zimdars
5957ed6449
Typo
2025-12-16 12:00:23 +01:00
Jason Zimdars
9953508541
Fancy apostrophes
2025-12-16 12:00:23 +01:00
Jason Zimdars
d556f051a6
Spelling
2025-12-16 12:00:23 +01:00
Jorge Manrubia
e53455d2ca
Paid plans never exceed limits!
2025-12-16 12:00:23 +01:00
Jorge Manrubia
d5018cab23
Fix typo
2025-12-16 12:00:23 +01:00
Jorge Manrubia
ca5095cafd
Fix typo with unlimitted
2025-12-16 12:00:23 +01:00
Jorge Manrubia
623d80017f
Add stripe envs
2025-12-16 12:00:23 +01:00
Jorge Manrubia
c34e29454e
Document how to work with Stripe locally
2025-12-16 12:00:23 +01:00
Jorge Manrubia
fc0dc9423d
Kill previous tunnel automatically
2025-12-16 12:00:23 +01:00
Jorge Manrubia
5baf9d879d
Dont't fail if not set
2025-12-16 12:00:23 +01:00
Jorge Manrubia
90eb61bb5f
Add script to set stripe env vars from 1password
2025-12-16 12:00:23 +01:00
Jorge Manrubia
a25bd9adfd
Let's use a single sandbox environment via 1password ENV vars
2025-12-16 12:00:23 +01:00
Jorge Manrubia
5be4dca80e
Refresh the subscription instead of relying on event payloads
...
Events can land out of order. See https://github.com/basecamp/fizzy-saas/pull/23#discussion_r2609909558
2025-12-16 12:00:23 +01:00
Jorge Manrubia
984a5dd4ce
Add Stripe-based billing system
...
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Jason Zimdars <jz@37signals.com >
2025-12-16 12:00:23 +01:00
Jorge Manrubia
2289f4b1d6
Merge pull request #33 from basecamp/linting
...
Add rubocop
2025-12-16 11:59:29 +01:00
Jorge Manrubia
2616045476
Add rubocop linting
2025-12-16 11:54:31 +01:00
Jeremy Daer
6050b80fdd
Reduce retained containers to free disk space faster ( #32 )
...
Beta/staging: 1 (down from default 5)
Production: 2 (registry is local, quick to pull)
2025-12-13 10:32:18 -08:00
Mike Dalessio
acc90ec8eb
Fix inclusion of Fizzy::Saas::Authorization::Controller
2025-12-12 15:28:27 -05:00
Mike Dalessio
19383b408d
Merge pull request #30 from basecamp/flavorjones/limit-staging-beta-to-internal
...
Restrict logins to employees in staging
2025-12-12 15:10:11 -05:00
Mike Dalessio
d82d68fcd0
Restrict logins to employees in staging
...
as inferred from the email domain, which must be "@37signals.com" or
"@basecamp.com".
2025-12-12 15:07:16 -05:00
Matthew Kent
0ca4afa4e3
Merge pull request #29 from basecamp/move-queenbee-staging
...
Bump queenbee-plugin to pickup the staging host move
2025-12-11 16:17:56 -08:00
Matthew Kent
f15121645a
Bump queenbee-plugin to pickup the staging host move.
...
See https://3.basecamp.com/2914079/buckets/21350690/card_tables/cards/9367648417
2025-12-11 11:31:29 -08:00
Fernando Álvarez
88de372f41
Migrate Staging app URL to app.fizzy-staging.com
2025-12-11 17:36:06 +01:00
Kevin McConnell
f662955a8e
Merge pull request #27 from basecamp/set-multi-tenant-option-in-development
...
Also set multi_tenant for SaaS development
2025-12-11 12:24:35 +00:00
Kevin McConnell
54a9641dee
Also set multi_tenant for SaaS development
2025-12-11 12:22:10 +00:00
Kevin McConnell
be585caa9f
Merge pull request #26 from basecamp/set-multi-tenant-option
...
Set multi_tenant config option
2025-12-11 12:15:39 +00:00
Kevin McConnell
03ea5f7b89
Set multi_tenant config option
...
To allow the non-SaaS version of Fizzy to default to single-tenant mode,
we'll enable a `multi_tenant.enabled` config option here that overrides
the default behaviour.
2025-12-11 11:38:42 +00:00
Jeremy Daer
221e596c5d
Enforce CSP ( #25 )
2025-12-10 17:36:23 -08:00
Jeremy Daer
59d77cf104
CSP: move SaaS-only sources out of OSS ( #24 )
2025-12-10 17:11:36 -08:00
Jeremy Daer
219f4d60b6
Prefer FQDN
2025-12-10 15:01:32 -08:00
Jeremy Daer
e35c1223f4
Sentry: error context and release tracking ( #22 )
...
* Sentry: use KAMAL_VERSION for release tracking
Kamal injects KAMAL_VERSION at container runtime with the git SHA,
so no need to bake it into the Docker image via build args.
* Sentry: serve as Rails error reporter
Sentry receives errors from Rails.error.report and Active Job
`retry_on/discard_on report: true`.
Error context is provided by Rails.error.set_context in Fizzy's
Authentication concern and ApplicationJob.
2025-12-08 09:39:35 -08:00
Jeremy Daer
8572fd77b8
Content Security Policy: report-only mode to Sentry ( #21 )
2025-12-05 10:57:41 -08:00
Mike Dalessio
3fc0e4be11
Merge pull request #20 from basecamp/flavorjones/bake-in-console1984
...
Add `console1984` and `audits1984`
2025-12-04 12:25:13 -05:00
Mike Dalessio
8f73e1e1be
Add console1984 and audits1984
...
To keep as much of this as we can in the `fizzy-saas` gem, this PR
opts to store console/audits models in a separate database, and so:
- the gem contains the migrations and the database config
- the app contains a separate schema file distinctly for SaaS concerns
- Rails' current behavior prevents us from easily keeping this file in the gem
Also note that the stock `audits1984` schema is updated to reference
the auditor via a UUID foreign key.
Finally, in order for the database schema file to be located in the
gem directory (and not the application directory), it's necessary to
monkeypatch `AR::DatabaseTasks.schema_dump_path` to support absolute
paths. This functionality has been proposed upstream in
https://github.com/rails/rails/pull/56290 but is awaiting a decision
from the core team.
ref: https://app.fizzy.do/5986089/cards/2469
ref: #17
2025-12-04 11:43:48 -05:00
Mike Dalessio
9876307cf6
Merge pull request #19 from basecamp/flavorjones/gitleaks-allow-20251203
...
Mark a development token as gitleaks:allow
2025-12-03 17:05:27 -05:00
Mike Dalessio
3ab3bcc580
Mark a development token as gitleaks:allow
2025-12-03 17:03:16 -05:00