Repository navigation
feat(platform): let products choose which billing actions need a recent sign-in - #32
Merged
Merged
Conversation
…nt sign-in createBillingActionGrants takes recentAuthActions, defaulting to every action as before. The architecture guide now says which actions count as sensitive: buying, changing or cancelling a plan doesn't.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
createBillingActionGrantsmakes every billing action, including starting a checkout, require a sign-in from the last 15 minutes, with no way to opt out. In CourseLit's onboarding a creator signs in, spends more than 15 minutes setting up their school, and then hits "Authentication is required" on the plan step. They are asked to sign in again just to pay us.No common product asks for a fresh sign-in before a purchase, and here it protects nothing:
What
createBillingActionGrants({ recentAuthActions })lists the actions that need a recent sign-in. The default is every action, so existing products behave the same. Pass["payer_transfer"], or[]for none.docs/architecture.mdsays what "sensitive action" means: hard to undo or able to move money or control away from the owner. Buying, changing or cancelling a plan is not.@codelitdev/platform.Tests
packages/platform/src/billing/billing.test.tschecks that only the named actions need a recent sign-in, and that[]needs none. The full platformtypecheckpasses.