Commit graph

10 commits

Author SHA1 Message Date
Arlind Ukshini
9eafba547a events: record login event on POST /auth/login success 2026-04-27 10:49:44 +02:00
Arlind Ukshini
4afaad8b61 sessions: issueSession returns the new session id 2026-04-27 10:49:06 +02:00
Arlind Ukshini
88f78f4b50 events: add recordEvent helper 2026-04-27 10:48:32 +02:00
Arlind Ukshini
a756a1dcc3 events: document desktop fallback in UA parser 2026-04-27 10:46:47 +02:00
Arlind Ukshini
d974e865c2 events: add UA parser (device_type/os/browser)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 10:43:42 +02:00
Arlind Ukshini
0cc3dc808e events: add events table and prepared statements 2026-04-27 10:29:46 +02:00
Arlind Ukshini
107284801b add hidden /fenjaops admin page (read-only) + is_admin invite flag
- new is_admin column on invites (migration 4) with DEFAULT 0
- requireAdmin middleware returns 404 for non-admins so the route's
  existence isn't leaked; path obscured as /fenjaops (not /admin)
- admin/ dir lives outside public/ and protected/; only reachable via
  the explicit gated mount + /api/fenjaops/{invites,joins} endpoints
- bin/invite.js gains `admin add|remove|list` subcommands
- OPERATIONS.md + CLAUDE.md + PROJECT.md document the hidden URL

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 17:29:19 +02:00
Arlind Ukshini
e3a2d052a7 major great updates 2026-04-23 14:54:25 +02:00
Arlind Ukshini
19a88f50b3 simplify login and update features 2026-04-23 10:38:37 +02:00
Arlind Ukshini
1c395c349b Initial commit: project-bifrost auth + timeline 2026-04-22 14:39:16 +02:00