Commit graph

11 commits

Author SHA1 Message Date
1d8c08a680
Fix podium screen 2026-01-15 20:13:15 -07:00
a7ad1e9bba
System AI 2026-01-15 19:39:38 -07:00
e732256cbf
Stuff 2026-01-15 19:38:44 -07:00
131c744e59
Fix init script 2026-01-15 16:49:12 -07:00
4cd6b2131e
Fix prod encryption key 2026-01-15 15:38:23 -07:00
e480ad06df
Add server security hardening and draft quiz persistence
Security:
- Add AES-256-GCM encryption for user PII (email, API keys, config)
- Add rate limiting (helmet + express-rate-limit)
- Require auth for file uploads

UX:
- Persist draft quizzes to sessionStorage (survives refresh)
- Add URL-based edit routes (/edit/draft, /edit/:quizId)
- Fix QuizEditor async defaultConfig race condition
- Fix URL param accumulation in Landing
2026-01-15 10:12:05 -07:00
cdf5c2577e
Add info about admin user 2026-01-15 08:43:18 -07:00
c25cbf5101
Add better prod setup 2026-01-15 08:40:40 -07:00
9363f643f0
Add cors stuff 2026-01-14 19:44:13 -07:00
1506210a2e
Add Authentik blueprints for automated OAuth2/OIDC setup
Automate the manual Authentik configuration process using native YAML blueprints
that are applied on container startup.

Changes:
- Add kaboot-setup.yaml blueprint for local development
- Add kaboot-setup-production.yaml.example for production with configurable domains
- Update docker-compose.yml and docker-compose.prod.yml to mount blueprints
- Add AUTHENTIK_BOOTSTRAP_PASSWORD/TOKEN env vars for automated admin setup
- Update setup.sh to generate bootstrap credentials and display admin password
- Update Caddyfile.example with proper proxy headers for Authentik
- Add Caddyfile to .gitignore (user-specific config)
- Update docs with Quick Start sections for automated setup

The blueprints create:
- OAuth2/OIDC provider (public client, client_id: kaboot-spa)
- Kaboot application with redirect URIs
- kaboot-users group with application binding
- Enrollment flow with sign-up capability
- Password complexity policy
- Test user and service account (passwords set manually)
2026-01-14 16:20:10 -07:00
9a3fc97a34
Phase 1 done 2026-01-13 14:14:30 -07:00