Commit graph

9 commits

Author SHA1 Message Date
f5df3e1182 Add display system design doc (Orange Pi 5 + ROCK 4D signage)
Documents the architecture for PVM's managed digital signage system:
Orange Pi 5 as leaf node (local backend, screen management API, video
pipeline), Radxa ROCK 4D as thin-client display nodes (kiosk Chromium,
CEC control, mDNS auto-discovery). API-first design for web and tablet
management clients. libsql on leaf, PostgreSQL on core.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 14:50:04 +01:00
ed0578cd07 Address security/tech debt: token refresh, JWKS thundering herd, config safety, jq migration
- Add token refresh logic in Auth.js JWT callback with 60s expiry buffer
- Fix JWKS cache thundering herd with Mutex + double-checked locking
- Make trustHost conditional (dev-only) via SvelteKit's $app/environment
- Make devMode conditional on ZITADEL_PRODUCTION env var in setup script
- Replace fragile grep/cut JSON parsing with jq in setup-zitadel.sh
- Add OIDC_GRANT_TYPE_REFRESH_TOKEN to Zitadel OIDC app grant types
- Update TODO_SECURITY.md: mark resolved items, add RefreshAccessTokenError frontend handling

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 13:17:42 +01:00
76489a53a6 Add social login providers (Google, Apple, Facebook) to TODO
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 12:57:19 +01:00
a22ba48709 Add Zitadel OIDC setup, SMTP config, and security fixes
- Add setup-zitadel.sh: idempotent script that creates PVM project
  and OIDC app via Zitadel Management API using machine user PAT
- Add machine user + PAT auto-generation to docker-compose via
  FIRSTINSTANCE env vars with bind-mounted machinekey directory
- Add SMTP configuration for email sending (verification, password reset)
- Fix JWT algorithm confusion attack: restrict to RS256/384/512 only
- Add docs/TODO_SECURITY.md tracking review findings
- Update .env.example files with correct local dev URLs
- Add docker/machinekey/ to .gitignore

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 12:34:44 +01:00
e25afdcb3a Add auth framework research document
Comprehensive evaluation of 11 auth frameworks for PVM's
split-brain architecture. Recommends self-hosted Zitadel v3
for its Rust crate, OIDC JWKS for offline JWT validation on
RPi5 nodes, and zero-cost self-hosting on existing Hetzner PVE.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 03:24:51 +01:00
995a8123e6 Update README and VISION with finalized tech stack decisions
Align both documents with resolved tech stack choices:
- Hetzner PVE hosting, Docker-based RPi5 nodes
- Android display client with mDNS (no Chromecast dependency)
- Event-based NATS sync, 72h offline limit
- PVM signup-first accounts, no money handling
- Add tech stack summary table to README

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 03:12:56 +01:00
2bb381a0a3 Update tech stack research with finalized decisions
Resolve all open questions from tech stack review:
- Self-hosted on Hetzner PVE (LXC + Docker)
- Event-based sync via NATS JetStream
- Generic display system with Android client (no Cast SDK dep)
- Docker-based RPi5 provisioning
- No money handling, 72h offline limit, REST + OpenAPI
- PVM signup-first for player accounts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 03:06:53 +01:00
cf03b3592a Add comprehensive tech stack research document
1,190-line research covering all 18 technology areas for PVM:
Rust/Axum backend, SvelteKit frontend, Postgres + libSQL databases,
NATS + JetStream messaging, DragonflyDB caching, and more.
Includes recommended stack summary and open questions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 02:50:33 +01:00
7bd1805b67 Initial commit: project vision and README
Establish PVM (Poker Venue Manager) project with product vision
document covering all feature domains and a clean README with
project overview.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 02:39:17 +01:00