refactor: improve caching, cleanup jobs, and type safety

- Convert CachedSystemSettingsService to singleton pattern
- Add scheduled cleanup for login attempts (24h) and activity logs
- Add batch size limits (100) for favorites and playlist operations
- Enhance health check with game-service connectivity verification
- Add cache stampede prevention in GameSearchCache
- Fix N+1 query in RoleService.getRoles() with single JOIN query
- Consolidate domains migration into 001_complete_schema.sql
- Replace `any` types with `unknown` and explicit type parameters
- Extract MetadataUpdateCard and RuffleManagementCard components
- Fix race condition in PlayTrackingService duration calculation
This commit is contained in:
Darkraise
2026-02-05 16:31:05 +07:00
parent 996c17734b
commit a74bc8197d
29 changed files with 1007 additions and 658 deletions
+3 -3
View File
@@ -47,7 +47,7 @@ directory (100+ files). When handling requests:
| ------------------------------- | ----------------------------------------------------------------------------------- |
| How do I set up the project? | `docs/08-development/setup-guide.md` |
| What commands are available? | `docs/08-development/commands.md` |
| How does authentication work? | `docs/10-features/authentication-authorization.md` |
| How does authentication work? | `docs/10-features/01-authentication-authorization.md` |
| What are all the API endpoints? | `docs/06-api-reference/README.md` |
| What's the database schema? | `docs/12-reference/database-schema-reference.md` |
| How do components work? | `docs/04-frontend/components/component-overview.md` |
@@ -358,8 +358,8 @@ LOG_LEVEL=info
> **Edition auto-detection:** The Flashpoint edition (Infinity or Ultimate) is
> automatically detected from `{FLASHPOINT_PATH}/version.txt` on startup. No
> environment variable is needed. The detected edition and version string are
> stored in the `system_settings` table as `metadata.flashpoint_edition` and
> `metadata.flashpoint_version`.
> stored in the backend `config` object (not in the database). The frontend
> receives edition/version via `/api/settings/public` (injected from `config`).
See `backend/.env.example` for complete configuration options including rate
limiting, SQLite optimization, and OpenTelemetry settings.