Backend de choisys
Avances de la API, la base de datos y el motor C++ · 4–8 oct 2026
8 de octubre de 2026
Cómo encaja todo
Cada capa hace una sola cosa. La interfaz nunca decide seguridad.
Interfaz móvil
→API choisys
→Autorización central
→Neon (PostgreSQL)
Las decisiones del Cubo pasan por el motor C++ (neos-cube), solo desde la API y solo en la propia máquina.
Cuentas y sesiones
Hecho y en producción de desarrollo.
- Registro atómico: cuenta + perfil + sesión se crean juntos o no se crea nada
- Contraseñas con hash; sesiones de 30 días, revocables
- Límites de intentos por IP y por correo
- Cuenta desactivada = sin acceso en la siguiente petición
Roles y capacidades
Un único catálogo decide qué puede hacer cada rol (PR #54, fusionado).
| Rol interno | Se muestra como | Capacidades |
|---|
| USER | usuario | lo propio |
| ADMIN · DEV · SUPERADMIN | reservados | = USER |
| SUPERDEV | sudev | USER + operar el sistema |
SUDEV es solo el nombre de producto: internamente sigue siendo SUPERDEV.
Mi cuenta (RGPD)
Cada persona ve y controla solo lo suyo.
- GET /me → perfil + capacidades
- GET /me/runs y /me/export → mi historial y mis datos
- POST /me/profile → cambiar mi nombre
- POST /me/delete → borrar cuenta (pide contraseña; requisito de Apple)
Operación sudev
Solo el rol más alto, y siempre por debajo de sí mismo.
- Listar perfiles con número de recorridos
- Asignar rol, con motivo y auditoría en la misma transacción
- Desactivar o reactivar cuentas
- Nadie se cambia a sí mismo, toca a un igual ni sube a otro a su nivel
El historial se guarda
Al terminar las 3 fases, la API guarda el recorrido.
- Solo lo que devuelve el motor: 3 mediciones (fase, fila, columna)
- Si guardar falla, la respuesta a la persona no se rompe
- Reintentos no duplican
- TypeScript no calcula nada del Cubo
Base de datos Neon
Verificada contra la base real.
1migración aplicada
13capacidades sembradas
2tests contra Neon real
- Auditoría de roles solo-anexar (no se puede borrar ni editar)
- Sin memoria: si Neon falla, se ve el fallo
Motor C++ · neos-cube
Público, determinista y portable (Windows, macOS, Linux).
- Servicio local autenticado en 127.0.0.1:8765
- Tests del núcleo y prueba de humo extremo a extremo
- Ejemplo simulate_runs: 600 recorridos sintéticos con la librería real
- Sin inferencia: espera una especificación matemática aprobada
Calidad
Cifras de hoy.
48tests de la API
26tests de la app
5roles probados
- Una regresión se detectó y corrigió antes de integrarse (PR #22)
- Comprobación de frontera pública en cada cambio
- Todo cambio entra por PR y lo fusiona solo el dueño
Pendiente y riesgos
Lo que falta, dicho claro.
- Primera ejecución real en el Mac (preparada, sin probar)
- Rotar la contraseña de pruebas de Neon
- Interfaz de usuario y de sudev sobre el contrato de /me
- Interpretación de resultados: no existe, por decisión
Mapa de repositorios
Todo en github.com/NeoRetroo38.
| Repositorio | Qué es |
|---|
| choisys | Producto: app, API, base de datos (TypeScript) |
| neos-cube | Motor del Cubo (C++) |
| neo-cube-web | Utilidades públicas de dibujo (TypeScript) |
| scenarys | Web corporativa (privado) |