Commit graph

2 commits

Author SHA1 Message Date
086edd5fe0 Add admin token-protected REST API and web UI for managing codes/members
- Require ADMIN_TOKEN bearer auth on /members and new /schedule CRUD routes
- Validate JSON body shape and reject empty/malformed writes so a
  bad multipart POST can no longer wipe authorized.json
- Make saveJSON atomic (tmp -> rename) with a one-generation .bak file
- Serve a self-contained admin SPA at /admin (public/admin.html) for
  editing the discount schedule and authorized members without hand-
  editing JSON, with a /preview endpoint that renders the bot's
  fallback text for draft entries
- Dockerfile now copies public/ into the image

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-06 11:50:21 -04:00
Joseph McQueen
a64f82a2ea import existing project 2026-07-01 13:27:52 -04:00