API segura y desacoplada utilizada por el panel administrativo de Mutter Games, diseñada para manejar operaciones de alto privilegio mediante Firebase Admin SDK, autenticación robusta y validación estricta.
Este backend está aislado del frontend público y expone únicamente endpoints protegidos para administración.
- Node.js + Vercel Serverless Functions
- Firebase Admin SDK
- Firestore
- TypeScript
- CORS seguro + tokens verificados
- Custom Claims (admin / superadmin)
- ImageKit (firma segura para uploads)
Este backend funciona como capa de seguridad sobre Firestore:
- Valida el token enviado por el frontend admin (
Authorization: Bearer <idToken>). - Verifica roles (
admin/superadmin) usandoverifyIdTokeny Custom Claims. - Aplica CORS estricto para producción.
- Todos los writes a Firestore pasan por esta API (el frontend ya no escribe directo).
- Endpoints independientes para DEV y PROD, cada uno con sus propias credenciales.
/api/admin/products
CRUD completo de productos con normalización de:
- slug
- variantes
- stockTotal
- priceUSD
- timestamps
/api/admin/categories
Crear, editar y eliminar categorías/subcategorías con validaciones.
/api/admin/clients
Lectura y edición segura del perfil de clientes.
/api/admin/users
Gestión de administradores + asignación de roles usando Firebase Custom Claims.
/api/admin/orders
Lectura y borrado seguro (la creación se ejecuta desde backend para proteger reglas).
/api/imagekit-signature
Genera token + firma + expiración para subir imágenes sin exponer claves privadas.
En Vercel → Project Settings → Environment Variables:
FIREBASE_PROJECT_ID=
FIREBASE_CLIENT_EMAIL=
FIREBASE_PRIVATE_KEY=
IMAGEKIT_PUBLIC_KEY=
IMAGEKIT_PRIVATE_KEY=
IMAGEKIT_URL_ENDPOINT=
Este proyecto se despliega automáticamente con cada push a main.
Producción:
https://mutter-games-admin-api-prod.vercel.app
El plan Hobby permite hasta 12 Serverless Functions por deployment. Antes de agregar endpoints bajo api/, ejecutar:
npm run check:vercel-functionsSi se agrega CI en el futuro, incluir este check antes del deploy:
npm ci
npm run check:vercel-functionsEl frontend Mutter Games ejecuta:
- Tests unitarios (Vitest)
- Tests de reglas Firestore
- Tests E2E (Playwright)
Este backend está diseñado para funcionar como origen seguro en todos esos flujos.
✔ 100% funcional en producción
✔ API segura
✔ Usada activamente por el panel administrativo Mutter Games
✔ Conectada a Firestore con privilegios controlados
Rodrigo Opalo
https://github.com/devrodri-com