The portal's look is inspired by Texgriddy, an ES-DE theme by Weestuarty, recreated in CSS without any of its files. The README and the portal doc now say so, and credit the Fredoka font. The color scheme was named after Texgriddy's "Chilled" scheme; it's now Slate.
Feature Documentation
This directory contains documentation for all major features in the Flashpoint Web application.
Features
- Authentication & Authorization - User registration, JWT tokens, session management, and RBAC
- Game Browsing & Filtering - Free-text search, multi-criteria filtering, sorting, and pagination
- Game Playing - Browser-based game playback with Ruffle emulator and game service proxy
- Play Session Tracking - Automatic gameplay monitoring with statistics and analytics
- Playlists & Favorites - Game organization through playlists and favorites with Flashpoint Launcher compatibility
- User Management - Administrator tools for managing user accounts, roles, and access control
- Role-Based Access Control - Fine-grained permission system with custom roles and flexible access control
- Activity Logging & Audit Trail - Comprehensive audit logging for security monitoring and troubleshooting
- System Settings - Centralized configuration management with validation and caching
- Date & Time Formatting - Consistent date/time formatting and localization across the application
- Maintenance Mode - Temporarily restrict access during system updates while allowing admin access
- Discovery Portal - Arcade portal layout, color schemes, discovery homepage and mature content filtering
- Streaming - Java, Shockwave and original Flash Player games streamed from the server, one container per player
- Proxy Sign-In - Sign users in through Authentik, Authelia, oauth2-proxy and other forward-auth proxies
- Game Saves - Saves kept on the player's account, with backups to restore
Quick Reference
All Permissions
| Permission | Resource | Action | Description |
|---|---|---|---|
| games.read | games | read | View and browse games |
| games.play | games | play | Play games in browser |
| games.download | games | download | Download game files |
| playlists.read | playlists | read | View playlists |
| playlists.create | playlists | create | Create new playlists |
| playlists.update | playlists | update | Update existing playlists |
| playlists.delete | playlists | delete | Delete playlists |
| users.read | users | read | View user accounts |
| users.create | users | create | Create new user accounts |
| users.update | users | update | Update user accounts |
| users.delete | users | delete | Delete user accounts |
| roles.read | roles | read | View roles and permissions |
| roles.create | roles | create | Create new roles |
| roles.update | roles | update | Update roles and permissions |
| roles.delete | roles | delete | Delete roles |
| settings.read | settings | read | View system settings |
| settings.update | settings | update | Update system settings |
| activities.read | activities | read | View activity logs |
Total: 18 permissions across 6 resources
Database Tables
User Database (user.db):
- users, roles, permissions, role_permissions, refresh_tokens, login_attempts
- system_settings, user_settings, user_game_plays, user_game_stats, user_stats, activity_logs
Flashpoint Database (flashpoint.sqlite - read-only):
- game, platform, tag, game_tags_tag, playlist, playlist_game
Default Roles
| Role | Priority | Permissions |
|---|---|---|
| admin | 100 | All 18 permissions |
| user | 50 | games., playlists. (10 total) |
| guest | 0 | games.read, playlists.read (2 total) |
Related Documentation
- System Architecture - System architecture and components
- Database Schema - Complete database documentation
- API Reference - REST API documentation
- Development Guide - Project setup and development