Fix git access: clone from openclaw-vm via deploy keys, not k3s-mgr
This commit is contained in:
parent
b01326a3a9
commit
a1d9d89323
7 changed files with 89 additions and 16 deletions
|
|
@ -216,3 +216,54 @@
|
|||
→ YES. Playground works, all links work, all sections function. Paid plans correctly show "Coming Soon".
|
||||
|
||||
**Honest Assessment:** Massive simplification. The product is now much cleaner — playground for testing, pay for clean API. No more free tier abuse vectors. Ready for Stripe integration as next step.
|
||||
|
||||
## Session 6 — 2026-02-19 (Stripe Billing + Status Page)
|
||||
|
||||
**Goal:** Integrate Stripe billing to enable paid subscriptions. Add status page.
|
||||
|
||||
### What Was Done
|
||||
1. **Stripe billing integration (v0.4.0→v0.4.1):**
|
||||
- Added `stripe` npm dependency
|
||||
- Created `src/routes/billing.ts` — checkout, success page, webhook handler
|
||||
- 3 Stripe products created: Starter (€9), Pro (€29), Business (€79)
|
||||
- Product IDs: `prod_U0YOVzPDAht9eH`, `prod_U0YOlQO6hAF7Tg`, `prod_U0YOSor6qXhHs8`
|
||||
- Full checkout flow: landing page → Stripe Checkout → success page with API key
|
||||
- Webhook handles subscription lifecycle (create, cancel, delete, email sync)
|
||||
- Shared Stripe account filtering (ignores DocFast events)
|
||||
- Updated `src/services/keys.ts` with `createPaidKey()`, `downgradeByCustomer()`, `updateEmailByCustomer()`
|
||||
- Updated landing page: "Coming Soon" buttons → working "Get Started" checkout buttons
|
||||
- Raw body middleware for webhook signature verification
|
||||
|
||||
2. **Status page:**
|
||||
- Created `public/status.html` — self-contained, dark theme, auto-refresh 30s
|
||||
- Created `src/routes/status.ts` — serves status page
|
||||
- Shows API status, response time, browser pool, uptime, last checked
|
||||
|
||||
3. **Deployed v0.4.1** to staging (verified) then production (2 replicas)
|
||||
|
||||
### QA Verified
|
||||
- ✅ Health check passing
|
||||
- ✅ Checkout endpoint returns Stripe URLs for all 3 plans
|
||||
- ✅ Browser test: "Get Started" button → Stripe Checkout page loads correctly
|
||||
- ✅ Status page loads at /status
|
||||
- ✅ Stripe products auto-discovered on startup (logs confirmed)
|
||||
|
||||
### Investor Test — Session 6
|
||||
1. **Would a stranger trust this product with their money right now?**
|
||||
→ YES. Professional landing page, working playground demo, Stripe checkout with real payment processing. EU-hosted, GDPR section prominent.
|
||||
|
||||
2. **If a pod crashed, would we lose customer data?**
|
||||
→ NO. PostgreSQL external to pods. Usage flushes every 5s.
|
||||
|
||||
3. **Could someone abuse the free tier right now?**
|
||||
→ NO FREE TIER. Playground is rate limited (5/hr per IP) and watermarked.
|
||||
|
||||
4. **Can a paying customer recover a lost API key?**
|
||||
→ Not yet — needs Stripe customer portal integration. Customer can contact support.
|
||||
|
||||
5. **Does every feature on the website actually work?**
|
||||
→ YES. Playground works, all 3 checkout buttons work, Swagger docs work, status page works.
|
||||
|
||||
### Action Required from Investor
|
||||
1. Register Stripe webhook URL in Stripe Dashboard: `https://snapapi.eu/v1/billing/webhook`
|
||||
Events: `checkout.session.completed`, `customer.subscription.updated`, `customer.subscription.deleted`, `customer.updated`
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue