ProveProof
Gate G0: sandbox connectivity
Does the sandbox app authenticate, and can it create an AUTHORIZE order? Method, evidence and limits.
G0 PASS
Question
Does the PayPal sandbox app authenticate, and can it create an order with intent AUTHORIZE? Every later real-sandbox gate depends on this, so it runs first.
Method
- Workflow:
gate-g0, started by hand (workflow_dispatch). The job declares thesandbox-nightlyenvironment and runs only frommain. - Script:
gates/g0.tsinpackages/payments(package scriptgate:g0). It makes a client-credentials token request, then creates one order with intent AUTHORIZE, and checks that the approve link is present. - Secrets used, by name:
PAYPAL_CLIENT_IDandPAYPAL_CLIENT_SECRET. Values are never recorded. - Sandbox accounts behind the gates: one business account that owns the app and five personal US buyer accounts, all in USD.
| Check | Expected | Observed |
|---|---|---|
| G0.1 token | HTTP 200, payments scope | HTTP 200, payments scope |
| G0.2 create AUTHORIZE order | HTTP 201 CREATED | HTTP 201 CREATED, intent as sent |
| G0.3 approve link | present | present |
Evidence
The result is stated in docs/GATES.md. The badge above is read from that file when the site is built.
Limits
- It proves connectivity, token scopes and order creation only.
- No buyer approval and no capture were part of G0.
- It says nothing about card or guest buyers (G2), partial capture (G1) or webhooks (G4).
If it fails
There is no fallback for payments. Hold G1 to G4 and demo on the fake PayPal, labelled as fake. See the operator runbook and gate runbook.
- docs/GATES.mdthe gate record this page reads
- docs/RUNBOOK-GATES.mdwhat to do when the gate fails
- packages/payments/gates/g0.tsthe G0 script
- .github/workflows/gate-g0.ymlthe workflow
Edit on GitHub
Last updated on