Phase9
This commit is contained in:
@@ -2,7 +2,50 @@
|
||||
|
||||
Last updated: 2026-06-26
|
||||
|
||||
## Current phase: Phase 8 — DNS and join-to-start ✅
|
||||
## Current phase: Phase 9 — WHMCS integration and production hardening ✅
|
||||
|
||||
### Phase 9 completed
|
||||
|
||||
| Area | Status | Notes |
|
||||
|------|--------|-------|
|
||||
| WHMCS Prisma models | Done | Installations, client/service links, idempotent operations |
|
||||
| `@hexahost/integration-auth` | Done | HMAC-SHA256 request signing |
|
||||
| WHMCS Integration API | Done | `/api/v1/integrations/whmcs/*` with nonce replay protection |
|
||||
| Billing suspension | Done | `billingSuspendedAt`, blocks start/join-to-start |
|
||||
| Billing provider mode | Done | `BILLING_PROVIDER=internal\|whmcs` |
|
||||
| RFC2136 DNS provider | Done | `nsupdate` + worker DNS sync tick |
|
||||
| WHMCS PHP module | Done | Create/Suspend/Unsuspend/Terminate/ChangePackage |
|
||||
| Ansible playbooks | Done | `site.yml`, `control-plane.yml`, `game-node.yml` |
|
||||
| Operations docs | Done | `dns.md`, `control-plane.md`, `game-node.md` |
|
||||
|
||||
### Abnahmekriterium Phase 9
|
||||
|
||||
- [x] WHMCS can provision/suspend/unsuspend/terminate via signed API
|
||||
- [x] Production DNS provider abstraction with RFC2136
|
||||
- [x] Documented control plane + two-node deployment path
|
||||
- [x] Billing suspension enforced on panel and edge gateway
|
||||
- [ ] Manual E2E: WHMCS order → GameCloud server → suspend/unsuspend
|
||||
|
||||
### Local WHMCS API test
|
||||
|
||||
1. `pnpm db:migrate && pnpm db:seed` (creates `local-dev-whmcs` installation)
|
||||
2. Set `BILLING_PROVIDER=whmcs` optional for credit-bypass mode
|
||||
3. Sign requests with `WHMCS_API_SECRET` from seed output
|
||||
4. `PUT /api/v1/integrations/whmcs/clients/1` then `POST .../services`
|
||||
|
||||
### WHMCS module install
|
||||
|
||||
Copy `integrations/whmcs/modules/servers/hexagamecloud` to `/modules/servers/hexagamecloud` on your WHMCS host.
|
||||
|
||||
Server entry fields:
|
||||
|
||||
- Hostname: `https://api.example.net`
|
||||
- Username: integration ID (`WHMCS_INTEGRATION_ID`)
|
||||
- Password: API secret (`WHMCS_API_SECRET`)
|
||||
|
||||
---
|
||||
|
||||
## Phase 8 — DNS and join-to-start ✅
|
||||
|
||||
### Phase 8 completed
|
||||
|
||||
@@ -111,6 +154,6 @@ Last updated: 2026-06-26
|
||||
|
||||
## Phase 0 — Monorepo foundation ✅
|
||||
|
||||
### Next phase: Phase 9 — WHMCS integration and production hardening
|
||||
### Next phase: Post-MVP hardening
|
||||
|
||||
- Billing provider hooks, WHMCS module, production DNS (RFC2136)
|
||||
- Stripe webhooks, SSO (WHMCS Phase D), reconciliation dashboard, penetration test
|
||||
|
||||
Reference in New Issue
Block a user