feat(i18n): complete super-admin i18n — all 11 pages fully translated
CognxSafeTrack
b92ea37
All 11 super-admin pages now use useTranslation for every visible string.
Adds rel_today/rel_yesterday/rel_days_ago keys for WhatsAppProfiles relativeDate,
tpl_cat_*_desc keys for template category descriptions, and fixes the
SuperAdminLayout NAV_ITEMS destructuring (labelKey vs label).
feat(super-admin): org delete, user password reset, complete CRUD coverage
CognxSafeTrack
b8629ec
Backend:
- DELETE /v1/super-admin/organizations/:id — soft-delete via
subscriptionStatus='DELETED' + isHardStopped=true
- POST /v1/super-admin/users/:id/reset-password — generates 1h JWT
reset token, emails link via scheduleEmail (same flow as /forgot-password)
Frontend:
- OrganizationsManager: red trash icon per row calls DELETE; confirmation
dialog before destructive action; suspend icon color changed to amber
- UsersManager: key icon per row calls reset-password endpoint; guards
against users with no email address
When selectedOrgId === 'xamle-admin-org', the admin switches to a full
platform management dashboard instead of the normal org layout.
Backend (apps/api):
- New /v1/super-admin/* routes (SUPER_ADMIN/ADMIN role required):
platform stats, organizations CRUD + suspend + impersonate,
cross-org users + role change, WhatsApp numbers, billing
transactions + manual credits, monitoring health, AI agentic command
- Fixed SQL injection in analytics text-to-SQL (UNION/DROP/comment blocking)
- Removed JWT secret fallback — crashes on startup if JWT_SECRET is missing
- Added ORG_ADMIN role guard to all /v1/admin/* routes
Frontend (apps/admin):
- SuperAdminRouter: nested routes under /platform/*
- SuperAdminLayout: dark sidebar (slate-950/violet), 7 nav items
- PlatformDashboard: 6 KPI cards, system health, active alerts
- OrganizationsManager: searchable table, suspend/edit drawer, create modal
- UsersManager: cross-org table with inline role-change
- WhatsAppNumbers: all registered numbers …