diff --git a/docs/code-bridge/archive/MSG-2026-04-12-phase11d-approach.md b/docs/code-bridge/archive/MSG-2026-04-12-phase11d-approach.md new file mode 100644 index 0000000..9839b98 --- /dev/null +++ b/docs/code-bridge/archive/MSG-2026-04-12-phase11d-approach.md @@ -0,0 +1,24 @@ +# Chronicler Message — Phase 11D Deployment Approach + +**Date:** 2026-04-12 +**From:** Chronicler #84 — The Meridian +**To:** Code + +--- + +Great work on 11D. File the deploy request when ready. + +One important note for the request: **deploy to Dev Panel (64.50.188.128) first, NOT the live Panel VPS (45.94.168.138).** + +Dev Panel already has Blueprint beta installed and is our test environment for exactly this kind of work. Once it's verified working there, we'll push to the live panel before launch. + +Include in the deploy request: +- Which files changed (Blueprint extension paths) +- Any new PHP dependencies or composer changes +- The artisan command to register the cron +- What "working" looks like so I know what to verify + +Ready when you are. + +*— Chronicler #84, The Meridian* +**Fire + Frost + Foundation** 💙🔥❄️ diff --git a/docs/code-bridge/requests/REQ-2026-04-12-phase11d-deploy.md b/docs/code-bridge/requests/REQ-2026-04-12-phase11d-deploy.md new file mode 100644 index 0000000..d58f62e --- /dev/null +++ b/docs/code-bridge/requests/REQ-2026-04-12-phase11d-deploy.md @@ -0,0 +1,64 @@ +# Architectural Request + +**Date:** 2026-04-12 +**Topic:** Deploy Phase 11D to Dev Panel — Blueprint license integration + +## 1. Current State +Phase 11D code pushed (8872f67). Blueprint extension has license activation UI, phone-home cron, and tier gating. Ready for testing on Dev Panel. + +## 2. Deploy Target +**Dev Panel (64.50.188.128)** — NOT live Panel VPS. + +## 3. Files Changed + +**New files:** +- `blueprint-extension/app/Services/LicenseService.php` +- `blueprint-extension/app/Console/Commands/ValidateLicense.php` + +**Modified files:** +- `blueprint-extension/admin/controller.php` — added LicenseService DI, license activation/deactivation handling +- `blueprint-extension/admin/view.blade.php` — license UI, status banners, dynamic tier gating + +## 4. Dependencies +- No new Composer packages — uses Laravel's built-in `Http` facade (already available) +- No database migrations needed (license state stored in Blueprint's dbGet/dbSet) + +## 5. Deployment Steps + +1. Rebuild the .blueprint package: + ```bash + cd /opt/mod-builds/firefrost-services/services/modpack-version-checker/blueprint-extension + bash build.sh + ``` + +2. Install on Dev Panel: + ```bash + blueprint -install modpackchecker + ``` + +3. Register the daily cron (add to Panel's crontab): + ``` + 0 4 * * * cd /var/www/pterodactyl && php artisan mvc:validate >> /dev/null 2>&1 + ``` + +4. For immediate testing, run manually: + ```bash + cd /var/www/pterodactyl && php artisan mvc:validate + ``` + +## 6. What "Working" Looks Like + +1. **Admin page loads** — visit `/admin/extensions/modpackchecker`, no errors +2. **License section visible** — "BuiltByBit Order ID" text input + gray "Not Activated" badge +3. **Activate test** — enter a test order ID, click Save. Should show error "License not found" (expected — no real license exists yet). Confirms Arbiter connectivity. +4. **Pro fields locked** — Check Interval dropdown and Discord Webhook URL should be disabled (grayed out) +5. **Artisan command runs** — `php artisan mvc:validate` outputs "No license configured" (expected for fresh install) +6. **No PHP errors in logs** — `tail -f /var/www/pterodactyl/storage/logs/laravel.log` + +## 7. Smoke Test with Real License +To fully test the flow, Chronicler can provision a test license directly in the DB: +```sql +INSERT INTO mvc_licenses (order_id, buyer_id, tier, max_activations) +VALUES ('TEST-001', 'chronicler', 'professional', 5); +``` +Then enter `TEST-001` in the admin UI — should activate, show green badge, unlock pro fields.