Commit Graph

12 Commits

Author SHA1 Message Date
type-two
eb502efaf4 feat(pos): full Sales console + migrate customers/discounts/settings 2026-06-22 02:40:35 +10:00
type-two
584fd140ad feat: Search/locate workstation + Search & Sales in nav (cache-bust nav.js) 2026-06-22 01:57:54 +10:00
type-two
6dd893fd01 feat: owner login landing + Sales POS + Sales in nav 2026-06-22 01:49:00 +10:00
type-two
80ff669cac feat(pos): Sales tab — ring-up, discounts, payment plans, holds, locate 2026-06-22 01:43:14 +10:00
type-two
e8e526f48e feat: unified owner nav bar across admin/builder/dash 2026-06-22 01:22:25 +10:00
type-two
19e3cb131f feat: clean stub URLs (/builder /shop /admin /dash) + store geometry + storefront 2026-06-21 23:16:57 +10:00
type-two
a9076af19d feat(builder): storefront customizer 2026-06-21 21:29:55 +10:00
type-two
b4cdc8aee4 feat(admin): Store Map + Intake/Crates/Reports 2026-06-21 20:03:08 +10:00
3732dfa325 feat(admin): Intake, Crates, Reports views + endpoints 2026-06-21 19:50:47 +10:00
1f388f241c feat(admin): MEGA admin dash + /admin endpoints (stats/inventory/orders) 2026-06-21 19:19:56 +10:00
0e8c84b0e7 feat(dash): connection testing — Discogs / Woo / DealGod
POST /settings/test/{service} validates stored creds against the live service
(Discogs identity, Woo orders, DealGod /api/me) so "connected" means connected.
Dash gets per-service Test buttons with green/amber status.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 15:03:18 +10:00
e1fcf94f93 feat: standalone RecordGod web UI — landing, control-room dash, encrypted secrets vault
- app/vault.py: Fernet-encrypted credential store (app_secret table); key lives only in
  RECORDGOD_SECRET_KEY (.env, gitignored) — refuses to store anything if the key is unset.
- app/settings_routes.py: admin-gated GET/POST /settings/secrets; values encrypted at rest,
  NEVER returned. Known fields: Woo / Discogs / Cloudflare / DealGod credentials.
- site/index.html: recordgod.com landing. site/dash.html: control room (token gate +
  paste-your-credentials form). main.py loads .env, mounts site at /, store at /store.
- Proven: 401 on bad token; DB holds ciphertext (gAAAA…), not plaintext.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 12:40:07 +10:00