V8 Central — Product & Technical Spec
  1. Docs
  2. Delivery
  3. Implementation phases

#Implementation phases

Phase 9 (2026-10-17): Pair 2 started the server panel — Step 0 groundwork (Ready-only, permission per screen incl. Docker / panel update / service monitoring, OSS data passed through, oss_message errors). Screens come step by step.

Phase 8 status (2026-10-16 10:59, Pair 2): 8.1 (all 5 cloud providers), 8.3, 8.4, 8.5, 8.7, 8.9–8.12 built & pushed. 8.8 checks built except plan active / server limit (wait for Phase 7) and provider enabled by admin (waits for the admin panel). Pending: 8.2 managed (waits for Billing — no user screen anyway, D-36) and 8.6 Lite (waits for Phase 10 + Phase 12 Control Panel). Still needs the OSS installer update before install-based ways go live.

Phase 8 Step 4 (2026-10-16): 8.1 cloud server — all five providers built (DigitalOcean, Vultr, Hetzner, Linode, Lightsail) (Pair 2, API71–75): account → region → size + Ubuntu + stack + optional SSH key → Creating → install progress; Retry on the same droplet; Delete can also delete the droplet. Other providers one by one. Cloud server.

Phase 8 Step 3 (2026-10-16): 8.3 root password built (Pair 2, API69–70): name + stack + public IPv4 + SSH port + root password → Central checks Ubuntu/CPU over SSH, starts the installer → same progress as the install command; Retry asks for the password again. Install APIs renumbered: 66 retry, 67 delete (one delete for all servers). Root password.

Phase 8 Step 2 (2026-10-15): 8.4 install command built locally (Pair 2 33bd7c0, API65–68, not pushed): name + stack, official OSS command, live progress, Ready → create admin in the panel, Retry/Delete on failure. Needs the OSS installer update before release. Force cleanup dropped. Install command.

