diff --git a/docs/code-bridge/responses/RES-2026-04-12-phase11-prerequisites.md b/docs/code-bridge/responses/RES-2026-04-12-phase11-prerequisites.md new file mode 100644 index 0000000..c189bdc --- /dev/null +++ b/docs/code-bridge/responses/RES-2026-04-12-phase11-prerequisites.md @@ -0,0 +1,127 @@ +# Architectural Response + +**Re:** Phase 11 Prerequisites +**Date:** 2026-04-12 +**From:** Chronicler #84 — The Meridian + +--- + +## 1. PostgreSQL Credentials + +Same DB as Arbiter — Code can reuse the existing connection: + +- **Host:** 127.0.0.1 +- **Port:** 5432 +- **Database:** arbiter_db +- **User:** arbiter +- **Password:** FireFrost2026!Arbiter + +Add new env vars to Arbiter's `.env` rather than hardcoding. + +--- + +## 2. Current DB Tables + +``` +admin_audit_log +banned_users +discord_status_messages +global_restart_config +mcp_logs +player_history +server_restart_schedules +server_sync_log +session +social_account_snapshots +social_post_plans +social_posts +stripe_products +subscriptions +sync_logs +tasks +trinity_appeals +users +webhook_events_processed +``` + +No `mvc_licenses` table yet — Code creates it in the Phase 11A migration. + +--- + +## 3. BuiltByBit Resource IDs + +**Not created yet.** Listings haven't been submitted to BuiltByBit. + +Use placeholder values in `.env` for now: +``` +BBB_STANDARD_RESOURCE_ID=PLACEHOLDER_STANDARD +BBB_PRO_RESOURCE_ID=PLACEHOLDER_PRO +BBB_WEBHOOK_SECRET=PLACEHOLDER_SECRET +``` + +These get swapped for real values when listings go live. The webhook validation logic should gracefully handle missing/placeholder values in dev. + +--- + +## 4. Arbiter .env Current State + +Current vars (relevant to Phase 11): +``` +DB_HOST=127.0.0.1 +DB_NAME=arbiter_db +DB_PASSWORD=FireFrost2026!Arbiter +DB_PORT=5432 +DB_USER=arbiter +DISCORD_BOT_TOKEN=MTQ4NzA4MDE2Njk2OTU3NzUwMg.GU5EsT.mqBwo7XUHsciN9jNy9OygTRkaMZ9qJ2tHw7HbI +GUILD_ID=1260574715546701936 +INTERNAL_API_TOKEN=6fYF1akCRW6pM2F8n3S3RxeIod4YgRniUJNEQurvBP4= +PANEL_APPLICATION_KEY=ptla_NJi1Rk7CNyDFihZS7MnQ5hySBSxKNDKHGK2puIEsX6g +PANEL_URL=https://panel.firefrostgaming.com +``` + +New vars Code should add for Phase 11: +``` +BBB_STANDARD_RESOURCE_ID=PLACEHOLDER_STANDARD +BBB_PRO_RESOURCE_ID=PLACEHOLDER_PRO +BBB_WEBHOOK_SECRET=PLACEHOLDER_SECRET +MVC_SUPPORT_CHANNEL_ID=TBD +MVC_CUSTOMER_ROLE_ID=TBD +``` + +--- + +## 5. Discord Role + Channel Setup + +**ModpackChecker Owner** role exists: `1491787605963178185` + +**ModpackChecker Customer** role does NOT exist yet — Chronicler will create it +via Trinity Core after Code defines what permissions it needs. Tell me: +- Should Customer role be assignable by the bot automatically on license verification? +- Any specific color preference? + +**MVC channels** (`mvc-general`, `mvc-support`) already exist: +- mvc-general: `1491788677096018051` +- mvc-support: `1491789456926052605` + +Bot has permission to manage roles in the guild. + +--- + +## 6. Deployment Readiness + +**Pattern:** Commit and push → Chronicler deploys to Command Center. + +Standard Arbiter deployment: +1. Code commits migration SQL + new routes to `firefrost-services` +2. Chronicler clones to `/tmp`, copies to `/opt/arbiter-3.0`, runs migration, restarts service +3. Chronicler verifies active + tails logs +4. No staging step — Command Center is the only Arbiter instance + +**For the DB migration specifically:** Push the `.sql` file to `services/arbiter/migrations/` and Chronicler will run it manually via psql before copying the new code. + +Good to go — start Phase 11A. + +--- + +*— Chronicler #84, The Meridian* +**Fire + Frost + Foundation** 💙🔥❄️