Drop one-shot tmp/axe scripts and agent i18n scratch so the Gitea tree is deployable.
7.0 KiB
Production-ready report (Descrybe v2)
Date: 2026-08-04 (blocker close-out pass)
Repo: f:/laragon/www/_MY/descrybe-v2
Scope: Local staging rehearsal + honesty about LIVE vs mocked vs seed-only
Builds (this pass): apps/api go build ./... → exit 0; apps/web npm run check → re-run below
Related: production-checklist.md, production-readiness.md, security-notes.md, go-live-checklist.md, store-connectors.md, demo-user.md, perf-notes.md.
Executive verdict
| Question | Answer |
|---|---|
| Production-ready for public cutover? | NO |
| Local staging / demo rehearsal? | GO — core catalog → process → export → credits → auth → Woo mock REST → Shopify dry-run are proven |
| Ship to paying customers on the public internet today? | NO-GO until cutover / SMTP / real Stripe / prod env items below are cleared |
One-line: Descrybe v2 is staging-demo ready with Woo live-client proof (mock-woo) and Shopify dry-run smoke; it is not public-cutover-ready while migration/email/SMTP/APP_ENV=production and real Stripe keys remain open.
Demo login
| Field | Value |
|---|---|
| Web | http://127.0.0.1:5174/login (prefer 5174) |
| API | http://127.0.0.1:8080 (/healthz, /readyz) |
demo@descrybe.local |
|
| Password | DemoPass123! |
| Tenant | Local Demo Co |
| Plan (verified) | Enterprise (GET /api/billing/credits → plan.name=Enterprise, 1,000,000 credits) |
| API key (local only) | dk_demo_local_descrybe_test_key_v1 |
Full bootstrap: demo-user.md. Do not use demo credentials in production.
Build reconcile (this pass)
| Check | Result | Notes |
|---|---|---|
cd apps/api && go build ./... |
PASS | Includes cmd/mock-woo |
| API/worker restart | Done | Parallel product list + Shopify claim loaded |
| Goose DB version | 18 | Includes 017_shopify + 018_list_hotpath_indexes |
cd apps/web && npm run check |
(see footer) |
Criteria scorecard
| Criterion | Status | Evidence | Notes |
|---|---|---|---|
No user-facing go run / seed CLI text |
PASS | Static + production-readiness.md | CLI stays in docs/README |
| Sidebar simplified | PASS | tutorial-live.md | Primary + More |
| Mobile OK | PASS with polish | mobile-audit.md | |
| Woo + Shopify + feeds | PASS (local) | live-woo-test.md, live-shopify-test.md, live feed docs | Woo via mock-woo REST; Shopify dry-run; feeds LIVE |
| Stripe | MOCK OK for local | live-stripe-test.md, stripe-setup.md | Not a code blocker if prod requires real keys (documented). Local keeps STRIPE_MOCK=true |
| Credits | PASS | live-credits-test.md | |
| Security | PASS (local) | live-auth-security.md | Prod needs APP_ENV=production |
| Perf (Go v2) | PASS (documented) | perf-notes.md | Parallel list + goose 018 indexes + export streaming |
Live docs inventory
| Doc | Verdict | Class |
|---|---|---|
| live-e2e-local.md | PASS 21/21 | LIVE |
| live-credits-test.md | PASS | LIVE |
| live-auth-security.md | 23/23 PASS | LIVE |
| live-export-channels.md | PASS | LIVE |
| live-feed-csv.md | PASS | LIVE |
| live-pipeline.md | PASS | LIVE |
| live-woo-test.md | PASS | LIVE client ↔ mock-woo HTTP (not seed) |
| live-shopify-test.md | PASS | Dry-run Admin API path |
| live-stripe-test.md | PASS mock UI | MOCK — real keys required for prod |
| perf-notes.md | Written | Go v2 hot paths |
| shopify-connector.md | Present | Schema 017 + UI |
Honest LIVE vs mocked vs seed matrix
| Area | Class | Proven |
|---|---|---|
| Auth / CSRF / API keys | LIVE | Real HTTP against API |
| Catalog / feeds / process / export | LIVE | Multi-MB public exports |
| Credits debit | LIVE | Wallet deltas |
| WooCommerce REST | LIVE ↔ mock-woo | Test Connection + product push + orders/reviews pull (live-woo-test.md) |
| Shopify Admin API | DRY-RUN LIVE path | Test + product sync + orders (live-shopify-test.md); real shop token still optional |
| Stripe Checkout | MOCK | Local only; prod requires real STRIPE_SECRET_KEY + webhook secret (stripe-setup.md) |
| Production HTTPS / SMTP / cutover | NOT PROVEN | go-live-checklist.md |
Remaining BLOCKERS (public cutover)
-
BLOCKER — Production cutover / migration / SMTP
Synthetic@legacy.localemails, membership roles, SMTP set-password proof,APP_ENV=productionfail-closed env, object storage, etc. (go-live-checklist.md). -
BLOCKER — Real Stripe for production billing
Local mock is intentional and documented. Shipping paid plans requires live/testmode Stripe keys + signed webhooks. Not a local staging blocker. Exit: Stripe CLI/testmode Checkout + webhook without leaving demo on Starter. -
SOFT — AI provider per environment
Local AI PASS depended on LAN Green Chat / configured OpenAI-compatible endpoint.
Closed this pass (no longer blockers)
WooCommerce not LIVE-proven without seed→ live-woo-test.md +cmd/mock-wooShopify product sync stub / missing connector docs→ dry-run smoke + shopify-connector.md / live-shopify-test.mdNo v2→ perf-notes.md + goose 018perf-notes.md
What is solid enough for staging demos
- Login as demo → Local Demo Co on Enterprise
- Feeds → map → sync → process (worker) → export
- Woo: point at
mock-woo→ Test Connection → sync products/orders/reviews - Shopify: dry-run token → test + sync products/orders
- Credits/Billing consistency; auth CSRF + API keys
- Perf indexes + streaming exports documented
Recommended next actions (ordered)
- Stripe testmode end-to-end (non-mock) when ready to take payments
- Clear go-live checklist migration/email/SMTP/
APP_ENV=productionbefore DNS cutover - Optional: exercise Woo against a real HTTPS store; Shopify against a real custom-app token
Reconcile commands
cd f:\laragon\www\_MY\descrybe-v2\apps\api
go build ./...
go run ./cmd/mock-woo -addr 127.0.0.1:19090 # separate terminal
cd f:\laragon\www\_MY\descrybe-v2\apps\web
npm run check
Demo:
http://127.0.0.1:5174/login
demo@descrybe.local / DemoPass123!