Phase 8 latest (2026-10-14): Step 0 pushed (2899bd1); 8.5 Connect an existing OSS panel + server list/view built and pushed (Pair 2 API62–64, up to 5be6dec; response field system_info (was facts); tested live on an OSS test server; API address (https://api.…) + token only — panel web address refused with oss_not_a_panel). Next: 8.4 → 8.1 → 8.3. Connect a panel.

Phase 8 build plan (Pair 2, 2026-10-12): Pair 2 builds Servers in steps — Step 0 foundation → 8.5 connect OSS panel → 8.4 install command → 8.1 own cloud account → 8.3 root password; 8.2 managed + 8.6 Lite later. 8.8 plan-active/server-limit checks skipped until Phase 7 is built. Step 0 foundation built locally 2026-10-13 (4a375e9, not pushed) — no server endpoints yet, so no server screen can be wired. Account and organization delete are now refused while servers exist. Add a server.

Billing readiness (2026-10-10): B6.1 gateway configuration foundation and enabled-metadata API built on Pair2, pushed. No real credentials configured, all gateways initially disabled. B6.2 own-account billing details GET/PUT also built and pushed; B6.3 own-account USD balance API also built and pushed; B6.4 Add credits built locally/not activated; B6.5–B6.13 remain unbuilt here; checkout/payment capture/webhook verification/admin gateway screens not implied. Metadata screen states.

A realistic roadmap for the frontend (frontend-2), aligned with the backend phases in the V8 doc (Phase 1 Foundation, Phase 2 Auth, Phase 3 Account). The order is changed from the suggested one: Servers move before Plans/Billing. That was first decided because plans and billing had no V8 requirements at all; since backend Phase 7 (2026-10-03) and Phase 6 (2026-10-05) both landed, the reason is now simply that servers are the product and only gateway metadata and own-account billing details have endpoints so far. D-3 and D-4 are answered. See Feature dependencies.

Each phase is planned and approved separately (two-step protocol), and needs its backend endpoints first. Frontend work never fakes a missing API. Where the API isn't ready, the screen isn't built.

PhaseScopeBackend needed firstBlocked by
0. Foundationnext-intl + app/ (no locale segment) + middleware. Messages for 8 locales. App shell (sidebar, top bar, drawer, breadcrumbs). Theme. API client (BFF route handlers, httpOnly cookies, error normalisation, retry). Global states (loading/error/not-found). Vitest + Playwright scaffolding. Add react-hook-form, TanStack Table, next-intl (justified deps)✅ Backend Phases 1 and 2 are built — Phase 1 on 2026-10-08 (Sanctum, CORS, MySQL, API at /api/v1) and Phase 2 Authentication on 2026-10-09 (Pair 1): register, verify, login, 2FA, social, reset, refresh and logout, all under /api/v1/auth/*, with login returning tokens in the body. Invitation password (2.6) and organization permission middleware are now built with Phase 4D-1 (session pattern) — and it is now ours to decide, since the backend handed the login flow to the frontend pair. Backend login/refresh are built; the frontend cookie/BFF decision remains D-1
1. AuthenticationLogin, 2FA step, IP-approval notice, register (Turnstile), verify, forgot/reset, invitation password, OAuth callback, logout, route guards, session restoreBackend Phase 2— (requirements complete)
2. AccountProfile/security/history/preferences/channels✅ B3.1–B3.16 built by Pair2; Section C B3.14+B3.15 pushed2026-10-10Only B3.17 alerts wait for Servers. Channels have no saved-count cap; tests async, recorded≠delivered. IP-added routing remains a conflict
3. Organizations + Roles + MembersOrganizations/default/delete, member management and invitations, roles/permission matrix; share server and ownership transfer laterPair 1 explicitly confirms B4.1–B4.5 and B4.7–B4.11 built (2026-10-09); catalog and menu endpoints publishedB4.7 built including deletion safety; preview email delivery unverified; billing/recipient-plan checks not enforced until Phases 6–7; B4.6 sharing and server-deletion guard wait for Phase 8. D-28 migration role choice and D-52 missing feature keys remain open
4. Audit coreOrganization Audit log + shared account activity table✅ B4.8 built by Pair 1; GET /api/v1/organizations/{organization}/activity, activity-view permission, translated rows and type/action filtersTransfer start/accept/cancel recorded now; sharing events wait for B4.6; server/app activity stays in OSS
5. Servers (+ app screens)Connect existing server wizard, create a server at a cloud provider with automatic OSS install (moved here from Phase 5 on 2026-10-03), create a managed server (hourly, from backend Phase 6), server list with the server's billing kind, status, disconnect, Server Details core (Overview, Applications, Databases, System Users, Services) through the proxyBackend Phase 8 — Servers: create & connect, complete 2026-10-06 (Pair 1) V8 requirement — six ways in, stack, checks, install progress, token and the stored link record. Still needed: the endpoints, the OSS client and proxy, and the managed price list (Phase 6, 6.8)Q1 and Q2 answered 2026-10-06 (8.11, 8.10). Q3 (offline display) is still open — the backend parked "refreshing server data" — plus D-41 (ServerAvatar Lite has no screen), D-10 (proxy style), D-11 (now confirmed: a one-time cached copy), Q13/Q14 (open OSS registration, token rotation), Ubuntu 20.04 and Hostinger pre-installed stacks. Managed servers need the billing API, so that part waits for phase 6. New 2026-10-05: the app screens now have a backend phase — Phase 10 Application panel features, requirements complete 2026-10-06 (10.1–10.23) — and Phase 9 Server panel features is Pair 1's, not yet published. See FE: Application screens
6. Plans + Subscription + BillingAdmin plan management (plans + the feature list), plans, current plan + usage, change/cancel/resume/renew, downgrade checks, trial and expiry banners, the locked-account state, coupons, enterprise contact, wallet (paid/free/promo), top-up + gateway + return page, receipts, payments-and-charges history, cards, auto-recharge, low-credit reminder, billing details, managed-server usage, and the managed-server negative-balance states. Plan-limit handling everywhereBoth backend phases are now written: Phase 7 — plans and subscription lifecycle, complete 2026-10-03; Phase 6 — Billing, complete 2026-10-05 (Pair 1) V8 requirement. Still needed: all the endpoints — plan catalog + admin, and remaining payment/wallet/receipt APIsD-22 (currency and tax), D-33 (Free plan after a trial), D-34 (admin lowering a limit below current usage), D-35 (managed-server expire date when the panel is unreachable), D-36 (users can't create managed servers — frontend decision vs backend 6.9), lifetime plans and installments for new users (parked by the backend). D-5, D-31 and D-32 answered 2026-10-05
7. DashboardKPIs, server status, live metrics, spend, usage, recent activityAggregation endpointneeds 5 + 6
8. Integrations (was "Providers")Cloud providers (connect by pasted token, "Needs new token", disconnect), plus Git accounts and backup storage pushed to one or many servers, and the Integrations overview page. Moved out on 2026-10-03: create-server → phase 5 (Servers), regions & sizes → phase 5, repos & branches → Applications (part of Server Details work)Backend B5.1 provider list built by Pair 1 (2026-10-10) V8 requirement; B5.2–B5.4 Connect/Edit/on-demand Check built on Pair1; B5.5 endpoint partial; usage guard/warning pending Phase8, Git/storage depend on Servers. Needs the provider + create-server API and the OSS git / storage calls. Phase 5 itself needs backend Phase 4 (organizations), which is now completeD-13 (own-VPS install, deferred to the Servers phase), Q10 (migrating V7 Git/storage connections — parked), D-27 organization placement resolved, D-29 (V7 OAuth provider accounts → V8 tokens)
9. BlueprintsList, editor, deploy to WordPress site, run resultsBlueprint storage + run API + add-on install/licenceD-39 — may not be built at all: backend Phase 10 listed WordPress blueprints among the V7 features OSS does not have, and on 2026-10-06 that list was removed from the backend doc and parked — still unanswered, and our FE: Application screens page is the only record. Don't schedule this phase until that lands. D-14, D-15 only matter if the answer is yes
10. Search + Notifications + UX polish⌘K search, notification bell/list, the two notification settings screens (account groups chosen once; channels attached per server with six group ticks), failing-channel state, per-server alert limits, admin mail screens (SMTP + test, sent log, check frequency, announcements), Server Details later sections (firewall, cron, backups, PHP, Node, Fail2ban, settings, logs, disk cleaner)Search API; backend Phase 11 — Notification & Mail, requirements complete 2026-10-05 V8 requirement — needs the event catalogue endpoint plus the OSS client and server list from Phase 8D-16. D-17 answered 2026-10-05: Central polls each server's OSS panel and raises its own alerts
11. Production readinessFull a11y pass, responsive pass 320→1920, all 8 locales reviewed, performance budget, E2E suite green, error monitoring——

#Parallel work

  • Phases 1–2 can start as soon as the backend Phase 2/3 endpoints are agreed. The UI can be built against the agreed contract with a mock server only if the backend team publishes the contract first (no invented APIs).
  • Server Details core sections (phase 5) only need the proxy. The OSS API they use already exists and is documented.
  • Pair 1 and Pair 2 split phases (V8 doc R4: Phase 1 by Pair 1, skipped phases by Pair 1; Phase 4 Organization & Members by Pair 1, Phase 5 Integrations by Pair 2, confirmed 2026-10-03). Who builds which frontend phase must still be agreed Open question D-20.

#Per-phase exit criteria

Build + lint green · Vitest + Playwright green for the phase · every string an i18n key (8 locales present) · light/dark checked · 320/768/1280 checked · axe clean · backend permission denial covered · docs (this site) updated.

Provider code availability (2026-10-10): Pair2 reports B5.1–B5.5 pulled through cf36220;1211 tests/7473 assertions, Pint/PHPStan and optimization passed after pull (not rerun by this sync). List/Connect/Edit/Check and partial Disconnect are present in its copy. No genuine provider success is established. Disconnect server-usage blocker/server-name warning remain unbuilt until Phase8; Git/storage still wait Servers.

Latest B6.4 (Pair2): Add credits quotes/checkout/status/confirm/free-code APIs43–47 built locally, not pushed or live activated. All gateways need keys/webhooks/return integration; Instamojo additionally needs verified merchant/API proof. No real payment/cards/auto-recharge/history/receipts/imports.1605 tests9194 assertions backend-reported; no frontend/provider-sandbox proof, host scheduling unverified. Exact screen states and blockers. Unresolved real payments now block account deletion409.

Admin readiness update (2026-10-12, Pair1 B17.1): normal-login administrator discovery and guarded own admin identity built (GET /account/admin-access, GET /admin/me). B17.2 permissions/roles, B17.3 sidebar/seeder and all business screens remain unbuilt; no real account promoted. Pair2 presence unconfirmed;1501 tests/9118 assertions and36 live checks backend-reported. Entry states.

2026-10-12 latest readiness: Pair1 B17.2/17.2a adminroles/catalog/assignment APIs51–58 BUILT, menu/sidebar17.3 not built. Pair2 B6.5 savedcards/default/remove,autorecharge/consent/same-payment recovery APIs49–62 IN PROGRESS—notcomplete/committed/pushed/activated; safety fixes and final verification ongoing. Admin contracts/screens; Billing drafts/states. Do not confuse Pair1API49–58(admin) with Pair2API49–62(cards).

Latest B6.5 status (2026-10-12 10:35): 6.4 + 6.5 pushed to GitHub; later local follow-ups: card APIs answer directly (0ff3da9) and auto-recharge is not available for India (billing country or India-issued card, as V7) — the India mandate API (old 62) was removed (e65e8c3). Real payments still not activated; no real keys/charges or host scheduler change. Frontend/consent/provider proof still required.

Removed 2026-10-16 (Pair 1): GET /account/admin-access and GET /admin/me no longer exist. Admin entry = role / is_administrator from the login/profile response + the filtered sidebar GET /admin/menu (API59). The admin's role and permissions now come with /admin/menu (admin_role, permissions — added 2026-10-16 05:22).

B17.11 revised (2026-10-16, Pair1): no separate admin Organizations screen — admins open a user's organization under Users → user → Organizations (API69), which gets tabs members, servers, charges, deleted servers (with restore), subscription, backups (users.organizations.*, view/manage; only members can be built now, the rest wait for Phases 7–8). Catalog back to 59 permissions, 33 sidebar screens. ⚠ Deleted servers + restore conflicts with Bhavik's 'not in V8' rule (D-63).

Latest B17.3 (Pair1): GET /api/v1/admin/menu built, active verified administrator; role-filtered translated group/title/Lucide/localURL/order/parent, no role→empty. 59 permissions, 34 sidebar screens at that time — now 53 permissions / 33 sidebar screens after B17.11 (2026-10-16); tabs/actions no URLs. Queue-size page/permission removed, Horizon instead. B17.4+ business/viewer unbuilt; menu≠working destination, Pair2 availability unconfirmed. Menu states.

B17.4 latest: Pair1 admin Activity log API60 GET /api/v1/admin/activity BUILT; active verified administrator+admin-activity view, private/no-store. Table/filters/pagination/snapshot targets read-only, separate admin feed; account/org feed unaffected. B17.5+ still unbuilt,Pair2unconfirmed. Activity screen.

B17.6 latest (2026-10-12): Pair1 admin Users API61–68 BUILT — list/counts/view/create/ban/unban/verify/delete, deleted users, referred users; statuses active/pending/banned (no locked); admins can't ban/delete themselves or other administrators. Users are now soft deleted (also self-delete B3.7) — the email can still sign up again, nothing changes on screen. B17.5 and B17.7+ still unbuilt, Pair2 unconfirmed. Users screens.

B17.7 latest (2026-10-12): Pair1 admin User details API69–76 BUILT — organizations, login history, account activity, 2FA status/turn off (backup codes counted only), IP whitelist view/turn off/remove IP; new users.activity view permission (60 admin permissions); servers tab waits for Phase 8. Admin changes show in the user's activity as by a ServerAvatar admin. B17.5 and B17.8+ still unbuilt. User details.

B17.10 latest (2026-10-14): Pair1 Login as user API77 BUILT — users.login-as manage only; normal user login without password/2FA/IP whitelist; refused for own account/administrators/banned users; recorded only in admin activity. Login as user.

B17.15 latest (2026-10-14): Pair1 admin Promo codes API78–81 BUILT — list/create/on-off/delete (soft, name stays taken, history kept); no edit after creation; cohort renamed customer_type (all/new/existing). Promo codes.

B17.17 latest (2026-10-16): Pair1 admin Site settings API93–97 BUILT — basic details (branding, uploads, custom header/footer, links) + company billing details (tax % = checkout tax); public GET /site-settings before login. D-64 open (custom code). Site settings.

B17.12 Part 1 (2026-10-17): Pair1 admin Servers API114–119 BUILT — list/view/edit (name, hostname, IP) + user/organization Servers and Deleted servers tabs; live parts later. Servers are now soft deleted (hidden from users). Deleted list = D-63 conflict. Admin servers.

B17.19 (2026-10-17): Pair1 admin General settings API103–113 BUILT — display message (banner for every user via API97 display_message), trial mode on/off (not used — V8 has no trial, D-56), referral program settings, Slack webhook for admin alerts. User settings / temporary domain / support email removed (57 permissions, 31 screens). General settings.

B17.23 (2026-10-16): Pair1 admin Error monitor API99–101 BUILT — list/view/resolve unhandled request/job/command errors (secrets removed, kept 2 days, reopen on repeat). Error monitor.

B17.6 edit (2026-10-16): Pair1 admin Edit a user API98 BUILT — profile, email (no confirmation), password, role, admin role, status for any account incl. administrators; lockout guard. Edit a user.

B17.20 Part 1 latest (2026-10-14): Pair1 admin Integration keys API82–88 BUILT — social login (GitHub/Google), Turnstile, payment gateways (Stripe/PayPal/Instamojo, test/live keys, webhook URLs); secrets write-only. SMTP + test mail (Part 2) next. Integration keys.

B17.20 Part 2 (2026-10-15): Pair1 admin SMTP + test email API89–92 BUILT (saved vs server-default settings, write-only password, test email with short failure reason, reset to defaults). Integration keys complete except cloud platforms (to confirm). SMTP.

ServerAvatar V8 Central · prepared by central-app-2 (Pair 2 frontend) for Bhavik Jethwa · the frontend in this spec is not built yet; the backend started on 2026-10-08 · Built 2026-10-29 03:20 UTC