V8 Central — Product & Technical Spec
  1. Docs
  2. Technical
  3. Route structure

#Route structure

All routes live under app/[locale]/ (next-intl). :locale ∈ en, es, de, fr, pt, ja, ru, hi. No routes exist yet: frontend-2 only has the scaffold app/page.js. Missing

#Public routes — (auth) group

RoutePage
/:locale/loginLogin (+ 2FA step, IP-approval notice)
/:locale/registerRegister (?invite=<token>, ?ref=, ?aff=)
/:locale/verify-email"Check your inbox" + resend
/:locale/verify/:tokenVerification result
/:locale/forgot-passwordRequest reset
/:locale/reset-password/:tokenSet new password
/:locale/invitations/:tokenAccept invitation (set password / join)
/:locale/ip-approval/:keyIP approved / expired
/:locale/oauth/:provider/callbackSocial login landing
/Redirect to /:locale/dashboard (or login)

#Protected routes — (app) group (logged in)

RoutePagePermission
/:locale/organizations/newCreate first/next organizationlogged in
/:locale/dashboardDashboardorg member
/:locale/organizationsMy organizationslogged in
/:locale/organizations/:id/settingsOrganization settingsOrganization manage
/:locale/account/profileProfilelogged in
/:locale/account/securityPassword, 2FA, IP whitelist, sessions, login historylogged in
/:locale/account/notificationsChannels + email preferenceslogged in
/:locale/account/apiAPI accesslogged in
/:locale/notificationsAll notificationslogged in

#Permission-protected routes (current organization)

RoutePagePermission
/:locale/serversServer listServers view
/:locale/servers/newAdd server (connect / create)Servers manage
/:locale/servers/:idOverviewServers view + OSS dashboard
/:locale/servers/:id/applications (/:appId/...)Applicationsapplication
/:locale/servers/:id/databasesDatabasesdatabase
/:locale/servers/:id/system-usersSystem userssystem_user
/:locale/servers/:id/servicesServicesservice
/:locale/servers/:id/{firewall,cron-jobs,backups,php,node,fail2ban,logs,disk-cleaner,settings,activity}Later sectionsmatching OSS permission
/:locale/providersProvider accountsProviders view
/:locale/blueprints · /new · /:idBlueprintsBlueprints view/manage
/:locale/membersMembers + invitationsMembers view
/:locale/roles · /:idRolesRoles view
/:locale/plansPlansPlans view
/:locale/subscriptionSubscriptionSubscription view
/:locale/billing · /wallet · /transactions · /invoices · /payment-methods · /auto-recharge · /settingsBillingBilling view
/:locale/billing/returnPayment return → verificationBilling view
/:locale/audit-logAudit logAudit view

Organization: the current organization is not in the page URL (it comes from the cookie + switcher), but it is in every API path. Alternative: /:locale/o/:orgSlug/... page URLs (shareable links). D-18.

#Per-group files

Each route group has loading.js, error.js, not-found.js. Detail segments (servers/[id]) have their own not-found and an "unreachable" state.

#Map

ServerAvatar V8 Central · prepared by central-app-2 (Pair 2 frontend) for Bhavik Jethwa · nothing in this spec is implemented yet · Built 2026-10-03 12:35 UTC