RECORDGOD/site
type-two 25127b1b72 feat(intake): connected Google sheet via service account + skip-existing bulk stage
The intake sheet is read straight from the stored Google service account (discotag@…
inventory-sheets, migrated out of WowPlatter's wp_rmp_disc_google_service into the vault) — a
signed JWT (cryptography, no new dep) → Sheets API → private sheet, no public-share needed. Uses
the saved column_mappings (timestamp/release_id/media/sleeve/price/comment, 1-indexed). SKU from
the sheet's locale timestamp '2025-01-30, 14:01:02' → 20250130140102 (matches migrated stock).

Bulk import (both connected + paste-URL paths) now SKIPS SKUs already in inventory, so importing
the 34,752-row form log only stages the genuinely-new rows (live: 2,006 new / 32,746 skipped).
Preview shows new-of-total. Endpoints: GET/POST /admin/intake/gsheet/{preview,import}.

Also: .dockerignore now excludes disc_images/ (volume-mounted, was 916MB) — build context
918MB→1MB, deploy 13min(hung)→24s. The COPY . . was baking the image store into every image.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 10:32:31 +10:00
..
admin.html feat(intake): connected Google sheet via service account + skip-existing bulk stage 2026-06-24 10:32:31 +10:00
builder.html feat(builder): P1 page editor — live preview now renders a REAL release from the catalog (real covers/tracklist) so block-arranging is WYSIWYG; + View-live link 2026-06-23 01:00:28 +10:00
dash.html feat(nav): light/dark switch every page + store→rack→crate navigator 2026-06-22 19:33:24 +10:00
index.html feat(nav): light/dark switch every page + store→rack→crate navigator 2026-06-22 19:33:24 +10:00
kiosk.html feat(shop): per-track Apple previews (lazy iTunes) + jog mini-player + dead-YouTube check 2026-06-23 23:44:17 +10:00
nav.js feat(nav): light/dark switch every page + store→rack→crate navigator 2026-06-22 19:33:24 +10:00
pos.html feat: Woo customer sync (non-destructive, in refresh.sh) + AusPost rates mirror & quote calc 2026-06-24 00:55:56 +10:00
receipt-logo.webp feat(pos): receipt logo + Monster Robot template (store name/address/footer) 2026-06-23 17:33:08 +10:00
records.html feat(shop): entity browse pages — artist/label/genre/style storefront views 2026-06-23 01:18:15 +10:00
release.html feat(shop): per-track Apple previews (lazy iTunes) + jog mini-player + dead-YouTube check 2026-06-23 23:44:17 +10:00
search.html feat(nav): rotate diagram button — 90° view rotation (rack + store), text stays upright 2026-06-23 21:55:51 +10:00
shop.html feat: clean stub URLs (/builder /shop /admin /dash) + store geometry + storefront 2026-06-21 23:16:57 +10:00
wantlist.html feat(shop): P4 wantlist — public 'request a record' page + admin queue 2026-06-23 01:29:00 +10:00