Files
firefrost-operations-manual/docs/core
Claude (Chronicler #35) 016fd4341a docs: Add Task #90 - Arbiter 2.x Unified Access Manager
WHAT WAS DONE:
- Added Task #90 to tasks.md (Tier 1, Soft Launch Blocker)
- Documented complete architecture from Gemini consultation
- 5-phase implementation plan with detailed checklists
- Critical gotchas and technical specifications captured

WHY:
Tonight's Gemini consultation revealed current Whitelist Manager is
architecturally broken (hardcoded server names, unreliable WebSocket
status detection, no subscription integration). Solution: merge Arbiter
+ Whitelist Manager into single Node.js app with PostgreSQL backend.

GEMINI ARCHITECTURAL DECISIONS (validated March 31, 2026):
- Single unified app instead of separate microservices
- PostgreSQL for concurrent write safety at 500-user scale
- Discord /link slash command with Mojang API validation
- Pterodactyl File Management API (replace WebSocket console)
- Hybrid sync: event-driven push + hourly cron reconciliation
- Master whitelist = database, all servers sync from it

IMPLEMENTATION PHASES:
1. Database Migration (PostgreSQL setup, schema, indexes)
2. Core Functions (Mojang validation, Panel API clients)
3. Discord Integration (/link command, auto-DM subscribers)
4. Sync System (event-driven + cron, sequential processing)
5. Admin Panel (sync monitoring, manual triggers)

CRITICAL GOTCHAS CAPTURED:
- Content-Type: text/plain for Panel file write (not application/json)
- Mojang UUIDs without dashes, Minecraft needs WITH dashes
- HTTP 412 = server offline, NOT error (file saved for boot)
- Sequential processing prevents Panel API rate limiting

CONTEXT:
Discovered issues during attempt to fix Task #86 (Whitelist Manager
v1.12.1 compatibility). Realized entire architecture needs rewrite
for subscription-driven access control. Gemini provided complete
technical specification with code examples ready to implement.

BLOCKS:
- Soft launch (subscribers need automatic whitelist access)

RETIRES:
- Old Whitelist Manager (Python Flask on Billing VPS)
- Old Arbiter 1.x (if not already migrated)

FILES:
- docs/core/tasks.md (modified, +112 lines for Task #90)

NEXT STEPS:
- Create task directory: docs/tasks/arbiter-2x/
- Copy Gemini implementation guide to task directory
- Begin Phase 1: PostgreSQL database setup

Signed-off-by: The Golden Chronicler <claude@firefrostgaming.com>
2026-03-31 22:44:21 +00:00
..