Repository navigation
PAY-002B2C1: bind immutable initial Stripe provider plan - #174
Merged
Merged
Conversation
✅ Deploy Preview for luminous-fox-7c393f ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
11 tasks
4 of 6 tasks
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.
Outcome
Adds the unused server-only PAY-002B2C1 contract for one immutable Stripe Checkout Session plan. The exact active lease holder can bind attempt 1 once; exact recovery is read-only; stale, conflicting, corrupt, or chronologically impossible state fails closed.
The stored route is code-owned and static:
checkout_session_createmaps only to/v1/checkout/sessions. Arbitrary, object-ID-bearing, capability-shaped, unmapped, and mismatched paths reject before Firestore.Security and reliability boundary
provider_plan_boundorprovider_plan_existingclassification; no send or execute permission exists.C1 still does not send a Stripe request. PAY-002B2C2 owns pre-POST evidence and the old/unknown-send cutoff. PAY-002B2C3 owns verified reconciliation and safe later-attempt authorization.
Verification
Node 20 / Java 17 local evidence on exact commit
f1d1dd6cc1efebdd6f0945fcb62f92576b27b99a:Two independent exact-snapshot reviews approved the 10-path diff SHA-256
43cabd3865a5931a7a0d9e72c877e54d5ea5ba8f584b0482cabcbe455ea2991c. Review-found endpoint-ID, historical-lease chronology, commit-failure coverage, and dependency-cycle issues were corrected before commit.Migration and rollback
Additive unused target schema only. No endpoint imports this API. No backfill, TTL, deletion, production read/write, or provider inventory occurs. A rollback reverts this unused source/docs commit; it must not delete any future journal evidence.
Officer impact: None — checkout, refunds, admin work, and officer procedures do not change. Stripe commerce remains NOT AVAILABLE YET.
Officer documentation: None — this pull request changes only unused server-side safety source, synthetic tests, and engineering design/status documents. It adds no officer-visible behavior, permission, collected data, provider setting, or recovery step.
Deployment evidence: Source changed and local tests passed at
f1d1dd6cc1efebdd6f0945fcb62f92576b27b99a. Code is not yet merged. Website publication: not attempted.runmprc.com: not verified because no website behavior changes. Firebase deployment: not attempted. Stripe/provider configuration: not changed or verified. Production behavior: not tested or claimed.Closes #173
Final delivery evidence
Merged as
acaa961058177ea7266d489c9537a22802b0905e. Exact post-merge CI run 29276143519 passed Frontend, Functions, Firestore Rules, and the named commerce journal emulator. Protected production release run 29276269838 passed exact-main/exact-CI preflight, then failed closed before build because the protected publicREACT_APP_RECAPTCHA_SITE_KEYvariable is absent. Firebase deployment and Pages publication were skipped. Stripe/provider settings and production data were untouched; no live behavior is claimed.