Dashboard home was hardcoding fake numbers (2,431/10,000 requests, fake "Pro Plan", fake activity log, fake random bar chart) despite the real analytics/logs/keys endpoints already existing and being used correctly elsewhere (Usage, Logs, Tokens pages). A fresh account with zero real activity was showing 24% "used" from nobody's data. Rewired every stat card, the usage chart, and the activity table to real /api/analytics/*, /api/logs, and /api/keys data. Every Quick Action now does something real (navigate to the real page, or call a real endpoint) instead of being a no-op or hardcoded button. Also removed 5 sidebar/footer links (AI Setup Guides, Tools & Permissions, Billing, Team, Settings, Support) that pointed at nonexistent routes or pages with no backend feature behind them at all — no team/multi-user system, no per-tool permission toggles, no real subscription/billing system exist in the backend yet. Documented what's needed to build each one for real in FUTURE_FEATURES.md rather than shipping more fake UI. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
3.8 KiB
Removed / Not-Yet-Built Features
These sidebar pages were removed from src/pages/dashboard/DashboardLayout.tsx's
nav because no backend feature exists for them — they were showing fully
hardcoded mock data with no real API behind them. Removed rather than shipped
with fake data, per the "no mock data" rule.
1. Billing / Subscriptions
Was at: /dashboard/billing (deleted: src/pages/dashboard/Billing.tsx)
What it showed (all fake): hardcoded "Pro Plan $49/month", 3-tier plan comparison cards, fake invoice history table.
What's needed to rebuild for real:
- Backend:
plan,subscription_status,stripe_customer_idcolumns onuserstable (mentioned as a possibility inHANDOFF.mdfrom the original handoff, never implemented) - Real Stripe integration — the old Next.js frontend had
src/app/api/stripe/{checkout,webhook}/route.tsbut they were dead code (never called, placeholder keys, no backend wiring). Since Vite can't host secret-key server logic, this needs to live as new endpoints on the FastAPI backend (Multi-Tenant-ODOO-MCP), not the frontend. - New endpoints:
POST /api/billing/checkout,POST /api/billing/webhook,GET /api/billing/invoices - Frontend: rebuild the page against those real endpoints
2. Team / Multi-User Accounts
Was at: /dashboard/team (route never existed — dead nav link, 404)
What's needed: an entirely new multi-user-per-account concept. Currently
one users row = one account = one set of Odoo credentials/API keys. Team
support means either:
- A new
team_memberstable linking multipleusersrows to one billing account with role-based permissions, or - An
account_idgrouping concept aboveusers
This is a significant schema/auth redesign, not a small addition.
3. Tools & Permissions
Was at: /dashboard/tools (route never existed — dead nav link, 404)
What's needed: per-user, per-tool enable/disable toggles for the 47 MCP
tools currently registered in server.py's TOOLS list. Would need:
- A new
disabled_toolstable or JSON column onusers - A check in
call_tool()(server.py) before dispatch: reject if the tool is disabled for that user - Frontend: a page listing all 47 tools grouped by module (connection,
discovery, records, workflow, smart) with toggles, calling a new
PATCH /api/tools/{name}endpoint
4. AI Setup Guides
Was at: /dashboard/guides (route never existed — dead nav link, 404)
What's needed: this is content, not really a backend feature — step-by-step
setup instructions for Claude, Codex, Cursor, Windsurf. Partially exists
already: /dashboard/endpoints already has a working Claude Desktop JSON
config generator with the real API key and MCP URL. This page could be built
as a pure frontend content page (no backend needed) with setup docs for the
other clients, following the same pattern already in Endpoints.tsx.
5. Settings (account settings / change password while logged in)
Was at: /dashboard/settings (route never existed — dead nav link, 404)
What's needed: currently the only way to change a password is the
forgot-password token-based flow (/forgot-password → /reset-password).
There's no "logged in, change my password" endpoint. Would need:
- Backend:
POST /api/account/change-password(current password + new password, no token needed since the user is already authenticated) - Frontend: a settings page with that form, plus maybe email/display-name fields if those become editable later
6. Support link
Was at: footer link /dashboard/support (route never existed — dead
link, removed entirely from DashboardLayout.tsx, not just hidden)
Trivial — just needs a real destination (mailto link, external help site, or a real support-ticket feature) whenever there's something to point it at.