7bfba9f39f
Replace consumer-key auth with dedicated low-priv WP user + application password over HTTPS Basic Auth. AES-GCM at rest, server-only calls, rotation via profile revoke. CONTENT-WOO, OPENAPI, ARCHITECTURE, DEPLOYMENT, DATA-MODEL, AGENTS, IMPL-PLAN, README.
58 lines
3.0 KiB
Markdown
58 lines
3.0 KiB
Markdown
# SlabUploader
|
||
|
||
Mobile-first, self-hosted app for publishing one-of-a-one wood slabs to WooCommerce.
|
||
Phone capture (online) → hybrid measure/crop on device → review → WooCommerce create.
|
||
|
||
Owner: Ty (Whidbey). Store: www.whidbeywoodstore.com. Deploy: Docker Compose + Caddy on an inventoried host (`APP_HOSTNAME`).
|
||
|
||
## Status
|
||
|
||
**Gate A freeze signed 2026-08-31.** Docs refactor on branch `docs/refactor-v2` (2026-09-01).
|
||
Read `AGENTS.md` before any implementation. TECH-SPEC + ARCHITECTURE + AGENTS beat archived PRD lines.
|
||
|
||
POC bar: phone → customer-ready listing on the real store; UAT creates as **Woo draft**
|
||
with `SLAB-UAT-*` SKUs; one real SKU **Woo publish** after Ty review. Online-only for POC
|
||
(offline deferred). Build plan: `docs/IMPL-PLAN.md` (Phase 0 = hybrid Gates A+B; Gate C =
|
||
early Phase 1 first draft listing).
|
||
|
||
## Documentation
|
||
|
||
| File | What |
|
||
|---|---|
|
||
| `AGENTS.md` | Working contract + hard rules (read first) |
|
||
| `docs/ARCHITECTURE.md` | Hybrid client/server split, data flow |
|
||
| `docs/TECH-SPEC-PIPELINE.md` | Deterministic math + image pipeline, constants, test vectors |
|
||
| `docs/DATA-MODEL.md` | SQLite schema + slab status state machine |
|
||
| `docs/OPENAPI.md` | Client↔server API contract |
|
||
| `docs/CONTENT-WOO.md` | Content templates + WooCommerce payload/integration |
|
||
| `docs/PROMPTS.md` | Vision + content prompts (server files) |
|
||
| `docs/DEPLOYMENT.md` | Env-agnostic compose, Caddy, backup/restore |
|
||
| `deploy/INVENTORY.md` | Host inventory worksheet (Gate B) |
|
||
| `docs/IMPL-PLAN.md` | Phased build plan with acceptance criteria + exit gates |
|
||
| `docs/archive/PRD-2026-08.txt` | Frozen historical PRD only (not a source for new work) |
|
||
|
||
## Quick orientation
|
||
|
||
Hard locks live in `AGENTS.md`. Short map:
|
||
|
||
- **Hybrid:** phone owns mask/sliders/sqft/bdft/3:4 PNG; server stores, Woo, inference proxy, on-demand U2Net.
|
||
- **bdft** = sqft × thickness_in (no `/12`). TV-1 through TV-10 on the client.
|
||
- **Secrets** never in browser; AES-GCM on server; `SLAB_AES_KEY` env only. Woo auth = WP application password (dedicated low-priv user), not consumer keys.
|
||
- **Woo UAT:** draft default; `SLAB-UAT-*` force draft (AGENTS §5).
|
||
- **Inference OFF** until Gate C; Call 1/2 after, still inside POC.
|
||
- **Online-only for POC** (offline PWA deferred).
|
||
- **Two containers** (`frontend`, `fastapi`) + Caddy. Single SQLite + image volumes.
|
||
- **v1 non-goals:** no versioning, no staff/roles, no bulk publish, no analytics, no SKU update path.
|
||
|
||
## Repo remotes
|
||
|
||
- Canonical SoT: Gitea `Ty_Tech/SlabUploader` on **gitea-atd** (`https://gitea.vps1.afterthedemo.com/Ty_Tech/SlabUploader`)
|
||
- Optional later mirrors: `gitea-truenas`, GitHub — not SoT for this workstream
|
||
|
||
## Getting started (implementer)
|
||
|
||
1. Read `AGENTS.md` (hard rules) and Phase 0 in `docs/IMPL-PLAN.md`.
|
||
2. Start at Phase 0 — hybrid client TECH-SPEC modules + thin FastAPI health/settings (not a server happy-path pipeline).
|
||
3. Do not skip exit gates; Ty signs each phase via the delivery process.
|
||
4. Do not implement from `docs/archive/PRD-2026-08.txt`.
|