# RecordGod **The records back-office engine — the best of WowPlatter, reborn on Postgres, outside WordPress.** RecordGod ingests WowPlatter's *job* (inventory, import, enrichment, labels, copy, queries) but not WowPlatter's *code*. It runs as its own service on the VPS, calls DealGod for market value, and feeds WordPress the tidy data it likes for the storefront. WowPlatter is the **ancestral founder** — still running the live shop floor, and the reference spec RecordGod matches before it retires anything. Honour the founder: don't redesign what already works, copy it. ## Start here - **[RECORDGOD_PLAN.md](RECORDGOD_PLAN.md)** — the plan, the map, the keep/drop triage, build order, and the open decisions. Read this first. ## The family (sibling repos on this machine) | Repo | What it is | Talks to RecordGod via | |---|---|---| | `../dealgod` | The **market** brain — cross-store value, arbitrage. Its own product. | RecordGod *calls* it (`X-API-Key`) for value | | `../PRICEGOD` | The seller **extension** (Discogs cockpit). Successor to pliceclogs. | Calls RecordGod's `wowplatter/v1` contract | | `../wowplatter` | The founder — WP/WooCommerce plugin running the live store. | RecordGod publishes tidy data to it | Briefs that define the contracts already live in `../PRICEGOD/DEALGOD_BRIEF.md` and `../PRICEGOD/WOWPLATTER_BRIEF.md`. All three still hold; RecordGod is who fulfils the WowPlatter side of them. ## Run it (dev) ```bash python3 -m venv .venv && ./.venv/bin/pip install -r requirements.txt RECORDGOD_TOKEN=dev-tok ./.venv/bin/uvicorn app.main:app --reload --port 8010 ./.venv/bin/python test_smoke.py # self-check — no DB/infra needed ``` Postgres schema: `psql recordgod < schema.sql`. Live now: `GET /wowplatter/v1/ping`, `GET /wowplatter/v1/inventory/lookup?release_id=`. Routes 3–5 (price / labels / intake) are intentionally **404** — PRICEGOD reads that as "pending" and degrades gracefully, so an undefined route is the correct "not built yet" signal. ## Layout ``` app/ main.py FastAPI app + /healthz db.py async SQLAlchemy over asyncpg (twin of DealGod's db.py) auth.py require_token — Bearer; the one place the auth scheme lives wowplatter_v1.py the contract router (ping + lookup live) schema.sql minimal inventory table, release_id-keyed, store_id seam test_smoke.py infra-free self-check ``` _Status: founding — scaffold runs, smoke test green. 2026-06-19._