56 lines
2.0 KiB
Markdown
56 lines
2.0 KiB
Markdown
# HexaHost GameCloud — Implementation Status
|
|
|
|
Last updated: 2026-06-26
|
|
|
|
## Current phase: Phase 1 — Authentication & user panel ✅
|
|
|
|
### Phase 1 completed
|
|
|
|
| Area | Status | Notes |
|
|
|------|--------|-------|
|
|
| Prisma auth models | Done | EmailVerificationToken, PasswordResetToken, TotpCredential, RecoveryCode |
|
|
| Migration | Done | `20260626120000_phase1_auth` + platform role seed |
|
|
| `@hexahost/auth` | Done | Argon2id, tokens, TOTP, recovery codes, username utils |
|
|
| API AuthModule | Done | Register, login, logout, verify, reset, 2FA, `/me`, sessions |
|
|
| Session cookies | Done | `hgc_session`, HttpOnly, Secure in prod, SameSite lax |
|
|
| Account lockout | Done | 5 attempts → 15 min lock |
|
|
| Worker emails | Done | `notifications` queue → nodemailer (Mailpit in dev) |
|
|
| Web auth UI | Done | Login, register, 2FA, forgot/reset, verify, security |
|
|
| Route protection | Done | Middleware cookie check for dashboard/security |
|
|
| Admin bootstrap | Done | `pnpm bootstrap:admin --email … --password …` |
|
|
| Tests | Done | Auth package vitest, API health/auth tests, contracts |
|
|
|
|
### Abnahmekriterium Phase 1
|
|
|
|
- [x] Registration with email verification flow
|
|
- [x] Login/logout with secure sessions
|
|
- [x] Password reset
|
|
- [x] TOTP 2FA setup and login challenge
|
|
- [x] Session list and revoke
|
|
- [x] Admin bootstrap CLI (no default credentials)
|
|
- [x] Audit events for security actions
|
|
- [x] Unit/integration tests pass
|
|
|
|
### Known limitations
|
|
|
|
- E2E Playwright tests for auth flow not yet added (planned).
|
|
- Email templates are minimal HTML (no branded layout yet).
|
|
- OIDC / Passkeys deferred to later phases.
|
|
- CSRF relies on SameSite cookies + CORS origin check; no double-submit token yet.
|
|
|
|
### Test commands
|
|
|
|
```bash
|
|
pnpm install
|
|
pnpm db:migrate # or db:push
|
|
pnpm test
|
|
pnpm build
|
|
pnpm bootstrap:admin -- --email admin@localhost --password 'your-secure-password'
|
|
```
|
|
|
|
### Next phase: Phase 2 — Single-Node Vertical Slice
|
|
|
|
- GameNode enrollment, Go agent WebSocket
|
|
- Server create, provision, start/stop
|
|
- First playable Minecraft server locally
|