bridge: Request — Deploy Phase 11D to Dev Panel for testing
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
e3909151a4
commit
c2d72cbabc
64
docs/code-bridge/requests/REQ-2026-04-12-phase11d-deploy.md
Normal file
64
docs/code-bridge/requests/REQ-2026-04-12-phase11d-deploy.md
Normal file
@@ -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.
|
||||
Reference in New Issue
Block a user